diff options
author | Guy Harris <guy@alum.mit.edu> | 2014-10-29 10:53:49 -0700 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2014-10-29 17:54:51 +0000 |
commit | 4acf4955f54c1fba30fdf2dc0dd4e11f6a3595b5 (patch) | |
tree | f7f5c880a42d1e0c2d14920ebb64f3ecccf79e72 /wsutil/strnatcmp.c | |
parent | d2f4b6fd3d938ba0e436390300b3325da91bb10d (diff) |
Rename the strnatcmp.c routines and make them use the g_ascii_XXX() routines.
Rename strnatcmp()/strnatcasecmp() to ws_ascii_XXX(), and make them use
the g_ascii_XXX() routines rather than ctype.h routines, to eliminate
locale-dependent behavior.
(If you want locale-dependent "natural order" sorting, you probably want
"dictionary order" sorting, which is more complicated than just natural
order sorting.)
Change-Id: I837f2776b2a909b547dc9a6072e497911b5380e5
Reviewed-on: https://code.wireshark.org/review/4985
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'wsutil/strnatcmp.c')
-rw-r--r-- | wsutil/strnatcmp.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/wsutil/strnatcmp.c b/wsutil/strnatcmp.c index 7db1c8cadd..8c8347378c 100644 --- a/wsutil/strnatcmp.c +++ b/wsutil/strnatcmp.c @@ -32,10 +32,17 @@ * negative chars in their default char type. */ -#include <ctype.h> +/* + * Modified 2014-10-29 to use the g_ascii_XXX() routines; this avoids + * locale-dependent behavior. The routine names were changed to + * ws_ascii_XXX() to reflect this. + */ + #include <string.h> #include <stdio.h> +#include <glib.h> + #include "strnatcmp.h" @@ -44,21 +51,21 @@ static int nat_isdigit(nat_char a) { - return isdigit((unsigned char) a); + return g_ascii_isdigit(a); } static int nat_isspace(nat_char a) { - return isspace((unsigned char) a); + return g_ascii_isspace(a); } static nat_char nat_toupper(nat_char a) { - return toupper((unsigned char) a); + return g_ascii_toupper(a); } @@ -172,14 +179,14 @@ static int strnatcmp0(nat_char const *a, nat_char const *b, int fold_case) } -int strnatcmp(nat_char const *a, nat_char const *b) +int ws_ascii_strnatcmp(nat_char const *a, nat_char const *b) { return strnatcmp0(a, b, 0); } /* Compare, recognizing numeric string and ignoring case. */ -int strnatcasecmp(nat_char const *a, nat_char const *b) +int ws_ascii_strnatcasecmp(nat_char const *a, nat_char const *b) { return strnatcmp0(a, b, 1); } |