mirror of
https://git.savannah.gnu.org/git/gnulib.git
synced 2025-08-16 01:22:18 +03:00
Fix mbrtowc so that it never returns -1 in the C locale, as this conflicts with a future version of POSIX http://austingroupbugs.net/view.php?id=663#c2738 and causes problems with GNU grep: http://bugs.gnu.org/23234 See glibc bug 19932: https://sourceware.org/bugzilla/show_bug.cgi?id=19932 * doc/posix-functions/mbrlen.texi (mbrlen): * doc/posix-functions/mbrtowc.texi (mbrtowc): Document the glibc bug. * lib/mbrtowc.c [C_LOCALE_MAYBE_EILSEQ]: Include hard-locale.h, locale.h. (rpl_mbrtowc): Work around the C_LOCALE_MAYBE_EILSEQ bug, if the bug is possible. * m4/mbrtowc.m4 (gl_MBRTOWC_C_LOCALE): New macro. (gl_FUNC_MBRTOWC): Use it, and define C_LOCALE_MAYBE_EILSEQ as needed. * modules/hard-locale (License): Now LGPLv2+, for mbrtowc. * modules/mbrtowc (Depends-on): Add hard-locale. * modules/mbrtowc-tests (Files, TESTS): Add tests/test-mbrtowc5.sh. * tests/test-mbrtowc.c (main): Test for bug fix if arg is '5'. * tests/test-mbrtowc5.sh: New file.
44 lines
946 B
Plaintext
44 lines
946 B
Plaintext
Files:
|
|
tests/test-mbrtowc1.sh
|
|
tests/test-mbrtowc2.sh
|
|
tests/test-mbrtowc3.sh
|
|
tests/test-mbrtowc4.sh
|
|
tests/test-mbrtowc5.sh
|
|
tests/test-mbrtowc.c
|
|
tests/test-mbrtowc-w32-1.sh
|
|
tests/test-mbrtowc-w32-2.sh
|
|
tests/test-mbrtowc-w32-3.sh
|
|
tests/test-mbrtowc-w32-4.sh
|
|
tests/test-mbrtowc-w32-5.sh
|
|
tests/test-mbrtowc-w32.c
|
|
tests/signature.h
|
|
tests/macros.h
|
|
m4/locale-fr.m4
|
|
m4/locale-ja.m4
|
|
m4/locale-zh.m4
|
|
m4/codeset.m4
|
|
|
|
Depends-on:
|
|
mbsinit
|
|
wctob
|
|
setlocale
|
|
|
|
configure.ac:
|
|
gt_LOCALE_FR
|
|
gt_LOCALE_FR_UTF8
|
|
gt_LOCALE_JA
|
|
gt_LOCALE_ZH_CN
|
|
|
|
Makefile.am:
|
|
TESTS += \
|
|
test-mbrtowc1.sh test-mbrtowc2.sh test-mbrtowc3.sh test-mbrtowc4.sh \
|
|
test-mbrtowc5.sh \
|
|
test-mbrtowc-w32-1.sh test-mbrtowc-w32-2.sh test-mbrtowc-w32-3.sh \
|
|
test-mbrtowc-w32-4.sh test-mbrtowc-w32-5.sh
|
|
TESTS_ENVIRONMENT += \
|
|
LOCALE_FR='@LOCALE_FR@' \
|
|
LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \
|
|
LOCALE_JA='@LOCALE_JA@' \
|
|
LOCALE_ZH_CN='@LOCALE_ZH_CN@'
|
|
check_PROGRAMS += test-mbrtowc test-mbrtowc-w32
|