X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fstrverscmp.c;h=be527a750d2d4d491929724e1b7a497ec210a601;hb=2aa729ac6af316bc30111144684a51c4650d5c44;hp=df4f5c08a99865907061f14ba66e624e1d3af0fa;hpb=4589d52c7c039b9d9c9d7bec075f00c9d57ee6e1;p=gnulib.git diff --git a/lib/strverscmp.c b/lib/strverscmp.c index df4f5c08a..be527a750 100644 --- a/lib/strverscmp.c +++ b/lib/strverscmp.c @@ -1,7 +1,8 @@ /* Compare strings while treating digits characters numerically. - Copyright (C) 1997, 2000, 2002 Free Software Foundation, Inc. + Copyright (C) 1997, 2000, 2002, 2004, 2006, 2009-2011 Free Software + Foundation, Inc. This file is part of the GNU C Library. - Contributed by Jean-François Bignolles , 1997. + Contributed by Jean-François Bignolles , 1997. 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 @@ -15,9 +16,9 @@ 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. */ + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -#if HAVE_CONFIG_H +#if !_LIBC # include #endif @@ -37,13 +38,13 @@ /* ISDIGIT differs from isdigit, as follows: - - Its arg may be any int or unsigned int; it need not be an unsigned char. - - It's guaranteed to evaluate its argument exactly once. + - Its arg may be any int or unsigned int; it need not be an unsigned char + or EOF. - It's typically faster. POSIX says that only '0' through '9' are digits. Prefer ISDIGIT to - ISDIGIT_LOCALE unless it's important to use the locale's definition + isdigit unless it's important to use the locale's definition of `digit' even when the host does not conform to POSIX. */ -#define ISDIGIT(c) ((unsigned) (c) - '0' <= 9) +#define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9) #undef __strverscmp #undef strverscmp @@ -117,8 +118,8 @@ __strverscmp (const char *s1, const char *s2) case LEN: while (ISDIGIT (*p1++)) - if (!ISDIGIT (*p2++)) - return 1; + if (!ISDIGIT (*p2++)) + return 1; return ISDIGIT (*p2) ? -1 : diff;