Annotation of OpenXM_contrib/gmp/mpfr/strcasecmp.c, Revision 1.1
1.1 ! ohara 1: /* Copyright (C) 1991, 1992, 1995, 2002 Free Software Foundation, Inc.
! 2: This file was part of the GNU C Library. Modified by kb@mail.tug.org to
! 3: avoid glibc-isms. Modified by Vincent Lefevre (-> ISO C prototypes).
! 4:
! 5: This file is free software; you can redistribute it and/or
! 6: modify it under the terms of the GNU Library General Public License as
! 7: published by the Free Software Foundation; either version 2 of the
! 8: License, or (at your option) any later version.
! 9:
! 10: This file is distributed in the hope that it will be useful,
! 11: but WITHOUT ANY WARRANTY; without even the implied warranty of
! 12: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
! 13: Library General Public License for more details.
! 14:
! 15: You should have received a copy of the GNU Library General Public
! 16: License along with this file; see the file COPYING.LIB. If not, write
! 17: to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
! 18: Boston, MA 02111-1307, USA. */
! 19:
! 20: #ifdef HAVE_CONFIG_H
! 21: #include <config.h>
! 22: #endif
! 23:
! 24: #if !defined (__STDC__) || !__STDC__
! 25: /* This is a separate conditional since some stdc systems
! 26: reject `defined (const)'. */
! 27: #ifndef const
! 28: #define const
! 29: #endif
! 30: #endif
! 31:
! 32: #include <ctype.h>
! 33:
! 34: int strcasecmp (const char *, const char *);
! 35: int strncasecmp (const char *, const char *, size_t);
! 36:
! 37: /* Compare S1 and S2, ignoring case, returning less than, equal to or
! 38: greater than zero if S1 is lexiographically less than,
! 39: equal to or greater than S2. */
! 40: int
! 41: strcasecmp (const char *s1, const char *s2)
! 42: {
! 43: register const unsigned char *p1 = (const unsigned char *) s1;
! 44: register const unsigned char *p2 = (const unsigned char *) s2;
! 45: unsigned char c1, c2;
! 46:
! 47: if (p1 == p2)
! 48: return 0;
! 49:
! 50: do
! 51: {
! 52: c1 = tolower (*p1++);
! 53: c2 = tolower (*p2++);
! 54: if (c1 == '\0')
! 55: break;
! 56: }
! 57: while (c1 == c2);
! 58:
! 59: return c1 - c2;
! 60: }
! 61:
! 62: int
! 63: strncasecmp (const char *s1, const char *s2, size_t n)
! 64: {
! 65: register const unsigned char *p1 = (const unsigned char *) s1;
! 66: register const unsigned char *p2 = (const unsigned char *) s2;
! 67: unsigned char c1, c2;
! 68:
! 69: if (p1 == p2 || n == 0)
! 70: return 0;
! 71:
! 72: do
! 73: {
! 74: c1 = tolower (*p1++);
! 75: c2 = tolower (*p2++);
! 76: if (c1 == '\0' || c1 != c2)
! 77: return c1 - c2;
! 78: } while (--n > 0);
! 79:
! 80: return c1 - c2;
! 81: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>