diff options
author | Ulrich Drepper <drepper@gmail.com> | 2011-08-13 12:21:10 -0400 |
---|---|---|
committer | Andreas Schwab <schwab@redhat.com> | 2011-08-15 10:42:30 +0200 |
commit | f370dd3dc5372011236ea41d54452231b4ca7858 (patch) | |
tree | a5981254632b57522625fbf65b227c536252c377 | |
parent | f47fcd632e676612ff7c74d2cfa83506b2cb4f85 (diff) | |
download | glibc-f370dd3dc5372011236ea41d54452231b4ca7858.tar.gz glibc-f370dd3dc5372011236ea41d54452231b4ca7858.tar.xz glibc-f370dd3dc5372011236ea41d54452231b4ca7858.zip |
Fix compile problem
l10nflist compiles for localedef now. Optimize a bit. (cherry picked from commit f9ddf089f124279836930692b9cd7bc807e60088)
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | intl/l10nflist.c | 20 | ||||
-rw-r--r-- | locale/Makefile | 5 |
3 files changed, 22 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog index aeb7f836cb..1af4ec2943 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2011-08-13 Ulrich Drepper <drepper@gmail.com> + + * intl/l10nflist.c (_nl_normalize_codeset): Make it compile outside + of libc. Make tolower call locale-independent. Optimize a bit by + using isdigit instead of isalnum. + * locale/Makefile (locale-CPPFLAGS): Add -DNOT_IN_libc. + 2011-08-11 Ulrich Drepper <drepper@gmail.com> * intl/l10nflist.c (_nl_make_l10nflist): Use locale-independent diff --git a/intl/l10nflist.c b/intl/l10nflist.c index a38e0efe90..0b071e08e4 100644 --- a/intl/l10nflist.c +++ b/intl/l10nflist.c @@ -332,13 +332,18 @@ _nl_normalize_codeset (codeset, name_len) char *retval; char *wp; size_t cnt; +#ifdef NOT_IN_libc + locale_t locale = newlocale (0, "C", NULL); +#else +# define locale _nl_C_locobj_ptr +#endif for (cnt = 0; cnt < name_len; ++cnt) - if (__isalnum_l ((unsigned char) codeset[cnt], _nl_C_locobj_ptr)) + if (__isalnum_l ((unsigned char) codeset[cnt], locale)) { ++len; - if (__isalpha_l ((unsigned char) codeset[cnt], _nl_C_locobj_ptr)) + if (! __isdigit_l ((unsigned char) codeset[cnt], locale)) only_digit = 0; } @@ -346,15 +351,14 @@ _nl_normalize_codeset (codeset, name_len) if (retval != NULL) { + wp = retval; if (only_digit) - wp = stpcpy (retval, "iso"); - else - wp = retval; + wp = stpcpy (wp, "iso"); for (cnt = 0; cnt < name_len; ++cnt) - if (__isalpha_l ((unsigned char) codeset[cnt], _nl_C_locobj_ptr)) - *wp++ = tolower ((unsigned char) codeset[cnt]); - else if (__isdigit_l ((unsigned char) codeset[cnt], _nl_C_locobj_ptr)) + if (__isalpha_l ((unsigned char) codeset[cnt], locale)) + *wp++ = __tolower_l ((unsigned char) codeset[cnt], locale); + else if (__isdigit_l ((unsigned char) codeset[cnt], locale)) *wp++ = codeset[cnt]; *wp = '\0'; diff --git a/locale/Makefile b/locale/Makefile index 2dbd8dc6a5..87c29a55a9 100644 --- a/locale/Makefile +++ b/locale/Makefile @@ -1,4 +1,5 @@ -# Copyright (C) 1991,1992,1995-2003,2005,2009 Free Software Foundation, Inc. +# Copyright (C) 1991,1992,1995-2003,2005,2009,2011 +# Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -96,7 +97,7 @@ locale-CPPFLAGS := -DLOCALE_PATH='$(localepath)' \ -DCHARMAP_PATH='"$(i18ndir)/charmaps"' \ -DREPERTOIREMAP_PATH='"$(i18ndir)/repertoiremaps"' \ -DLOCSRCDIR='"$(i18ndir)/locales"' -DHAVE_CONFIG_H \ - -Iprograms + -Iprograms -DNOT_IN_libc CFLAGS-charmap.c = -Wno-write-strings -Wno-char-subscripts CFLAGS-locfile.c = -Wno-write-strings -Wno-char-subscripts |