MARC-8: allow all characters 0x01-0x20 YAZ-650
[yaz-moved-to-github.git] / src / matchstr.c
index 95d767e..101e777 100644 (file)
@@ -1,13 +1,11 @@
-/*
- * Copyright (C) 1995-2006, Index Data ApS
+/* This file is part of the YAZ toolkit.
+ * Copyright (C) 1995-2013 Index Data
  * See the file LICENSE for details.
- *
- * $Id: matchstr.c,v 1.6 2006-10-24 08:07:02 adam Exp $
  */
 
 /**
  * \file matchstr.c
- * \brief Implements loose string matching 
+ * \brief a couple of string utilities
  */
 
 #if HAVE_CONFIG_H
@@ -16,9 +14,9 @@
 
 #include <stdio.h>
 #include <assert.h>
-#include <ctype.h>
 #include <string.h>
-#include <yaz/yaz-util.h>
+#include <yaz/yaz-iconv.h>
+#include <yaz/matchstr.h>
 
 int yaz_matchstr(const char *s1, const char *s2)
 {
@@ -37,10 +35,10 @@ int yaz_matchstr(const char *s1, const char *s2)
             break;
         if (c2 != '.')
         {
-            if (isupper(c1))
-                c1 = tolower(c1);
-            if (isupper(c2))
-                c2 = tolower(c2);
+            if (yaz_isupper(c1))
+                c1 = yaz_tolower(c1);
+            if (yaz_isupper(c2))
+                c2 = yaz_tolower(c2);
             if (c1 != c2)
                 break;
         }
@@ -64,20 +62,19 @@ int yaz_strcmp_del(const char *a, const char *b, const char *b_del)
     return *a - *b;
 }
 
-#ifdef __GNUC__
-#ifdef __CHECKER__
-void __assert_fail (const char *assertion, const char *file, 
-                    unsigned int line, const char *function)
+int yaz_memcmp(const void *a, const void *b, size_t len_a, size_t len_b)
 {
-    fprintf (stderr, "%s in file %s line %d func %s\n",
-             assertion, file, line, function);
-    abort ();
+    size_t m_len = len_a < len_b ? len_a : len_b;
+    int r = memcmp(a, b, m_len);
+    if (r)
+        return r;
+    return len_a - len_b;
 }
-#endif
-#endif
+
 /*
  * Local variables:
  * c-basic-offset: 4
+ * c-file-style: "Stroustrup"
  * indent-tabs-mode: nil
  * End:
  * vim: shiftwidth=4 tabstop=8 expandtab