X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fmbmemcasecmp.c;h=9f5d083d9766317843742a204d14c0a7707edf58;hb=1a6fbdd7d28dff1868c5eb0baf0029b27e42526a;hp=c2d115d4340b5dd999ca30859438ab02d561d304;hpb=4823958dd8069326ed69dd2c9645ff90a01231a3;p=gnulib.git diff --git a/lib/mbmemcasecmp.c b/lib/mbmemcasecmp.c index c2d115d43..9f5d083d9 100644 --- a/lib/mbmemcasecmp.c +++ b/lib/mbmemcasecmp.c @@ -1,5 +1,5 @@ /* 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-2011 Free Software Foundation, Inc. Written by Bruno Haible , 2009, based on earlier glibc code. @@ -44,21 +44,21 @@ mbmemcasecmp (const char *s1, size_t n1, const char *s2, size_t n2) 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 @@ -69,28 +69,28 @@ mbmemcasecmp (const char *s1, size_t n1, const char *s2, size_t n2) 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; } }