2006-07-08 11:33:44 +02:00
|
|
|
/************************************************************
|
|
|
|
Copyright (c) 1995 by Silicon Graphics Computer Systems, Inc.
|
|
|
|
|
|
|
|
Permission to use, copy, modify, and distribute this
|
|
|
|
software and its documentation for any purpose and without
|
|
|
|
fee is hereby granted, provided that the above copyright
|
|
|
|
notice appear in all copies and that both that copyright
|
|
|
|
notice and this permission notice appear in supporting
|
|
|
|
documentation, and that the name of Silicon Graphics not be
|
|
|
|
used in advertising or publicity pertaining to distribution
|
|
|
|
of the software without specific prior written permission.
|
|
|
|
Silicon Graphics makes no representation about the suitability
|
|
|
|
of this software for any purpose. It is provided "as is"
|
|
|
|
without any express or implied warranty.
|
|
|
|
|
|
|
|
SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
|
|
|
|
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
|
|
AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
|
|
|
|
GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
|
|
|
|
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
|
|
|
|
DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
|
|
|
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
|
|
|
|
THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
|
|
|
|
|
|
********************************************************/
|
|
|
|
|
|
|
|
#ifdef HAVE_DIX_CONFIG_H
|
|
|
|
#include <dix-config.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#include <ctype.h>
|
|
|
|
#include "dix.h"
|
|
|
|
|
|
|
|
#ifdef NEED_STRCASECMP
|
|
|
|
int
|
2008-06-11 14:09:46 +02:00
|
|
|
xstrcasecmp(const char *str1, const char *str2)
|
2006-07-08 11:33:44 +02:00
|
|
|
{
|
|
|
|
const u_char *us1 = (const u_char *)str1, *us2 = (const u_char *)str2;
|
|
|
|
|
|
|
|
while (tolower(*us1) == tolower(*us2)) {
|
|
|
|
if (*us1++ == '\0')
|
|
|
|
return (0);
|
|
|
|
us2++;
|
|
|
|
}
|
|
|
|
|
|
|
|
return (tolower(*us1) - tolower(*us2));
|
|
|
|
}
|
|
|
|
#endif
|
2008-06-11 14:09:46 +02:00
|
|
|
|
|
|
|
#ifdef NEED_STRNCASECMP
|
|
|
|
int
|
|
|
|
xstrncasecmp(const char *s1, const char *s2, size_t n)
|
|
|
|
{
|
|
|
|
if (n != 0) {
|
|
|
|
const u_char *us1 = (const u_char *)s1, *us2 = (const u_char *)s2;
|
|
|
|
|
|
|
|
do {
|
|
|
|
if (tolower(*us1) != tolower(*us2++))
|
|
|
|
return (tolower(*us1) - tolower(*--us2));
|
|
|
|
if (*us1++ == '\0')
|
|
|
|
break;
|
|
|
|
} while (--n != 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
#endif
|