aboutsummaryrefslogtreecommitdiff
path: root/locale/findlocale.c
AgeCommit message (Collapse)AuthorFilesLines
2024-04-22locale: Handle loading a missing locale twice (Bug 14247)Carlos O'Donell1-3/+16
Delay setting file->decided until the data has been successfully loaded by _nl_load_locale(). If the function fails to load the data then we must return and error and leave decided untouched to allow the caller to attempt to load the data again at a later time. We should not set decided to 1 early in the function since doing so may prevent attempting to load it again. We want to try loading it again because that allows an open to fail and set errno correctly. On the other side of this problem is that if we are called again with the same inputs we will fetch the cached version of the object and carry out no open syscalls and that fails to set errno so we must set errno to ENOENT in that case. There is a second code path that has to be handled where the name of the locale matches but the codeset doesn't match. These changes ensure that errno is correctly set on failure in all the return paths in _nl_find_locale(). Adds tst-locale-loadlocale to cover the bug. No regressions on x86_64. Co-authored-by: Jeff Law <law@redhat.com> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2024-01-01Update copyright dates with scripts/update-copyrightsPaul Eggert1-1/+1
2023-01-06Update copyright dates with scripts/update-copyrightsJoseph Myers1-1/+1
2022-05-23locale: Remove cleanup function pointer from struct __localedataFlorian Weimer1-1/+1
We can call the cleanup functions directly from _nl_unload_locale if we pass the category to it. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2022-01-01Update copyright dates with scripts/update-copyrightsPaul Eggert1-1/+1
I used these shell commands: ../glibc/scripts/update-copyrights $PWD/../gnulib/build-aux/update-copyright (cd ../glibc && git commit -am"[this commit message]") and then ignored the output, which consisted lines saying "FOO: warning: copyright statement not found" for each of 7061 files FOO. I then removed trailing white space from math/tgmath.h, support/tst-support-open-dev-null-range.c, and sysdeps/x86_64/multiarch/strlen-vec.S, to work around the following obscure pre-commit check failure diagnostics from Savannah. I don't know why I run into these diagnostics whereas others evidently do not. remote: *** 912-#endif remote: *** 913: remote: *** 914- remote: *** error: lines with trailing whitespace found ... remote: *** error: sysdeps/unix/sysv/linux/statx_cp.c: trailing lines
2021-09-03Remove "Contributed by" linesSiddhesh Poyarekar1-1/+0
We stopped adding "Contributed by" or similar lines in sources in 2012 in favour of git logs and keeping the Contributors section of the glibc manual up to date. Removing these lines makes the license header a bit more consistent across files and also removes the possibility of error in attribution when license blocks or files are copied across since the contributed-by lines don't actually reflect reality in those cases. Move all "Contributed by" and similar lines (Written by, Test by, etc.) into a new file CONTRIBUTED-BY to retain record of these contributions. These contributors are also mentioned in manual/contrib.texi, so we just maintain this additional record as a courtesy to the earlier developers. The following scripts were used to filter a list of files to edit in place and to clean up the CONTRIBUTED-BY file respectively. These were not added to the glibc sources because they're not expected to be of any use in future given that this is a one time task: https://gist.github.com/siddhesh/b5ecac94eabfd72ed2916d6d8157e7dc https://gist.github.com/siddhesh/15ea1f5e435ace9774f485030695ee02 Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2021-01-02Update copyright dates with scripts/update-copyrightsPaul Eggert1-1/+1
I used these shell commands: ../glibc/scripts/update-copyrights $PWD/../gnulib/build-aux/update-copyright (cd ../glibc && git commit -am"[this commit message]") and then ignored the output, which consisted lines saying "FOO: warning: copyright statement not found" for each of 6694 files FOO. I then removed trailing white space from benchtests/bench-pthread-locks.c and iconvdata/tst-iconv-big5-hkscs-to-2ucs4.c, to work around this diagnostic from Savannah: remote: *** pre-commit check failed ... remote: *** error: lines with trailing whitespace found remote: error: hook declined to update refs/heads/master
2020-01-01Update copyright dates with scripts/update-copyrights.Joseph Myers1-1/+1
2019-09-07Prefer https to http for gnu.org and fsf.org URLsPaul Eggert1-1/+1
Also, change sources.redhat.com to sourceware.org. This patch was automatically generated by running the following shell script, which uses GNU sed, and which avoids modifying files imported from upstream: sed -ri ' s,(http|ftp)(://(.*\.)?(gnu|fsf|sourceware)\.org($|[^.]|\.[^a-z])),https\2,g s,(http|ftp)(://(.*\.)?)sources\.redhat\.com($|[^.]|\.[^a-z]),https\2sourceware.org\4,g ' \ $(find $(git ls-files) -prune -type f \ ! -name '*.po' \ ! -name 'ChangeLog*' \ ! -path COPYING ! -path COPYING.LIB \ ! -path manual/fdl-1.3.texi ! -path manual/lgpl-2.1.texi \ ! -path manual/texinfo.tex ! -path scripts/config.guess \ ! -path scripts/config.sub ! -path scripts/install-sh \ ! -path scripts/mkinstalldirs ! -path scripts/move-if-change \ ! -path INSTALL ! -path locale/programs/charmap-kw.h \ ! -path po/libc.pot ! -path sysdeps/gnu/errlist.c \ ! '(' -name configure \ -execdir test -f configure.ac -o -f configure.in ';' ')' \ ! '(' -name preconfigure \ -execdir test -f preconfigure.ac ';' ')' \ -print) and then by running 'make dist-prepare' to regenerate files built from the altered files, and then executing the following to cleanup: chmod a+x sysdeps/unix/sysv/linux/riscv/configure # Omit irrelevant whitespace and comment-only changes, # perhaps from a slightly-different Autoconf version. git checkout -f \ sysdeps/csky/configure \ sysdeps/hppa/configure \ sysdeps/riscv/configure \ sysdeps/unix/sysv/linux/csky/configure # Omit changes that caused a pre-commit check to fail like this: # remote: *** error: sysdeps/powerpc/powerpc64/ppc-mcount.S: trailing lines git checkout -f \ sysdeps/powerpc/powerpc64/ppc-mcount.S \ sysdeps/unix/sysv/linux/s390/s390-64/syscall.S # Omit change that caused a pre-commit check to fail like this: # remote: *** error: sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S: last line does not end in newline git checkout -f sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S
2019-09-05locale: Avoid zero-length array in _nl_category_names [BZ #24962]Florian Weimer1-6/+3
The union wrapper is unnecessary because C allows to read any object as a sequence of chars. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2019-01-01Update copyright dates with scripts/update-copyrights.Joseph Myers1-1/+1
* All files with FSF copyright notices: Update copyright dates using scripts/update-copyrights. * locale/programs/charmap-kw.h: Regenerated. * locale/programs/locfile-kw.h: Likewise.
2018-01-01Update copyright dates with scripts/update-copyrights.Joseph Myers1-1/+1
* All files with FSF copyright notices: Update copyright dates using scripts/update-copyrights. * locale/programs/charmap-kw.h: Regenerated. * locale/programs/locfile-kw.h: Likewise.
2017-08-31iconv, intl, locale, wcsmbs: Remove internal_functionFlorian Weimer1-2/+0
Also adjust parts of the time subdirectory.
2017-01-01Update copyright dates with scripts/update-copyrights.Joseph Myers1-1/+1
2016-01-04Update copyright dates with scripts/update-copyrights.Joseph Myers1-1/+1
2015-11-27Rename localedir to complocaledir (bug 14259).Carlos O'Donell1-1/+1
In preparation to fix the --localedir configure argument we must move the existing conflicting definition of localedir to a more appropriate name. Given that all current internal uses of localedir relate to the compiled locales we rename to complocaledir.
2015-02-27Avoid unsafe loc_name type casts with additional variableAlexandre Oliva1-23/+22
for ChangeLog [BZ #15969] * locale/findlocale.c (_nl_find_locale): Introduce const version of loc_name and drop unsafe type casts.
2015-02-26Fix constness error just introduced in findlocale.Alexandre Oliva1-1/+2
for ChangeLog [BZ #15969] * locale/findlocale.c (_nl_find_locale): Fix constness error in the previous change.
2015-02-26BZ #15969: search locale archive again after alias expansionAlexandre Oliva1-4/+15
If a locale alias is defined in locale.alias but not in an archive, and the referenced locale is only present in the archive, setlocale will fail if given the alias name. This is unintuitive. This patch fixes it, arranging for the locale archive to be searched again after alias expansion. for ChangeLog [BZ #15969] * locale/findlocale.c (_nl_find_locale): Retry archive search after alias expansion.
2015-01-02Update copyright dates with scripts/update-copyrights.Joseph Myers1-1/+1
2014-11-12Fix locale memmem namespace (bug 17585).Joseph Myers1-2/+2
Locale code, brought in by ISO C functions, calls memmem, which is not an ISO C function. This isn't an ISO C conformance bug, because all mem* names are reserved, but glibc practice is not to rely on that reservation (thus, memmem is only declared in string.h if __USE_GNU even though ISO C would allow it to be declared unconditionally, for example). This patch changes that code to use __memmem. Note: there are uses of memmem elsewhere in glibc that I didn't change, although it may turn out some of those also need to use __memmem. Tested for x86_64 (testsuite, and that disassembly of installed shared libraries is unchanged by this patch). [BZ #17585] * string/memmem.c [!_LIBC] (__memmem): Define to memmem. (memmem): Rename to __memmem and define as weak alias of __memmem. Use libc_hidden_weak. (__memmem): Use libc_hidden_def. * include/string.h (__memmem): Declare. Use libc_hidden_proto. * locale/findlocale.c (valid_locale_name): Use __memmem instead of memmem.
2014-07-10_nl_find_locale: Improve handling of crafted locale names [BZ #17137]Florian Weimer1-13/+61
Prevent directory traversal in locale-related environment variables (CVE-2014-0475).
2014-02-10Use glibc_likely instead __builtin_expect.Ondřej Bílka1-2/+2
2014-01-01Update copyright notices with scripts/update-copyrightsAllan McRae1-1/+1
2013-01-02Update copyright notices with scripts/update-copyrights.Joseph Myers1-1/+1
2012-02-09Replace FSF snail mail address with URLs.Paul Eggert1-3/+2
2011-11-08Use strcasecmp_l instead of strcasecmpUlrich Drepper1-1/+2
2011-05-28Handle failure of _nl_explode_name in all casesUlrich Drepper1-1/+4
2010-01-09Add support for XPG7 testing.Ulrich Drepper1-16/+17
The header conformance testing code needed extending for XPG7. This exposed a few bugs in the headers. There are more changes to come.
2006-05-15* locale/setlocale.c: Change _nl_category_names into a string.Ulrich Drepper1-4/+7
Add new _nl_category_name_idxs. Change all users. * locale/localeinfo.h: Adjust declaration of _nl_category_names. Declare _nl_category_name_idxs. * locale/findlocale.c: Adjust for _nl_category_names change. * locale/loadlocale.c: Likewise. * locale/newlocale.c: Likewise. * intl/dcigettext.c: Likewise.
2004-12-22(CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.Ulrich Drepper1-7/+4
2007-07-122.5-18.1Jakub Jelinek1-4/+7
2003-06-11Update.Ulrich Drepper1-1/+2
2003-06-11 Ulrich Drepper <drepper@redhat.com> * allocatestack.c (queue_stack): Always inline. * ptreadhP.h (__do_cancel): Likewise.
2002-09-01* sysdeps/generic/libc-tls.c (__pthread_initialize_minimal): PassRoland McGrath1-32/+15
TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN instead of 0, 1. * include/getopt.h: Include <features.h> before <posix/getopt.h>. * locale/findlocale.c (_nl_remove_locale): Don't search in _nl_locale_file_list if DATA->alloc is ld_archive. Use _nl_unload_locale to do the rest of the work. * locale/loadarchive.c (_nl_load_locale_from_archive): Set usage_count of new structure to UNDELETABLE. * wctype/wctype.h (iswalnum, iswalpha, iswcntrl, iswdigit, iswlower, iswgraph, iswprint, iswpunct, iswspace, iswupper, iswxdigit, iswblank, towlower, towupper): Macros removed. * ctype/ctype.h (__tobody): Put parens around macro argument. (__isctype): Macro removed. (__ctype_b, __ctype_tolower, __ctype_toupper): Decls removed. (isalnum, isalpha, iscntrl, isdigit, islower, isgraph, isprint, ispunct, isspace, isupper, isxdigit, isblank, _tolower, _toupper, tolower, toupper): Macros and inlines removed. * include/ctype.h [! NOT_IN_libc] (isalnum, isalpha, iscntrl, isdigit, islower, isgraph, isprint, ispunct, isspace, isupper, isxdigit, isblank, _tolower, _toupper, tolower, toupper): Define here instead, using _NL_CURRENT. * ctype/ctype.c (__ctype_tolower, __ctype_toupper): Define as macros using _NL_CURRENT. * ctype/ctype-extn.c (__ctype_tolower, __ctype_toupper): Likewise. * ctype/ctype-info.c (__ctype_b, __ctype_tolower, __ctype_toupper): Renamed these to __ctype_old_*. Define old names only for SHLIB_COMPAT. (__ctype32_b, __ctype32_tolower, __ctype32_toupper): Likewise. (__ctype32_wctrans, __ctype32_wctrans, __ctype32_width): Removed. * locale/lc-ctype.c (_nl_postload_ctype): Use renamed variables, conditional on SHLIB_COMPAT. Don't set removed variables at all. * wctype/wcfuncs.c: Use _NL_CURRENT instead of those globals. * wcsmbs/wcwidth.h (internal_wcwidth): Likewise. * resolv/res_init.c [RESOLVSORT] (sort_mask): Renamed sort_mask_chars. (ISSORTMASK): Update use. * intl/localealias.c [__GNUC__]: #undef alloca before #define. * nss/nss_files/files-XXX.c (last_use): Rename `none' to `nouse'. (_nss_files_getENTNAME_r): Likewise. * nss/nss_files/files-alias.c (last_use, _nss_files_getaliasent_r): Likewise. * Makerules (all-nonlib): Renamed from all-tests. Include $(others) here too. * locale/Makefile (CPPFLAGS-locale, CPPFLAGS-localedef, CPPFLAGS-ld-ctype, CPPFLAGS-ld-time, CPPFLAGS-ld-numeric, CPPFLAGS-ld-monetary, CPPFLAGS-ld-collate, CPPFLAGS-ld-identification, CPPFLAGS-charmap, CPPFLAGS-locarchive, CPPFLAGS-linereader, CPPFLAGS-charmap-dir): Variables removed. Instead, catch all the program modules via cppflags-iterator.mk. * sunrpc/Makefile (CPPFLAGS-rpc_main): Variable removed. Instead, catch all rpcgen-objs via cppflags-iterator.mk. * posix/tst-getconf.sh: If no third arg, work with static linking.
2002-08-29* locale/findlocale.c [NL_CURRENT_INDIRECT] (_nl_C): New variable.Roland McGrath1-3/+16
* locale/setlocale.c (setlocale) [NL_CURRENT_INDIRECT]: Null return from _nl_find_locale ok if for _nl_C_name.
2002-08-10* locale/loadarchive.c (_nl_load_locale_from_archive): Parse localeRoland McGrath1-2/+19
name to find codeset name (if any) and normalize it. If the normalized name differs, look up only that in the archive. * locale/programs/locarchive.c (add_locale_to_archive): If the name contains a codeset, normalize the codeset store only the normalized name in the archive. If not, add an alias containing the locale's normalized codeset name. Apply codeset name normalization when matching entries in the alias file. * locale/programs/locarchive.c (delete_locales_from_archive): Don't decrement HEAD->namehash_used here. (add_locale): Only need to insert name string when name_offset != 0. * locale/programs/localedef.c (options): Add -A/--alias-file. (alias_file): New variable. (parse_opt): Grok -A, set that. * locale/programs/localedef.h: Declare it. * locale/programs/locarchive.c (insert_name): New function, broken out of ... (add_locale_to_archive): ... here. Call that. (add_alias): New function. (add_locale): New static function, add_locale_to_archive renamed. (add_locale_to_archive): Call that and use add_alias to add an alias for the name with codeset if the given name lacks it. (enlarge_archive): Call add_locale instead of add_locale_to_archive. * locale/Makefile (routines): Add loadarchive. * locale/loadarchive.c: New file, started from code by Ulrich Drepper. (_nl_load_locale_from_archive): New function. * locale/localeinfo.h: Declare it. * locale/findlocale.c (_nl_find_locale): If using default locale path, try _nl_load_locale_from_archive first. * locale/loadlocale.c (_nl_intern_locale_data): New function, broken out of _nl_load_locale. (_nl_load_locale): Call that. * locale/localeinfo.h: Declare it. (struct locale_data): Replace member `mmaped' with `alloc', an enum. (struct locale_data): Remove unused member `options'. * locale/findlocale.c (_nl_remove_locale): Update uses. * locale/loadlocale.c (_nl_load_locale, _nl_unload_locale): Likewise. * locale/C-collate.c: Update initializer. * locale/C-identification.c: Likewise. * locale/C-measurement.c: Likewise. * locale/C-telephone.c: Likewise. * locale/C-address.c: Likewise. * locale/C-name.c: Likewise. * locale/C-paper.c: Likewise. * locale/C-time.c: Likewise. * locale/C-numeric.c: Likewise. * locale/C-monetary.c: Likewise. * locale/C-messages.c : Likewise. * locale/C-ctype.c: Likewise. * locale/hashval.h [! LONGBITS]: Include <limits.h> here and use CHAR_BIT instead of BITSPERBYTE. * locale/localeinfo.h (_nl_find_locale, _nl_load_locale, _nl_unload_locale): Add `internal_function attribute_hidden' to decls. * locale/findlocale.c (_nl_find_locale): Add internal_function to defn. (_nl_remove_locale): Likewise. * locale/loadlocale.c (_nl_load_locale, _nl_unload_locale): Likewise. * locale/findlocale.c (_nl_default_locale_path): New variable. (_nl_find_locale): If LOCALE_PATH is null, default to that. * locale/localeinfo.h: Declare it. * locale/setlocale.c (setlocale): Use _nl_default_locale_path in place of LOCALEDIR. If no LOCPATH, pass null to _nl_find_locale. * locale/newlocale.c (__newlocale): Likewise. * misc/err.c (vwarnx, vwarn): Fix typos in libc_hidden_def uses. * inet/rexec.c (rexec_af): Add libc_hidden_def. * sysdeps/generic/morecore.c: Likewise. * signal/allocrtsig.c (__libc_current_sigrtmin): Likewise. (__libc_current_sigrtmax): Likewise. 2002-08-08 Roland McGrath <roland@redhat.com> * locale/loadlocale.c (_nl_load_locale): Don't use MAP_INHERIT. * catgets/open_catalog.c (__open_catalog): Likewise. * locale/programs/locarchive.c (INITIAL_NUM_NAMES): Renamed from typo INITIAL_NUM_NANES. (create_archive): Update use.
2002-08-04* locale/setlocale.c (_nl_current_names): Variable moved ...Roland McGrath1-0/+4
* locale/localename.c (_nl_current_names): ... here, new file. Make it global, with attribute_hidden. * locale/localeinfo.h: Declare it. * locale/Makefile (aux): Add localename. * locale/localename.c (__current_locale_name): New function. * include/locale.h (__current_locale_name): Declare it. * intl/dcigettext.c (guess_category_value): Use that instead of calling setlocale. * locale/locale.h [__USE_GNU] (locale_t): New type alias of __locale_t. [__USE_GNU] (newlocale, duplocale, freelocale, uselocale): New decls. [__USE_GNU] (LC_GLOBAL_LOCALE): New macro. * locale/newlocale.c: Add alias to __ name. * locale/duplocale.c: Likewise. * locale/freelocale.c: Likewise. * locale/uselocale.c: New file. * locale/Makefile (routines): Add it. * locale/Versions (libc: GLIBC_2.3): New set. Add newlocale, duplocale, freelocale, uselocale. (libc: GLIBC_PRIVATE): Add __uselocale. * locale/localeinfo.h [SHARED] (_NL_CURRENT_LOCALE): New macro, defined to fetch a tsd value. (_NL_CURRENT_DATA): Define using that. (_NL_CURRENT, _NL_CURRENT_WSTR, _NL_CURRENT_WORD): Define using that. (_NL_CURRENT_DEFINE): Define to empty. [! SHARED]: Decls of _nl_current_CATEGORY and _nl_current conditionalized on this. * locale/xlocale.c (NL_C_INTIIALIZER): New macro, taking initializer of _nl_C_locobj. [SHARED] (_nl_global_locale): New variable, using that initializer. (_nl_C_locobj): Use new macro for initialzier. * locale/setlocale.c [! SHARED] (_nl_current): Conditionalize on this. [! SHARED] (CATEGORY_USED): New macro. [SHARED] (CATEGORY_USED, _nl_C): New macros. (setdata, setlocale): Use that macro instead of examining _nl_current. (setdata): Set the slot in _nl_global_locale. Conditionalize setting of _nl_current on [! SHARED]. * locale/findlocale.c [SHARED] (_nl_C): Define as a macro instead of declaration as an extern. * locale/newlocale.c (__newlocale): Use _nl_C_locobj instead of _nl_C. * include/locale.h: Use libc_hidden_proto for setlocale. * locale/setlocale.c: Add libc_hidden_def. * locale/setlocale.c (free_mem): Use _NL_CURRENT_DATA.
2002-07-24Remove support for CEN-style locale variables. It was never used and ↵Ulrich Drepper1-22/+8
shouldn't be since it's not portable.
2002-03-13Update.Ulrich Drepper1-2/+2
* ctype/ctype-info.c: Declare _nl_C_LC_CTYPE_class, _nl_C_LC_CTYPE_class32, _nl_C_LC_CTYPE_toupper, _nl_C_LC_CTYPE_tolower, _nl_C_LC_CTYPE_class_upper, _nl_C_LC_CTYPE_class_lower, _nl_C_LC_CTYPE_class_alpha, _nl_C_LC_CTYPE_class_digit, _nl_C_LC_CTYPE_class_xdigit, _nl_C_LC_CTYPE_class_space, _nl_C_LC_CTYPE_class_print, _nl_C_LC_CTYPE_class_graph, _nl_C_LC_CTYPE_class_blank, _nl_C_LC_CTYPE_class_cntrl, _nl_C_LC_CTYPE_class_punct, _nl_C_LC_CTYPE_class_alnum, _nl_C_LC_CTYPE_map_toupper, _nl_C_LC_CTYPE_map_tolower, and _nl_C_LC_CTYPE_width: Declare as hidden. * include/locale.h: Declare _nl_locale_file_list. * locale/C-address.c: Define _nl_C_LC_ADDRESS as hidden. * locale/C-collate.c: Define _nl_C_LC_COLLATE as hidden. * locale/C-identification.c: Define _nl_C_LC_IDENTIFICATION as hidden. * locale/C-measurement.c: Define _nl_C_LC_MEASUREMENT as hidden. * locale/C-messages.c: Define _nl_C_LC_MESSAGES as hidden. * locale/C-monetary.c: Define _nl_C_LC_MONETARY as hidden. * locale/C-name.c: Define _nl_C_LC_NAME as hidden. * locale/C-numeric.c: Define _nl_C_LC_NUMERIC as hidden. * locale/C-paper.c: Define _nl_C_LC_PAPER as hidden. * locale/C-telephone.c: Define _nl_C_LC_TELEPHONE as hidden. * locale/C-time.c: Define _nl_C_LC_TIME as hidden. * locale/C-ctype.c: Define _nl_C_LC_CTYPE_class, _nl_C_LC_CTYPE_class32, _nl_C_LC_CTYPE_toupper, _nl_C_LC_CTYPE_tolower, _nl_C_LC_CTYPE_class_upper, _nl_C_LC_CTYPE_class_lower, _nl_C_LC_CTYPE_class_alpha, _nl_C_LC_CTYPE_class_digit, _nl_C_LC_CTYPE_class_xdigit, _nl_C_LC_CTYPE_class_space, _nl_C_LC_CTYPE_class_print, _nl_C_LC_CTYPE_class_graph, _nl_C_LC_CTYPE_class_blank, _nl_C_LC_CTYPE_class_cntrl, _nl_C_LC_CTYPE_class_punct, _nl_C_LC_CTYPE_class_alnum, _nl_C_LC_CTYPE_map_toupper, _nl_C_LC_CTYPE_map_tolower, _nl_C_LC_CTYPE_width, and as hidden. * locale/findlocale.c: Declare _nl_C as hidden. * locale/newlocale.c: Likewise. * locale/setlocale.c: Define _nl_C as hidden. Remove declaration of _nl_locale_file_list. * locale/xlocale.c: Declare _nl_C_LC_CTYPE_class, _nl_C_LC_CTYPE_toupper, and _nl_C_LC_CTYPE_tolower as hidden. Define _nl_C_locobj as hidden. * malloc/mtrace.c (_mtrace_file): Define as hidden. (_mtrace_line): Likewise. * include/time.h: Declare __mon_yday as hidden. * time/strptime.c [_LIBC] (__mon_yday): Remove declaration. * libio/libioP.h: Declare __libio_codecvt as hidden. * libio/fileops.c: Declare __libio_translit as hidden. * libio/iofwide.c: Define __libio_translit as hidden. * login/getutent_r.c: Define __libc_utmp_lock as hidden. * login/getutid_r.c: Declare __libc_utmp_lock as hidden. * login/getutline_r.c: Likewise. * login/utmpname.c: Likewise. * login/utmp-private.h: Declare __libc_utmp_file_functions, __libc_utmp_unknown_functions, __libc_utmp_jump_table, and __libc_utmp_file_name as hidden. * locale/setlocale.c (__libc_setlocale_lock): Define as hidden. * locale/duplocale.c (__libc_setlocale_lock): Declare as hidden. * locale/freelocale.c: Likewise. * locale/lc-time.c: Likewise. * sysdeps/unix/bsd/getpt.c (__libc_ptyname1): Define as hidden. (__libc_ptyname2): Likewise. * sysdeps/unix/sysv/linux/ptsname.c (__libc_ptyname1): Declare as hidden. (__libc_ptyname2): Likewise. * sysdeps/generic/sbrk.c: Declare __libc_multiple_libcs as hidden. * sysdeps/arm/init-first.c (__libc_multiple_libcs): Define as hidden. * sysdeps/generic/init-first.c: Likewise. * sysdeps/i386/init-first.c: Likewise. * sysdeps/mach/hurd/i386/init-first.c: Likewise. * sysdeps/mach/hurd/mips/init-first.c: Likewise. * sysdeps/mach/hurd/powerpc/init-first.c: Likewise. * sysdeps/sh/init-first.c: Likewise. * sysdeps/unix/sysv/aix/init-first.c: Likewise. * sysdeps/unix/sysv/linux/init-first.c: Likewise.
2001-07-27Update.Ulrich Drepper1-3/+3
2001-07-27 Ulrich Drepper <drepper@redhat.com> * iconv/gconv_cache.c (__gconv_compare_alias_cache): New function. * iconv/gconv_int.h: Add prototype for __gconv_compare_alias_cache. * iconv/gconv_charset.h: Replace __gconv_lookup_alias prototype with __gconv_compare_alias prototype. * iconv/gconv_db.c (__gconv_lookup_alias): Removed. (__gconv_compare_alias): New function. * locale/findlocale.c (_nl_find_locale): Ise __gconv_compare_alias instead of calling __gconv_lookup_alias twice and compare here.
2001-07-06Update to LGPL v2.1.Andreas Jaeger1-8/+8
2001-07-06 Paul Eggert <eggert@twinsun.com> * manual/argp.texi: Remove ignored LGPL copyright notice; it's not appropriate for documentation anyway. * manual/libc-texinfo.sh: "Library General Public License" -> "Lesser General Public License". 2001-07-06 Andreas Jaeger <aj@suse.de> * All files under GPL/LGPL version 2: Place under LGPL version 2.1.
2001-06-29(locale_file_list): Renamed to ... (_nl_locale_file_list): This. Make it ↵Ulrich Drepper1-29/+4
extern. (free_mem): Move to setlocale.c.
2001-04-10Update.Ulrich Drepper1-2/+2
2001-04-05 David S. Miller <davem@redhat.com> Add hp-timing support for sparcv9/sparc64 targets. * sysdeps/sparc/sparc32/sparcv9/hp-timing.c: New file * sysdeps/sparc/sparc32/sparcv9/hp-timing.h: New file * sysdeps/sparc/sparc64/hp-timing.c: New file * sysdeps/sparc/sparc64/hp-timing.h: New file * sysdeps/sparc/sparc32/sparcv9/Makefile: Build hp-timing. * sysdeps/sparc/sparc64/Makefile: Likewise. 2001-04-09 Jakub Jelinek <jakub@redhat.com> * sysdeps/generic/fd_to_filename.h: New file. * sysdeps/unix/sysv/linux/fd_to_filename.h: New file. * libio/freopen.c (freopen): If FILENAME is NULL, try to get filename from the open file descriptor. * libio/freopen64.c (freopen64): Likewise. 2001-04-09 Bruno Haible <haible@clisp.cons.org> * misc/error.c (error): fflush stdout also if error_print_progname != NULL. (error_at_line): Likewise. 2001-04-07 Bruno Haible <haible@clisp.cons.org> * intl/gettextP.h (struct loaded_domain): Add codeset_cntr field. (struct binding): Add codeset_cntr field. (_nl_load_domain): Add domainbinding argument. (_nl_init_domain_conv, _nl_free_domain_conv): New declarations. (_nl_find_msg): New declaration, moved here from loadinfo.h. * intl/loadinfo.h (struct loaded_l10nfile): Remove domainbinding field. (_nl_make_l10nflist): Remove domainbinding argument. (_nl_find_msg): Move declaration to gettextP.h. * intl/bindtextdom.c (set_binding_values): Initialize ->codeset_cntr to 0. Increment it when ->codeset is changed. * intl/dcigettext.c (DCIGETTEXT): Pass binding to _nl_find_msg. (_nl_find_msg): Add domainbinding argument. Reinitialize the converter if domainbinding->codeset_cntr has been incremented. * intl/finddomain.c (_nl_find_domain): Don't pass domainbinding to _nl_make_l10nflist(). Pass it to _nl_load_domain() instead. * intl/l10nflist.c (_nl_make_l10nflist): Remove domainbinding argument. * intl/loadmsgcat.c (_nl_init_domain_conv): New function, extracted from _nl_load_domain. Append //TRANSLIT also when using libiconv. (_nl_free_domain_conv): New function, extracted from _nl_unload_domain. (_nl_load_domain): Add domainbinding argument. Call _nl_init_domain_conv. (_nl_unload_domain): Call _nl_free_domain_conv. * intl/Makefile (distribute): Add tst-codeset.sh, tstcodeset.po. (test-srcs): Add tst-codeset. (tests): Depend on tst-codeset.out. (tst-codeset.out): New rule. (CFLAGS-tst-codeset.c): New variable. * intl/tst-codeset.sh: New file. * intl/tstcodeset.po: New file. * intl/tst-codeset.c: New file. * locale/findlocale.c (_nl_find_locale): Update _nl_make_l10nflist calls.
2001-04-06Update.Ulrich Drepper1-1/+51
2001-04-06 Ulrich Drepper <drepper@redhat.com> * iconv/iconv_open.c: Move strip and upstr definitions... * iconv/gconv_charset.h: ...here. New file. * iconv/gconv_db.c (once): Move to file level. (do_lookup_alias): Split out from __gconv_find_transform. (__gconv_find_transform): Call do_lookup_alias. (__gconv_loopup_alias): New function. * locale/langinfo.h: Define _NL_*_CODESET values for all categories but LC_CTYPE. * locale/categories.def: Add entries for new _NL_*_CODESET values. * locale/C-ctype.c: Use _nl_C_codeset to initialize CODESET entry. * locale/C-address.c: Initialize _NL_*_CODESET element. * locale/C-collate.c: Likewise. * locale/C-identification.c: Likewise. * locale/C-measurement.c: Likewise. * locale/C-messages.c: Likewise. * locale/C-monetary.c: Likewise. * locale/C-name.c: Likewise. * locale/C-numeric.c: Likewise. * locale/C-paper.c: Likewise. * locale/C-telephone.c: Likewise. * locale/C-time.c: Likewise. * locale/localeinfo.h: Declare _nl_C_codeset. * locale/C_name.c: Define _nl_C_codeset. * locale/findlocale.c: Before accepting locale check that the used charset does not conflict with what the locale name said. * locale/programs/ld-address.c: Emit codeset information. * locale/programs/ld-collate.c: Likewise. * locale/programs/ld-identification.c: Likewise. * locale/programs/ld-measurement.c: Likewise. * locale/programs/ld-messages.c: Likewise. * locale/programs/ld-monetary.c: Likewise. * locale/programs/ld-name.c: Likewise. * locale/programs/ld-numeric.c: Likewise. * locale/programs/ld-paper.c: Likewise. * locale/programs/ld-telephone.c: Likewise. * locale/programs/ld-time.c: Likewise. * localedata/tests-mbwc/tst_funcs.h (TST_HEAD_LOCALE): It is an error if the locale data couldn't be found. * string/Makefile: Define tst-strxfrm-ENV. * ysdeps/unix/sysv/linux/ia64/getcontext.S: Fix comment.
2000-11-25Update.Ulrich Drepper1-2/+2
* locale/findlocale.c: Add casts to avoid warnings. * locale/localeinfo.h (LIMAGIC): Add cast to avoid warnings. * misc/efgcvt_r.c (fcvt_r): Use ssize_t instead of int and add cast to avoid warnings. * misc/tsearch.c (const_node): New type. (trecurse): Correct casts to avoid warnings. (__twalk): Likewise. * stdlib/tst-limits.c: Add z modifier to formats for WORD_BIT and LONG_BIT. * debug/backtrace-tst.c (compare): Add casts to avoid warnings.
2000-10-31Update.Ulrich Drepper1-1/+1
* locale/findlocale.c (free_mem): We can remove NODELETE marked data, just not the C locale data. * intl/tst-gettext.c: Use setlocale() in addition to setting envvar. * intl/tst-gettext.sh: Copy locale data if necessary. * intl/Makefile (generated-dirs): Add localedir. * intl/dcigettext.c (guess_category_value): For libc always use the setlocale() method. * intl/Makefile: Add rules to build, run and, distribute tst-gettext2. * intl/tst-gettext2.c: New file. * intl/tst-gettext2.sh: New file. * intl/tstlang1.po: New file. * intl/tstlang2.po: New file. Patch by Andreas Jaeger <aj@suse.de>. 2000-10-26 GOTO Masanori <gotom@debian.or.jp> * intl/locale.alias: Add ja_JP.ujis alias. 2000-10-30 Ulrich Drepper <drepper@redhat.com>
2000-10-30Update.Ulrich Drepper1-1/+0
2000-10-30 Ulrich Drepper <drepper@redhat.com> * locale/findlocale.c (_nl_find_locale): Don't store normalized name in *NAME.
2000-08-27Update.Ulrich Drepper1-2/+2
* locale/findlocale.c (free_mem): Add cast to avoid warning.
2000-08-27Update.Ulrich Drepper1-1/+1
* intl/dcigettext.c (DCIGETTEXT): Remove _nl_find_language in code to determine invalid locale name. * locale/findlocale.c (_nl_find_locale): Likewise.
2000-08-21Update.Ulrich Drepper1-7/+6
* sysdeps/i370/Implies: Removed. * sysdeps/mvs/Implies: Removed. * catgets/catgets.c (catopen): Filter out env_var values with / if necessary. * locale/findlocale.c (_nl_find_locale): Move test for unusable locale name after all getenvs.