test-inttostr: avoid spurious failure on Solaris 9
[gnulib.git] / lib / mbspcasecmp.c
index 7340caf..8975c95 100644 (file)
@@ -1,5 +1,5 @@
 /* Case-insensitive string comparison function.
-   Copyright (C) 1998-1999, 2005-2007 Free Software Foundation, Inc.
+   Copyright (C) 1998-1999, 2005-2010 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This program is free software: you can redistribute it and/or modify
@@ -22,9 +22,7 @@
 
 #include <ctype.h>
 
-#if HAVE_MBRTOWC
-# include "mbuiter.h"
-#endif
+#include "mbuiter.h"
 
 #define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch))
 
@@ -47,7 +45,6 @@ mbspcasecmp (const char *string, const char *prefix)
   /* Be careful not to look at the entire extent of STRING or PREFIX until
      needed.  This is useful because when two strings differ, the difference is
      most often already in the very few first characters.  */
-#if HAVE_MBRTOWC
   if (MB_CUR_MAX > 1)
     {
       mbui_iterator_t iter1;
@@ -57,43 +54,42 @@ mbspcasecmp (const char *string, const char *prefix)
       mbui_init (iter2, prefix);
 
       while (mbui_avail (iter1) && mbui_avail (iter2))
-       {
-         int cmp = mb_casecmp (mbui_cur (iter1), mbui_cur (iter2));
+        {
+          int cmp = mb_casecmp (mbui_cur (iter1), mbui_cur (iter2));
 
-         if (cmp != 0)
-           return NULL;
+          if (cmp != 0)
+            return NULL;
 
-         mbui_advance (iter1);
-         mbui_advance (iter2);
-       }
+          mbui_advance (iter1);
+          mbui_advance (iter2);
+        }
       if (!mbui_avail (iter2))
-       /* PREFIX equals STRING or is terminated before STRING.  */
-       return (char *) mbui_cur_ptr (iter1);
+        /* PREFIX equals STRING or is terminated before STRING.  */
+        return (char *) mbui_cur_ptr (iter1);
       else
-       /* STRING terminated before PREFIX.  */
-       return NULL;
+        /* STRING terminated before PREFIX.  */
+        return NULL;
     }
   else
-#endif
     {
       const unsigned char *p1 = (const unsigned char *) string;
       const unsigned char *p2 = (const unsigned char *) prefix;
       unsigned char c1, c2;
 
       for (; ; p1++, p2++)
-       {
-         c1 = TOLOWER (*p1);
-         c2 = TOLOWER (*p2);
+        {
+          c1 = TOLOWER (*p1);
+          c2 = TOLOWER (*p2);
 
-         if (c2 == '\0' || c1 != c2)
-           break;
-       }
+          if (c2 == '\0' || c1 != c2)
+            break;
+        }
 
       if (c2 == '\0')
-       /* PREFIX equals STRING or is terminated before STRING.  */
-       return (char *) p1;
+        /* PREFIX equals STRING or is terminated before STRING.  */
+        return (char *) p1;
       else
-       /* STRING terminated before PREFIX.  */
-       return NULL;
+        /* STRING terminated before PREFIX.  */
+        return NULL;
     }
 }