diff options
author | jbj <devnull@localhost> | 2001-01-03 20:19:27 +0000 |
---|---|---|
committer | jbj <devnull@localhost> | 2001-01-03 20:19:27 +0000 |
commit | 23fcf67cb51b54c4c1f23188ee355dbcbfba0a28 (patch) | |
tree | f8d1a8a5a523fd6f60760b2930f99f1f18349091 /misc | |
parent | fd2c1d927f4a13e0507ab929a009decdbb90c01e (diff) | |
download | rpm-23fcf67cb51b54c4c1f23188ee355dbcbfba0a28.tar.gz |
- fix: avoid locale issues with strcasecmp/strncasecmp (#23199).
- remove almost all explicit uses of stderr in rpmlib using rpmError().
CVS patchset: 4406
CVS date: 2001/01/03 20:19:27
Diffstat (limited to 'misc')
-rw-r--r-- | misc/Makefile.am | 4 | ||||
-rw-r--r-- | misc/strcasecmp.c | 77 | ||||
-rw-r--r-- | misc/strncasecmp.c | 80 |
3 files changed, 2 insertions, 159 deletions
diff --git a/misc/Makefile.am b/misc/Makefile.am index 5a67c24f7..e52e8a432 100644 --- a/misc/Makefile.am +++ b/misc/Makefile.am @@ -9,8 +9,8 @@ EXTRA_DIST = \ fakefork.c fnmatch.c getcwd.c getmntent.c \ getwd.c glob.c memcmp.c \ mktime.c myrealloc.c putenv.c realpath.c \ - setenv.c stpcpy.c stpncpy.c strcasecmp.c \ - strncasecmp.c strcspn.c strdup.c strerror.c \ + setenv.c stpcpy.c stpncpy.c \ + strcspn.c strdup.c strerror.c \ strftime.c strcspn.c strstr.c strtol.c \ strtoul.c diff --git a/misc/strcasecmp.c b/misc/strcasecmp.c deleted file mode 100644 index 776d62ada..000000000 --- a/misc/strcasecmp.c +++ /dev/null @@ -1,77 +0,0 @@ -/* Copyright (C) 1991, 1992, 1995, 1996, 1997 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@prep.ai.mit.edu. - - 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 <ctype.h> -#include <string.h> - -#ifndef weak_alias -# define __strcasecmp strcasecmp -# define TOLOWER(Ch) tolower (Ch) -#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 -#endif - -#ifdef USE_IN_EXTENDED_LOCALE_MODEL -# define LOCALE_PARAM , loc -# define LOCALE_PARAM_DECL __locale_t loc; -#else -# define LOCALE_PARAM -# define LOCALE_PARAM_DECL -#endif - -/* 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 (s1, s2 LOCALE_PARAM) - const char *s1; - const char *s2; - LOCALE_PARAM_DECL -{ - const unsigned char *p1 = (const unsigned char *) s1; - 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; -} -#ifndef __strcasecmp -weak_alias (__strcasecmp, strcasecmp) -#endif diff --git a/misc/strncasecmp.c b/misc/strncasecmp.c deleted file mode 100644 index 52af434b1..000000000 --- a/misc/strncasecmp.c +++ /dev/null @@ -1,80 +0,0 @@ -/* Compare at most N characters of two strings without taking care for - the case. - Copyright (C) 1992, 1996, 1997 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@prep.ai.mit.edu. - - 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 , loc -# define LOCALE_PARAM_DECL __locale_t loc; -#else -# define LOCALE_PARAM -# define LOCALE_PARAM_DECL -#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 (s1, s2, n LOCALE_PARAM) - const char *s1; - const char *s2; - size_t n; - LOCALE_PARAM_DECL -{ - 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) - return c1 - c2; - } while (--n > 0); - - return c1 - c2; -} -#ifndef __strncasecmp -weak_alias (__strncasecmp, strncasecmp) -#endif |