]> git.ipfire.org Git - thirdparty/gettext.git/commitdiff
Update 'strcase' module from gnulib.
authorBruno Haible <bruno@clisp.org>
Wed, 12 Jan 2005 13:08:27 +0000 (13:08 +0000)
committerBruno Haible <bruno@clisp.org>
Tue, 23 Jun 2009 10:12:02 +0000 (12:12 +0200)
gettext-tools/ChangeLog
gettext-tools/configure.ac
gettext-tools/lib/ChangeLog
gettext-tools/lib/strcasecmp.c
gettext-tools/lib/strncasecmp.c
gettext-tools/m4/ChangeLog
gettext-tools/m4/Makefile.am

index 3dee51f53890fd8bfbf2a57203e3f5598fdc24d2..26708eb1ebaaedec8d1ea40a30a39cf5b87f69f8 100644 (file)
@@ -1,3 +1,8 @@
+2005-01-06  Bruno Haible  <bruno@clisp.org>
+
+       * configure.ac: Invoke gl_STRCASE. Don't test for strcasecmp and
+       strncasecmp here.
+
 2005-01-06  Bruno Haible  <bruno@clisp.org>
 
        * configure.ac: Invoke gl_FUNC_STPNCPY.
index 458d0015ed7966679f2cd73f145f0a485cf19571..fd54a081e84119c77583e16a65a34834edf71a19 100644 (file)
@@ -122,7 +122,7 @@ AC_FUNC_VPRINTF
 AC_CHECK_FUNCS([chown getcwd posix_spawn raise select strerror strtoul uname \
 utime utimes waitid])
 AC_REPLACE_FUNCS([atexit memmove memset stpcpy strcspn \
-strcasecmp strncasecmp strpbrk strstr vasprintf])
+strpbrk strstr vasprintf])
 AM_FUNC_GETLINE
 if test $am_cv_func_working_getline != yes; then
   AC_CHECK_FUNCS(getdelim)
@@ -132,6 +132,7 @@ gl_FUNC_FNMATCH_POSIX
 gl_GETOPT
 gl_FUNC_EACCESS
 gl_FUNC_STPNCPY
+gl_STRCASE
 gl_MBSWIDTH
 gt_PREREQ_BACKUPFILE
 AC_FUNC_VFORK
index 0d26f05642214d3c7f2a7dcc530763af16ddcbf4..f717a61a8b4bb96046475c87691e0c56ce8c4d65 100644 (file)
@@ -1,3 +1,8 @@
+2005-01-06  Bruno Haible  <bruno@clisp.org>
+
+       * strcasecmp.c: Update from gnulib.
+       * strncasecmp.c: Update from gnulib.
+
 2005-01-06  Bruno Haible  <bruno@clisp.org>
 
        * stpncpy.h: Update from gnulib.
index 8f85d1589747d92df07bed1f38ae8466e8fe813d..cf4ab88dbdf04448b73d8507f1cbe142d15f67e8 100644 (file)
@@ -1,12 +1,10 @@
-/* Copyright (C) 1991-1992, 1995-1997, 2002 Free Software Foundation, Inc.
+/* strcasecmp.c -- case insensitive string comparator
+   Copyright (C) 1998, 1999 Free Software Foundation, Inc.
 
-   NOTE: The canonical source of this file is maintained with the GNU C Library.
-   Bugs can be reported to bug-glibc@gnu.org.
-
-   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 the
-   Free Software Foundation; either version 2, or (at your option) any
-   later version.
+   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
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    GNU General Public License for more details.
 
    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.  */
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
-#ifdef HAVE_CONFIG_H
+#if HAVE_CONFIG_H
 # include <config.h>
 #endif
 
-#include <ctype.h>
-#include <string.h>
-
-#ifndef weak_alias
-# define __strcasecmp strcasecmp
-# define TOLOWER(Ch) tolower (Ch)
+#ifdef LENGTH_LIMIT
+# define STRXCASECMP_FUNCTION strncasecmp
+# define STRXCASECMP_DECLARE_N , size_t n
+# define LENGTH_LIMIT_EXPR(Expr) Expr
 #else
-# ifdef USE_IN_EXTENDED_LOCALE_MODEL
-#  define __strcasecmp __strcasecmp_l
-#  define TOLOWER(Ch) __tolower_l ((Ch), loc)
-# else
-#  define TOLOWER(Ch) tolower (Ch)
-# endif
+# define STRXCASECMP_FUNCTION strcasecmp
+# define STRXCASECMP_DECLARE_N /* empty */
+# define LENGTH_LIMIT_EXPR(Expr) 0
 #endif
 
-#ifdef USE_IN_EXTENDED_LOCALE_MODEL
-# define LOCALE_PARAM , __locale_t loc
-#else
-# define LOCALE_PARAM
-#endif
+#include <stddef.h>
+#include <ctype.h>
+
+#define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch))
+
+/* 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.  */
 
-/* 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 LOCALE_PARAM)
+STRXCASECMP_FUNCTION (const char *s1, const char *s2 STRXCASECMP_DECLARE_N)
 {
-  const unsigned char *p1 = (const unsigned char *) s1;
-  const unsigned char *p2 = (const unsigned 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)
+  if (p1 == p2 || LENGTH_LIMIT_EXPR (n == 0))
     return 0;
 
   do
     {
-      c1 = TOLOWER (*p1++);
-      c2 = TOLOWER (*p2++);
-      if (c1 == '\0')
+      c1 = TOLOWER (*p1);
+      c2 = TOLOWER (*p2);
+
+      if (LENGTH_LIMIT_EXPR (--n == 0) || c1 == '\0')
        break;
+
+      ++p1;
+      ++p2;
     }
   while (c1 == c2);
 
   return c1 - c2;
 }
-#ifndef __strcasecmp
-weak_alias (__strcasecmp, strcasecmp)
-#endif
index 0cdbabe933face3d94842973e81f36e6291a60e3..68d95aacc0feb46dcb3c96c4e70fc9f5bb3900e0 100644 (file)
@@ -1,74 +1,2 @@
-/* Compare at most N characters of two strings without taking care for
-   the case.
-   Copyright (C) 1992, 1996-1997, 2002 Free Software Foundation, Inc.
-
-   NOTE: The canonical source of this file is maintained with the GNU C Library.
-   Bugs can be reported to bug-glibc@gnu.org.
-
-   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 the
-   Free Software Foundation; either version 2, or (at your option) any
-   later version.
-
-   This program 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 General Public License for more details.
-
-   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.  */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <string.h>
-#include <ctype.h>
-
-#ifndef weak_alias
-# define __strncasecmp strncasecmp
-# define TOLOWER(Ch) tolower (Ch)
-#else
-# ifdef USE_IN_EXTENDED_LOCALE_MODEL
-#  define __strncasecmp __strncasecmp_l
-#  define TOLOWER(Ch) __tolower_l ((Ch), loc)
-# else
-#  define TOLOWER(Ch) tolower (Ch)
-# endif
-#endif
-
-#ifdef USE_IN_EXTENDED_LOCALE_MODEL
-# define LOCALE_PARAM , __locale_t loc
-#else
-# define LOCALE_PARAM
-#endif
-
-/* Compare no more than N characters of 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
-__strncasecmp (const char *s1, const char *s2, size_t n LOCALE_PARAM)
-{
-  const unsigned char *p1 = (const unsigned char *) s1;
-  const unsigned char *p2 = (const unsigned char *) s2;
-  unsigned char c1, c2;
-
-  if (p1 == p2 || n == 0)
-    return 0;
-
-  do
-    {
-      c1 = TOLOWER (*p1++);
-      c2 = TOLOWER (*p2++);
-      if (c1 == '\0' || c1 != c2)
-       break;
-    } while (--n > 0);
-
-  return c1 - c2;
-}
-#ifndef __strncasecmp
-weak_alias (__strncasecmp, strncasecmp)
-#endif
+#define LENGTH_LIMIT
+#include "strcasecmp.c"
index 757b99ea03f49a1a5931fbdb163a9991ed873b9f..2728c7e04615cf483c39a924d193cbe9732096bd 100644 (file)
@@ -1,3 +1,8 @@
+2005-01-06  Bruno Haible  <bruno@clisp.org>
+
+       * strcase.m4: New file, from gnulib.
+       * Makefile.am (EXTRA_DIST): Add it.
+
 2005-01-06  Bruno Haible  <bruno@clisp.org>
 
        * stpncpy.m4: New file, from gnulib.
index 7df15893238a580f21dcd31b66da2a6695edc317..7bf11a8dd3fc6856184b3e3233f88e1ff205d748 100644 (file)
@@ -84,6 +84,7 @@ signalblocking.m4 \
 ssize_t.m4 \
 stdbool.m4 \
 stpncpy.m4 \
+strcase.m4 \
 strerror.m4 \
 strerror_r.m4 \
 tmpdir.m4 \