From 96c86d737aa7fba9b21991f96394a3f464aceb31 Mon Sep 17 00:00:00 2001 From: Uwe Girlich Date: Thu, 6 Jul 2000 10:03:44 +0000 Subject: [PATCH] SINIX-M systems don't know about strcasecmp(). I added the source file from the GNU C Library 2.0.7 like I did it with strncasecmp(). svn path=/trunk/; revision=2119 --- Makefile.am | 5 +++-- configure.in | 11 ++++++++++- strcasecmp.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+), 3 deletions(-) create mode 100644 strcasecmp.c diff --git a/Makefile.am b/Makefile.am index 50e175079a..797477e276 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,7 +1,7 @@ # Makefile.am # Automake file for Ethereal # -# $Id: Makefile.am,v 1.207 2000/07/05 09:40:37 guy Exp $ +# $Id: Makefile.am,v 1.208 2000/07/06 10:03:41 girlich Exp $ # # Ethereal - Network traffic analyzer # By Gerald Combs @@ -320,6 +320,7 @@ EXTRA_ethereal_SOURCES = \ snprintf-imp.h \ strerror.c \ strerror.h \ + strcasecmp.c \ strncasecmp.c \ mkstemp.c \ mkstemp.h \ @@ -336,7 +337,7 @@ EXTRA_ethereal_SOURCES = \ # by ethereal and tethereal and stuff needed only by one or the # other. ethereal_optional_objects = @SNPRINTF_O@ @STRERROR_O@ \ - @STRNCASECMP_O@ @MKSTEMP_O@ \ + @STRCASECMP_O@ @STRNCASECMP_O@ @MKSTEMP_O@ \ @INET_ATON_O@ @INET_PTON_O@ @INET_NTOP_O@ # Additional libs that I know how to build. These will be diff --git a/configure.in b/configure.in index 87b981b352..c17abb74c8 100644 --- a/configure.in +++ b/configure.in @@ -1,4 +1,4 @@ -# $Id: configure.in,v 1.93 2000/07/04 12:09:44 gram Exp $ +# $Id: configure.in,v 1.94 2000/07/06 10:03:43 girlich Exp $ dnl dnl Process this file with autoconf 2.13 or later to produce a dnl configure script; 2.12 doesn't generate a "configure" script that @@ -280,6 +280,15 @@ fi AC_SUBST(STRERROR_C) AC_SUBST(STRERROR_O) +AC_CHECK_FUNC(strcasecmp, STRCASECMP_O="", + STRCASECMP_O="strcasecmp.o") +if test "$ac_cv_func_strcasecmp" = no ; then + STRCASECMP_C="strcasecmp.c" + STRCASECMP_O="strcasecmp.o" +fi +AC_SUBST(STRCASECMP_C) +AC_SUBST(STRCASECMP_O) + AC_CHECK_FUNC(strncasecmp, STRNCASECMP_O="", STRNCASECMP_O="strncasecmp.o") if test "$ac_cv_func_strncasecmp" = no ; then diff --git a/strcasecmp.c b/strcasecmp.c new file mode 100644 index 0000000000..cee87b5863 --- /dev/null +++ b/strcasecmp.c @@ -0,0 +1,45 @@ +/* Copyright (C) 1991, 1992, 1995, 1996 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include +#include + +/* Compare 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. */ +int +strcasecmp (const char *s1, const char *s2) +{ + register const unsigned char *p1 = (const unsigned char *) s1; + register const unsigned char *p2 = (const unsigned char *) s2; + unsigned char c1, c2; + + if (p1 == p2) + return 0; + + do + { + c1 = tolower (*p1++); + c2 = tolower (*p2++); + if (c1 == '\0') + break; + } + while (c1 == c2); + + return c1 - c2; +}