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>
* 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 *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;
}
@ -348,15 +353,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';

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.
# 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