X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fstrverscmp.c;h=93d7160f4e6e76b6e9a49a9d3bc9cc312fd2b501;hb=c947ae968b9fdb7a65f1481b7c7ec68e6a0d3abc;hp=830a5458b649961022126f774977e23c71540938;hpb=43de6da78cd614b814f800dc87dba415ce7dbf02;p=gnulib.git diff --git a/lib/strverscmp.c b/lib/strverscmp.c index 830a5458b..93d7160f4 100644 --- a/lib/strverscmp.c +++ b/lib/strverscmp.c @@ -1,5 +1,5 @@ /* Compare strings while treating digits characters numerically. - Copyright (C) 1997, 2000 Free Software Foundation, Inc. + Copyright (C) 1997, 2000, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jean-François Bignolles , 1997. @@ -26,7 +26,7 @@ #include /* states: S_N: normal, S_I: comparing integral part, S_F: comparing - Fractional parts, S_Z: idem but with leading Zeroes only */ + fractional parts, S_Z: idem but with leading Zeroes only */ #define S_N 0x0 #define S_I 0x4 #define S_F 0x8 @@ -36,23 +36,30 @@ #define CMP 2 #define LEN 3 + /* 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. - It's typically faster. - Posix 1003.2-1992 section 2.5.2.1 page 50 lines 1556-1558 says that - only '0' through '9' are digits. Prefer ISDIGIT to isdigit unless - it's important to use the locale's definition of `digit' even when the - host does not conform to Posix. */ + POSIX says that only '0' through '9' are digits. Prefer ISDIGIT to + ISDIGIT_LOCALE 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) +#undef __strverscmp +#undef strverscmp + +#ifndef weak_alias +# define __strverscmp strverscmp +#endif + /* Compare S1 and S2 as strings holding indices/version numbers, returning less than, equal to or greater than zero if S1 is less than, equal to or greater than S2 (for more info, see the texinfo doc). */ int -strverscmp (const char *s1, const char *s2) +__strverscmp (const char *s1, const char *s2) { const unsigned char *p1 = (const unsigned char *) s1; const unsigned char *p2 = (const unsigned char *) s2; @@ -120,3 +127,6 @@ strverscmp (const char *s1, const char *s2) return state; } } +#ifdef weak_alias +weak_alias (__strverscmp, strverscmp) +#endif