Fix compile problem

l10nflist compiles for localedef now.  Optimize a bit.
This commit is contained in:
Ulrich Drepper 2011-08-13 12:21:10 -04:00
parent 07df30d995
commit f9ddf089f1
3 changed files with 22 additions and 10 deletions

View File

@ -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-12 Ulrich Drepper <drepper@gmail.com> 2011-08-12 Ulrich Drepper <drepper@gmail.com>
* elf/dl-load.c (_dl_map_object): Show in debug output whether a DSO * elf/dl-load.c (_dl_map_object): Show in debug output whether a DSO

View File

@ -334,13 +334,18 @@ _nl_normalize_codeset (codeset, name_len)
char *retval; char *retval;
char *wp; char *wp;
size_t cnt; 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) 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; ++len;
if (__isalpha_l ((unsigned char) codeset[cnt], _nl_C_locobj_ptr)) if (! __isdigit_l ((unsigned char) codeset[cnt], locale))
only_digit = 0; only_digit = 0;
} }
@ -348,15 +353,14 @@ _nl_normalize_codeset (codeset, name_len)
if (retval != NULL) if (retval != NULL)
{ {
wp = retval;
if (only_digit) if (only_digit)
wp = stpcpy (retval, "iso"); wp = stpcpy (wp, "iso");
else
wp = retval;
for (cnt = 0; cnt < name_len; ++cnt) for (cnt = 0; cnt < name_len; ++cnt)
if (__isalpha_l ((unsigned char) codeset[cnt], _nl_C_locobj_ptr)) if (__isalpha_l ((unsigned char) codeset[cnt], locale))
*wp++ = tolower ((unsigned char) codeset[cnt]); *wp++ = __tolower_l ((unsigned char) codeset[cnt], locale);
else if (__isdigit_l ((unsigned char) codeset[cnt], _nl_C_locobj_ptr)) else if (__isdigit_l ((unsigned char) codeset[cnt], locale))
*wp++ = codeset[cnt]; *wp++ = codeset[cnt];
*wp = '\0'; *wp = '\0';

View File

@ -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. # This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or # 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"' \ -DCHARMAP_PATH='"$(i18ndir)/charmaps"' \
-DREPERTOIREMAP_PATH='"$(i18ndir)/repertoiremaps"' \ -DREPERTOIREMAP_PATH='"$(i18ndir)/repertoiremaps"' \
-DLOCSRCDIR='"$(i18ndir)/locales"' -DHAVE_CONFIG_H \ -DLOCSRCDIR='"$(i18ndir)/locales"' -DHAVE_CONFIG_H \
-Iprograms -Iprograms -DNOT_IN_libc
CFLAGS-charmap.c = -Wno-write-strings -Wno-char-subscripts CFLAGS-charmap.c = -Wno-write-strings -Wno-char-subscripts
CFLAGS-locfile.c = -Wno-write-strings -Wno-char-subscripts CFLAGS-locfile.c = -Wno-write-strings -Wno-char-subscripts