/* Compare two memory areas with possibly different lengths, case-insensitive.
- Copyright (C) 1998-1999, 2005-2009 Free Software Foundation, Inc.
+ Copyright (C) 1998-1999, 2005-2013 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009,
based on earlier glibc code.
mbi_init (iter2, s2, n2);
while (mbi_avail (iter1) && mbi_avail (iter2))
- {
- int cmp = mb_casecmp (mbi_cur (iter1), mbi_cur (iter2));
+ {
+ int cmp = mb_casecmp (mbi_cur (iter1), mbi_cur (iter2));
- if (cmp != 0)
- return cmp;
+ if (cmp != 0)
+ return cmp;
- mbi_advance (iter1);
- mbi_advance (iter2);
- }
+ mbi_advance (iter1);
+ mbi_advance (iter2);
+ }
if (mbi_avail (iter1))
- /* s2 terminated before s1. */
- return 1;
+ /* s2 terminated before s1. */
+ return 1;
if (mbi_avail (iter2))
- /* s1 terminated before s2. */
- return -1;
+ /* s1 terminated before s2. */
+ return -1;
return 0;
}
else
const unsigned char *p2 = (const unsigned char *) s2;
while (p1 < s1_end && p2 < s2_end)
- {
- unsigned char c1 = TOLOWER (*p1);
- unsigned char c2 = TOLOWER (*p2);
- if (c1 != c2)
- {
- if (UCHAR_MAX <= INT_MAX)
- return c1 - c2;
- else
- /* On machines where 'char' and 'int' are types of the same
- size, the difference of two 'unsigned char' values
- - including the sign bit - doesn't fit in an 'int'. */
- return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0);
- }
- ++p1;
- ++p2;
- }
+ {
+ unsigned char c1 = TOLOWER (*p1);
+ unsigned char c2 = TOLOWER (*p2);
+ if (c1 != c2)
+ {
+ if (UCHAR_MAX <= INT_MAX)
+ return c1 - c2;
+ else
+ /* On machines where 'char' and 'int' are types of the same
+ size, the difference of two 'unsigned char' values
+ - including the sign bit - doesn't fit in an 'int'. */
+ return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0);
+ }
+ ++p1;
+ ++p2;
+ }
if (p1 < s1_end)
- /* s2 terminated before s1. */
- return 1;
+ /* s2 terminated before s1. */
+ return 1;
if (p2 < s2_end)
- /* s1 terminated before s2. */
- return -1;
+ /* s1 terminated before s2. */
+ return -1;
return 0;
}
}