X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fstrcase.h;h=07d4c9a42bb99a929b8985b7dafcc09fa2d66545;hb=b566a1cae5310716bad3151cee69f943915b2d31;hp=f17e64832ff1bd22565ab3c135253dee2752358c;hpb=6a638f79ae2db9683afa6925c4ca61e0b29614f0;p=gnulib.git diff --git a/lib/strcase.h b/lib/strcase.h index f17e64832..07d4c9a42 100644 --- a/lib/strcase.h +++ b/lib/strcase.h @@ -1,5 +1,5 @@ /* Case-insensitive string comparison functions. - Copyright (C) 1995-1996, 2001, 2003 Free Software Foundation, Inc. + Copyright (C) 1995-1996, 2001, 2003, 2005-2006 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -13,23 +13,44 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _STRCASE_H #define _STRCASE_H #include +/* Include header files with a possibly conflicting declarations of strcasecmp + before we define it as a macro, so that they will be no-ops if included + after strcasecmp is defined as a macro. */ +#include +#ifdef __cplusplus +extern "C" { +#endif + + +/* No known system has a strcasecmp() function that works correctly in + multibyte locales. Therefore we use our version always. */ +#define strcasecmp rpl_strcasecmp /* Compare strings S1 and S2, ignoring case, returning less than, equal to or greater than zero if S1 is lexicographically less than, equal to or greater than S2. - Note: This function does not work correctly in multibyte locales. */ + Note: This function may, in multibyte locales, return 0 for strings of + different lengths! */ extern int strcasecmp (const char *s1, const char *s2); /* Compare no more than N characters of strings S1 and S2, ignoring case, returning less than, equal to or greater than zero if S1 is lexicographically less than, equal to or greater than S2. Note: This function can not work correctly in multibyte locales. */ +#if ! HAVE_DECL_STRNCASECMP extern int strncasecmp (const char *s1, const char *s2, size_t n); +#endif + + +#ifdef __cplusplus +} +#endif + #endif /* _STRCASE_H */