2000-07-28 Ulrich Drepper <drepper@redhat.com>
* stdio-common/_i18n_itoa.c: Removed.
* stdio-common/_i18n_itoa.h: Removed.
* stdio-common/_i18n_itowa.c: Removed.
* stdio-common/_i18n_itowa.h: Removed.
* stdio-common/_i18n_number.h: New file.
* stdio-common/Depend: New file.
* stdio-common/printf-parse.h: Handle I modifier correctly. Optimize.
* stdio-common/vfprintf.c: Rewrite buffer handling for integer
printing. Change printing of numbers with locale specific digits to
use new code in _i18n_number.h.
* stdio-common/bug13.c: Improve messages.
* locale/programs/ld-ctype.c (ctype_read): Improve error message.
(set_class_defaults): Always search also for Uxxxx names.
Detect insufficient number of outdigits.
* locale/Makefile (C-translit.h): Use mv not $(move-if-changed).
2000-07-27 Bruno Haible <haible@clisp.cons.org>
* locale/C-ctype.c (_nl_C_LC_CTYPE): Swap the two names in
_NL_CTYPE_MAP_NAMES.
* locale/localeinfo.h (__TOW_toupper, __TOW_tolower): New enum values.
* wctype/wcfuncs.c (towlower, towupper): Use them.
* wctype/wcfuncs_l.c (__towlower_l, __towupper_l): Likewise.
* wctype/wctrans.c (wctrans): Likewise.
* wctype/wctrans_l.c (__wctrans_l): Likewise.
2000-07-27 Bruno Haible <haible@clisp.cons.org>
* posix/fnmatch.c (is_char_class): Fix logic. Avoid buffer overrun.
Use the optimized version of this function outside glibc as well.
2000-07-27 Jakub Jelinek <jakub@redhat.com>
* locale/indigits.h (indigit_value): Correct.
* locale/indigitswc.h (indigitwc_value): Correct.
* stdio-common/vfscanf.c (__vfscanf): Fix I18N number
conversion, add GROUP checking for it, fix GROUP number
conversion with strlen(thousands) > 1.
Honour width correctly in the presence of floating
decimal points and thousands separators.
* stdio-common/tst-sscanf.c: New test.
* stdio-common/Makefile: Add it to tests.
* sysdeps/generic/strtol.c (strtol): Fix conversion if there are
thousands separators and group argument is non-zero.
Reported by Andi Kleen <ak@suse.de>.
2000-07-25 Bruno Haible <haible@clisp.cons.org>
* locale/programs/ld-ctype.c (wctype_table_get): New function.
(wcwidth_table_get): New function.
(wcwidth_table_add): Call it.
(wctrans_table_get): New function.
(wctrans_table_add): Call it.
2000-07-23 Bruno Haible <haible@clisp.cons.org>
* wctype/wchar-lookup.h: New file.
* wctype/iswctype.c: Include "wchar-lookup.h".
(__iswctype): Support alternate locale format with 3-level tables.
* wctype/iswctype_l.c (__iswctype_l): Likewise.
* wctype/towctrans.c (__towctrans): Likewise.
* wctype/towctrans_l.c (__towctrans_l): Likewise.
* wctype/wcfuncs.c: Include "wchar-lookup.h".
(__ctype32_wctype, __ctype32_wctrans): Declare external.
(__iswalnum, __iswalpha, __iswcntrl, __iswdigit, __iswlower,
__iswgraph, __iswprint, __iswpunct, __iswspace, __iswupper,
__iswxdigit, towlower, towupper): Support alternate locale format
with 3-level tables.
* wctype/wcextra.c (iswblank): Likewise.
* wctype/wcfuncs_l.c: Include "wchar-lookup.h".
(__iswalnum_l, __iswalpha_l, __iswcntrl_l, __iswdigit_l, __iswlower_l,
__iswgraph_l, __iswprint_l, __iswpunct_l, __iswspace_l, __iswupper_l,
__iswxdigit_l, __towlower_l, __towupper_l): Support alternate locale
format with 3-level tables.
* wctype/wcextra_l.c (__iswblank_l): Likewise.
* wctype/wctype.c (__wctype): Likewise. In the alternate locale
format, return a 3-level table pointer.
* wctype/wctype_l.c (__wctype_l): Likewise.
* wctype/wctrans.c (wctrans): Likewise.
* wctype/wctype.h (__ISwupper, __ISwlower, __ISwalpha, __ISwdigit,
__ISwxdigit, __ISwspace, __ISwprint, __ISwgraph, __ISwblank,
__ISwcntrl, __ISwpunct, __ISwalnum): New enum values.
(iswctype): Remove macro definition.
* wcsmbs/wcwidth.h: Include "wchar-lookup.h".
(internal_wcwidth): Support alternate locale format with 3-level
tables.
* locale/langinfo.h (_NL_CTYPE_CLASS_OFFSET, _NL_CTYPE_MAP_OFFSET):
New nl_items.
* locale/categories.def (_NL_CTYPE_CLASS_OFFSET, _NL_CTYPE_MAP_OFFSET):
Define them as being type "word".
* locale/C-ctype.c (_nl_C_LC_CTYPE): Add initializers for them.
* ctype/ctype-info.c (__ctype32_wctype, __ctype32_wctrans,
__ctype32_width): New exported variables.
* locale/lc-ctype.c (_nl_postload_ctype): Initialize them in the
alternate locale format. Don't initialize __ctype_names and
__ctype_width in the alternate locale format.
* locale/programs/localedef.h (oldstyle_tables): New declaration.
* locale/programs/localedef.c (oldstyle_tables): New variable.
(OPT_OLDSTYLE): New macro.
(options): Add --old-style option.
(parse_opt): Handle --old-style option.
* locale/programs/ld-ctype.c (locale_ctype_t): Add class_offset,
map_offset, class_3level, map_3level, width_3level members.
(ctype_output): Support for alternate locale format: Computation of
nelems changes. _NL_CTYPE_TOUPPER32, _NL_CTYPE_TOLOWER32 and
_NL_CTYPE_CLASS32 only 256 characters. _NL_CTYPE_NAMES empty.
New fields _NL_CTYPE_CLASS_OFFSET, _NL_CTYPE_MAP_OFFSET. Field
_NL_CTYPE_WIDTH now contains the three-level table. Extra elems
now contain both class and map tables.
(struct wctype_table): New type.
(wctype_table_init, wctype_table_add, wctype_table_finalize): New
functions.
(struct wcwidth_table): New type.
(wcwidth_table_init, wcwidth_table_add, wcwidth_table_finalize): New
functions.
(struct wctrans_table): New type.
(wctrans_table_init, wctrans_table_add, wctrans_table_finalize): New
functions.
(allocate_arrays): Support for alternate locale format: Set
plane_size and plane_cnt to 0. Restrict ctype->ctype32_b to the first
256 characters. Compute ctype->class_3level. Restrict ctype->map32[idx]
to the first 256 characters. Compute ctype->map_3level. Set
ctype->class_offset and ctype->map_offset. Compute ctype->width_3level
instead of ctype->width.
2000-07-24 Jakub Jelinek <jakub@redhat.com>
* libio/wfiledoalloc.c (_IO_wfile_doallocate): Measure size
in wide characters, not bytes.
* libio/tst_putwc.c (do_test): Add test for writing lots of data
into file.
2000-07-22 Bruno Haible <haible@clisp.cons.org>
* locale/nl_langinfo.c (nl_langinfo): Accept items belonging to the
new categories LC_PAPER, LC_NAME, LC_ADDRESS, LC_TELEPHONE,
LC_MEASUREMENT, LC_IDENTIFICATION.
* locale/xlocale.h (struct __locale_struct): Increase size of
__locales array.
* locale/duplocale.c (__duplocale): Copy newly added categories as
well.
* locale/freelocale.c (__freelocale): Free newly added categories.
* locale/newlocale.c (__newlocale): Fix typo in sanity check.
If a base is given, use it, don't simply return it.
2000-07-22 Bruno Haible <haible@clisp.cons.org>
* crypt/md5-crypt.c (__md5_crypt_r): Avoid gcc warnings: Use pointer
variables, copied_key and copied_salt, instead of boolean variables.
2000-07-23 Ulrich Drepper <drepper@redhat.com>
* locale/iso-639.def: Some errors corrected.
Patch by Keld Simonsen.
* include/limits.h: Update non-gcc portion.
Patch by Joseph S. Myers <jsm28@cam.ac.uk>.
2000-07-22 Mark Kettenis <kettenis@gnu.org>
* locale/findlocale.c (locale_file_list): Use __LC_LAST as array
size instead of LC_ALL to take into account the new locale
categories.
* iconv/gconv_trans.c: Correct a few bugs in the search loop. Remove
remainders of hash table.
* locale/categories.def: Remove remainders of transliteration
hash table.
* locale/langinfo.h: Likewise.
* locale/programs/ld-ctype.c: Likewise. Fix code to write out
transliteration tables.
* locale/gen-translit.pl: New file.
* locale/C-translit.h.in: New file.
* locale/C-ctype.c: Include C-translit.h. Initialize transliteration
data pointers with data from this file.
* locale/Makefile (distribute): Add C-translit.h.in, C-translit.h,
and gen-translit.pl.
Add rule to generate C-translit.h.
* locale/programs/ld-collate.c (collate_read): Allow collating
symbols be named in reorder-after instructions.
Reported by Yoshito Kawada <KAWADA@jp.ibm.com>.
* locale/programs/ld-collate.c (handle_ellipsis): Test for
duplication with generated name, not the name of the first
character.
Patch by Yong Li <yong.li@asu.edu>.
2000-07-18 Ulrich Drepper <drepper@redhat.com>
* intl/Makefile: Make sure tst-translit is run after tst-gettext.
* locale/C-ctype.c: Add initializers for gap elements.
* locale/programs/ld-ctype.c (ctype_output): Write out index entries
for gap elements.
2000-07-17 Bruno Haible <haible@clisp.cons.org>
* iconv/gconv_open.c (__gconv_open): Initialize the __data
field of struct __gconv_trans_data differently. Don't pass NULL to
trans_init_fct. Simplify list append operation.
2000-07-14 Bruno Haible <haible@clisp.cons.org>
* intl/dcigettext.c (dcigettext): Call plural_eval on all platforms,
not only those having tsearch.
2000-07-17 Ulrich Drepper <drepper@redhat.com>
* locale/langinfo.h: Add placeholder values in enum for removed
LC_CTYPE entries.
2000-07-17 Jakub Jelinek <jakub@redhat.com>
* elf/dl-addr.c (_dl_addr): Keep searching in the _dl_loaded
chain if the PHDR check fails.
2000-07-17 Mark Kettenis <kettenis@gnu.org>
* nss/getent.c (print_hosts): Make sure we always print a space
between numeric addresses and hostnames.
2000-07-17 Wolfram Gloger <wg@malloc.de>
* malloc/malloc.c (chunk_alloc): Use mmap_chunk() only if allowed,
i.e. if n_mmaps_max>0.
2000-07-16 Mark Kettenis <kettenis@gnu.org>
* resolv/netdb.h (AI_V4MAPPED, AI_ALL, AI_ADDRCONFIG): Adjust
values to remove possible clash with other AI_* constants.
(AI_PASSIVE, AI_CANONNAME, AI_NUMERICHOST): Define as
hexadecimal constants to stress the fact they're in fact
bit flags.
2000-07-15 Mark Kettenis <kettenis@gnu.org>
* nss/getXXent_r.c [NEED__RES]: Include <resolv.h>.
(SETFUNC_NAME, ENDFUNC_NAME, REENTRANT_GETNAME): Use res_ninit
instead of res_init.
2000-07-12 Bruno Haible <haible@clisp.cons.org>
* iconv/gconv_open.c (__gconv_open): Merge duplicated code.
2000-07-12 Bruno Haible <haible@clisp.cons.org>
* iconv/gconv_builtin.c (__gconv_get_builtin_trans): Initialize
__modname.
2000-07-12 Bruno Haible <haible@clisp.cons.org>
* iconv/gconv_open.c (__gconv_open): Initialize
result->__steps[cnt].__data.
2000-07-12 Mark Kettenis <kettenis@gnu.org>
* nss/getent.c (services_keys): Pass port number in network byte
order in call to getservbyport.
2000-07-11 Andreas Jaeger <aj@suse.de>
* stdlib/Makefile (test-canon-ARGS): Fix for building in the
source dir.
* intl/Makefile (do-gettext-test): Likewise.
* dirent/Makefile (opendir-tst1-ARGS): Likewise.
2000-07-11 Andreas Schwab <schwab@suse.de>
* Makeconfig (run-program-prefix): New rule.
(built-program-cmd): Use run-program-prefix.
2000-07-07 Ulrich Drepper <drepper@redhat.com>
* locale/programs/locale.c (write_locales): Don't simply add all
directories found in the subdir, test whether at least the
LC_CTYPE file is in there.
2000-07-05 Ulrich Drepper <drepper@redhat.com>
* locale/loadlocale.c (_nl_unload_locale): Add cast to avoid warning.
* locale/programs/ld-collate.c (collate_output): Also write out the
collation sequence values and the wide character string for the
collation symbol table.
* posix/fnmatch.c: Include "../locale/elem-hash.h".
* posix/fnmatch_loop.c: Implement collating symbol handling.
* posix/tst-fnmatch.input: Add more tests, especially for collating
symbol handling.
* posix/regex.c: Fix comment.
* iconv/gconv_trans.c: Test with _NL_CTYPE_TRANSLIT_DEFAULT_MISSING_LEN
whether this information is available.
* intl/dcigettext.c (_nl_find_msg): Correct reallocation of
buffers in case the translation is too large. Remember allocated
memory blocks in a list.
(free_mem): Free memory for translations.
* intl/tst-gettext.c: Use correct locale. Improve error messages.
* locale/programs/ld-ctype.c (ctype_output): If no default_missing
information is available set the string length to zero.
* locale/programs/ld-ctype.c (ctype_finish): Take all characters from
the input charset into account when generating the hash table.
(allocate_arrays): Correct setting default width. Not all empty slots
in the table are filled, only those not covert explicitly by the
locale description and in the charset.
* stdio-common/vfscanf.c: Make sure to always return WEOF and EOF for
wide character version.
For %C handling, test correct pointer variable for NULL.
* wcsmbs/wctob.c: Handle WEOF special.
* wcsmbs/wcwidth.h: 0xff in width array means invalid character.
* wctype/wctype.h: Protect gcc-isms with __extension__. Avoid
always-true test to avoid warning.
2000-06-20 Ulrich Drepper <drepper@redhat.com>
* locale/programs/ld-collate.c (insert_value): Now take string and
length instead of struct token* parameter. Adjust use of token.
(handle_ellipsis): Likewise.
(collate_read): Allow <Uxxxx> names and transform them into names
to be passed to insert_value and handle_ellipsis.
* locale/programs/ld-ctype.c (uninames): New array with names of
digits in <Uxxxxxxxx> format.
(ctype_finish): Correct search for space character value. Likewise
for default outdigits values.
2000-06-19 Ulrich Drepper <drepper@redhat.com>
* iconv/gconv.h (__gconv_trans_fct): Add new parameter.
General namespace cleanup.
(struct __gconv_trans_data): Add next field.
(struct __gconv_step_data): Make __trans a pointer.
* iconv/gconv_conf.c: Split out code to find gconv directories from
__gconv_read_conf in new functions.
* iconv/gconv_int.h: Define new data structure and declare new
functions for handling of gconv directory list.
* iconv/gconv_open.c: Allow more than one error handling step being
used. Call function to load error handling module if it is none
of the builtin transformations.
* iconv/gconv_close.c: Add code to free transliteration data.
* iconv/gconv_trans.c: Add functions to load and unload modules
implementing transliteration etc.
* iconv/skeleton.c: Call all context functions now that more than
one module is allowed.
* iconv/loop.c (STANDARD_ERR_HANDLING): New macro.
* iconv/gconv_simple.c: Use STANDARD_ERR_HANDLING macro for places
where the full error handling using transliteration is needed.
* iconvdata/8bit-gap.c: Likewise.
* iconvdata/8bit-generic.c: Likewise.
* iconvdata/ansi_x3.110.c: Likewise.
* iconvdata/big5.c: Likewise.
* iconvdata/big5hkscs.c: Likewise.
* iconvdata/euc-cn.c: Likewise.
* iconvdata/euc-jp.c: Likewise.
* iconvdata/euc-kr.c: Likewise.
* iconvdata/euc-tw.c: Likewise.
* iconvdata/gbgbk.c: Likewise.
* iconvdata/gbk.c: Likewise.
* iconvdata/iso-2022-cn.c: Likewise.
* iconvdata/iso-2022-jp.c: Likewise.
* iconvdata/iso-2022-kr.c: Likewise.
* iconvdata/iso646.c: Likewise.
* iconvdata/iso8859-1.c: Likewise.
* iconvdata/iso_6937-2.c: Likewise.
* iconvdata/iso_6937.c: Likewise.
* iconvdata/johab.c: Likewise.
* iconvdata/sjis.c: Likewise.
* iconvdata/t.61.c: Likewise.
* iconvdata/uhc.c: Likewise.
* iconvdata/unicode.c: Likewise.
* iconvdata/utf-16.c: Likewise.
* libio/iofwide.c: Reset __trans member of __gconv_trans_data
structure correctly after last change.
* wcsmbs/btowc.c: Likewise.
* wcsmbs/mbrtowc.c: Likewise.
* wcsmbs/mbsnrtowcs.c: Likewise.
* wcsmbs/mbsrtowcs.c: Likewise.
* wcsmbs/wcrtomb.c: Likewise.
* wcsmbs/wcsnrtombs.c: Likewise.
* wcsmbs/wcsrtombs.c: Likewise.
* wcsmbs/wctob.c: Likewise.
* localedata/Makefile: Set -Wno-format for some files since gcc does
not know all the format specifiers.
2000-06-18 Ulrich Drepper <drepper@redhat.com>
* locale/loadlocale.c (_nl_unload_locale): Remove a bit of
unneeded code.
* locale/lc-time.c (_nl_init_era_entries): Likewise.
* locale/programs/ld-ctype.c (ctype_output): Really write out
mboutdigits information.
* localedata/tst-trans.c: Add code to test printf's I flag with locale.
* localedata/tst-trans.sh: Set GCONV_PATH for compilation environment.
* localedata/tests/trans.def: Add outdigit information.
* localedata/tst-mbswcs3.c: Remove comment.
2000-06-17 Ulrich Drepper <drepper@redhat.com>
* iconv/gconv_trans.c: Implement handling if translit_ignore.
* locale/langinfo.h: Add entries for translit_ignore information.
* locale/categories.def: Add entries for new LC_CTYPE elements.
* locale/C-ctype.c: Add initializers for new fields. Use NULL
pointer instead of "" where possible.
* locale/programs/ld-ctype.c: Write out translit_ignore information.
* intl/Depend: Add localedata.
* intl/tst-gettext.c: Call setlocale for LC_CTYPE.
* intl/tst-gettext.sh: Set LOCPATH to localedata build dir.
* locale/langinfo.h: Add entries for default_missing information.
* locale/C-ctype.c: Add initializers for new fields.
* iconv/gconv_trans.c: If nothing matched, try to use default_missing
information.
* locale/categories.h: Add entries for all LC_CTYPE values.
* locale/programs/ld-ctype.c (ctype_output): Write out default_missing
information.
* localedata/tst-trans.c: Write out an error message if class is
not found.
2000-06-16 Ulrich Drepper <drepper@redhat.com>
* iconv/gconv_int.h (norm_add_slashes): Optionally add given suffix.
* iconv/gconv_open.c: Remove error handling specification from `from'
character set name.
* intl/loadmsgcat.c (_nl_load_domain): Call norm_add_slashes with
new parameter to always enable transliteration.
* locale/localeinfo.h (LIMAGIC): Bump number because of incompatible
change.
(struct locale_data): Add new members use_translit and options.
* locale/findlocale.c (_nl_find_locale): Set use_translit flag is
character set name contained modifier TRANSLIT.
* locale/loadlocale.c (_nl_load_locale): Initialize new use_translit
and options fields.
(_nl_unload_locale): Free options string if necessary.
* wcsmbs/wcsmbsload.c (__wcsmbs_load_conv): Enable translation if
the locale names suggested this.
* locale/C-address.c: Add two new initialilzers to adjust data
structure for new format.
* locale/C-collate.c: Likewise.
* locale/C-ctype.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/setlocale.c: Add some more __builtin_expect.