1
0
mirror of https://git.savannah.gnu.org/git/gnulib.git synced 2025-09-11 11:50:52 +03:00

11 Commits

Author SHA1 Message Date
Bruno Haible
f7a63a906e vasnprintf: Work around two grouping bugs on many platforms.
* m4/printf.m4 (gl_PRINTF_FLAG_GROUPING_INT_PRECISION): New macro.
(gl_PRINTF_FLAG_GROUPING_MULTIBYTE): New macro.
* m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_IS_POSIX): Require
gl_PRINTF_FLAG_GROUPING_INT_PRECISION,
gl_PRINTF_FLAG_GROUPING_MULTIBYTE. Test
gl_cv_func_printf_flag_grouping_int_precision,
gl_cv_func_printf_flag_grouping_multibyte.
* m4/dprintf-posix.m4 (gl_FUNC_DPRINTF_IS_POSIX): Likewise.
* m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_IS_POSIX): Likewise.
* m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_IS_POSIX): Likewise.
* m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_IS_POSIX): Likewise.
* m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_IS_POSIX): Likewise.
* m4/vdprintf-posix.m4 (gl_FUNC_VDPRINTF_IS_POSIX): Likewise.
* m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_IS_POSIX): Likewise.
* m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_IS_POSIX): Likewise.
* m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_IS_POSIX): Likewise.
* m4/obstack-printf-posix.m4 (gl_FUNC_OBSTACK_PRINTF_IS_POSIX):
Likewise.
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_FLAG_GROUPING): Require
gl_PRINTF_FLAG_GROUPING_INT_PRECISION,
gl_PRINTF_FLAG_GROUPING_MULTIBYTE. Test
gl_cv_func_printf_flag_grouping_int_precision,
gl_cv_func_printf_flag_grouping_multibyte. Define the C macro
NEED_PRINTF_FLAG_GROUPING_INT.
* lib/vasnprintf.c (thousands_separator_char): New function.
(THOUSEP_CHAR_MAXLEN): New macro.
(thousands_separator_wchar): New function.
(THOUSEP_WCHAR_MAXLEN): New macro.
(MAX_ROOM_NEEDED): Improve the room estimate for FLAG_GROUP.
(VASNPRINTF): Add code for emitting thousands separators in the %f, %F,
%g, %G implementations and in the code relies the system's
sprintf/snprintf/swprintf function. Test NEED_PRINTF_FLAG_GROUPING and
NEED_PRINTF_FLAG_GROUPING_INT where needed.
* tests/test-vasnprintf-posix2.c (main): Add tests of the grouping flag.
* tests/test-vasnwprintf-posix2.c (main): Likewise.
* tests/test-vasnprintf-posix2.sh: Test in both French locales, not only
in one of them.
* tests/test-vasnwprintf-posix2.sh: Likewise.
* modules/vasnprintf-posix-tests (Depends-on): Add localeconv.
* modules/vasnwprintf-posix-tests (Depends-on): Likewise.
* doc/posix-functions/fprintf.texi: Mention the grouping bug with
precision on integers and the grouping bug with a multibyte thousands
separator.
* doc/posix-functions/vfprintf.texi: Likewise.
* doc/posix-functions/printf.texi: Likewise.
* doc/posix-functions/vprintf.texi: Likewise.
* doc/posix-functions/sprintf.texi: Likewise.
* doc/posix-functions/vsprintf.texi: Likewise.
* doc/posix-functions/snprintf.texi: Likewise.
* doc/posix-functions/vsnprintf.texi: Likewise.
* doc/posix-functions/dprintf.texi: Likewise.
* doc/posix-functions/vdprintf.texi: Likewise.
* doc/posix-functions/fwprintf.texi: Likewise.
* doc/posix-functions/vfwprintf.texi: Likewise.
* doc/posix-functions/wprintf.texi: Likewise.
* doc/posix-functions/vwprintf.texi: Likewise.
* doc/posix-functions/swprintf.texi: Likewise.
* doc/posix-functions/vswprintf.texi: Likewise.
* doc/posix-functions/asprintf.texi: Likewise.
* doc/posix-functions/vasprintf.texi: Likewise.
* doc/glibc-functions/obstack_printf.texi: Likewise.
* doc/glibc-functions/obstack_vprintf.texi: Likewise.
2025-04-12 00:09:23 +02:00
Bruno Haible
1450747216 Rename module stdint to stdint-h.
* modules/stdint-h: Renamed from modules/stdint.
* modules/stdint-h-tests: Renamed from modules/stdint-tests.
* modules/stdint-h-c++-tests: Renamed from modules/stdint-c++-tests.
* tests/test-stdint-h.c: Renamed from tests/test-stdint.c.
* tests/test-stdint-h-c++.cc: Renamed from tests/test-stdint-c++.cc.
* tests/test-stdint-h-c++2.cc: Renamed from tests/test-stdint-c++2.cc.
* doc/posix-headers/stdint.texi: Update.
* doc/gnulib-readme.texi: Update.
* doc/gnulib.texi: Update.
* modules/* (Depends-on): Update.
* modules/stdint: New file.
2024-12-27 23:35:41 +01:00
Bruno Haible
3d1b90b454 Rename module float to float-h.
* modules/float-h: Renamed from modules/float.
* modules/float-h-tests: Renamed from modules/float-tests.
* modules/float-h-c++-tests: Renamed from modules/float-c++-tests.
* tests/test-float-h.c: Renamed from tests/test-float.c.
* tests/test-float-h-c++.cc: Renamed from tests/test-float-c++.cc.
* tests/test-float-h-c++2.cc: Renamed from tests/test-float-c++2.cc.
* doc/posix-headers/float.texi: Update.
* modules/* (Depends-on): Update.
* modules/float: New file.
2024-12-27 23:14:08 +01:00
Bruno Haible
43516c1d20 tests: Use C99 initializer syntax for memory_long_double.
* tests/test-isfinite.c (test_isfinitel): Use '.word = ...' syntax when
initializing memory_long_double variables.
* tests/test-isinf.c (test_isinfl): Likewise.
* tests/test-isnan.c (test_long_double): Likewise.
* tests/test-snprintf-posix.h (test_function): Likewise.
* tests/test-sprintf-posix.h (test_function): Likewise.
* tests/test-vasnprintf-posix.c (test_function): Likewise.
* tests/test-vasnwprintf-posix.c (test_function): Likewise.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* modules/isfinite-tests (Depends-on): Add c99.
* modules/isinf-tests (Depends-on): Likewise.
* modules/isnan-tests (Depends-on): Likewise.
* modules/isnanl-nolibm-tests (Depends-on): Likewise.
* modules/isnanl-tests (Depends-on): Likewise.
* modules/pipe-filter-gi-tests (Depends-on): Likewise.
* modules/pipe-filter-ii-tests (Depends-on): Likewise.
* modules/snprintf-posix-tests (Depends-on): Likewise.
* modules/sprintf-posix-tests (Depends-on): Likewise.
* modules/vasnprintf-posix-tests (Depends-on): Likewise.
* modules/vasnwprintf-posix-tests (Depends-on): Likewise.
* modules/vasprintf-posix-tests (Depends-on): Likewise.
* modules/vsnprintf-posix-tests (Depends-on): Likewise.
* modules/vsprintf-posix-tests (Depends-on): Likewise.
2023-10-27 20:05:05 +02:00
Bruno Haible
94c7aff8c1 *printf tests: Test printing of signalling NaNs.
These tests run without sigfpe_on_invalid(), therefore they won't crash.

* tests/test-vasnprintf-posix.c: Include snan.h.
(test_function): For each test case that uses NaNd or NaNl, add a test
case with SNaNd or SNaNl, respectively.
* tests/test-vasprintf-posix.c: Likewise.
* tests/test-snprintf-posix.h: Likewise.
* tests/test-sprintf-posix.h: Likewise.
* tests/test-vasnwprintf-posix.c: Likewise.
* modules/vasnprintf-posix-tests (Depends-on): Add snan.
* modules/vasprintf-posix-tests (Depends-on): Likewise.
* modules/vsnprintf-posix-tests (Depends-on): Likewise.
* modules/snprintf-posix-tests (Depends-on): Likewise.
* modules/vsprintf-posix-tests (Depends-on): Likewise.
* modules/sprintf-posix-tests (Depends-on): Likewise.
* modules/vasnwprintf-posix-tests (Depends-on): Likewise.
* modules/pipe-filter-gi-tests (Depends-on): Likewise.
* modules/pipe-filter-ii-tests (Depends-on): Likewise.
2023-10-13 02:39:05 +02:00
Bruno Haible
8c3d2d1974 nan: New module.
* lib/nan.h: Renamed from tests/nan.h. Change double-inclusion guard.
* modules/nan: New file.
* modules/*-tests: Depend on this module instead of embedding
tests/nan.h.
2023-10-12 20:59:58 +02:00
Bruno Haible
65a73162a5 Make internationalization tests stricter on musl systems.
* m4/locale-fr.m4 (gt_LOCALE_FR): On musl systems, set LOCALE_FR_UTF8 to
"fr_FR.UTF-8" instead of "none". Set and substitute
LC_COLLATE_IMPLEMENTED, LC_NUMERIC_IMPLEMENTED, LC_TIME_IMPLEMENTED,
LC_MONETARY_IMPLEMENTED.
* m4/iswdigit.m4 (gl_FUNC_ISWDIGIT): Skip testing a certain locale if
that locale is "none".
* m4/iswxdigit.m4 (gl_FUNC_ISWXDIGIT): Likewise.
* m4/mbrlen.m4 (gl_MBRLEN_RETVAL): Likewise.
* m4/mbrtowc.m4 (gl_MBRTOWC_RETVAL): Likewise.
* m4/mbrtoc32.m4 (gl_MBRTOC32_SANITYCHECK): Likewise.
* m4/mbsrtowcs.m4 (gl_MBSRTOWCS_WORKS): Likewise.
* m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Likewise.
--
* tests/test-c32isalpha.c (main): On musl libc, disable tests that fail.
* tests/test-c32iscntrl.c (main): Likewise.
* tests/test-c32isgraph.c (main): Likewise.
* tests/test-c32islower.c (main): Likewise.
* tests/test-c32isprint.c (main): Likewise.
* tests/test-c32toupper.c (main): Likewise.
* tests/test-nl_langinfo1.c (main): Likewise.
* tests/test-nl_langinfo2.c (main): Likewise.
* modules/c32isalpha-tests (Files): Add musl.m4.
(configure.ac): Invoke gl_MUSL_LIBC.
* modules/c32iscntrl-tests (Files): Add musl.m4.
(configure.ac): Invoke gl_MUSL_LIBC.
* modules/c32isgraph-tests (Files): Add musl.m4.
(configure.ac): Invoke gl_MUSL_LIBC.
* modules/c32islower-tests (Files): Add musl.m4.
(configure.ac): Invoke gl_MUSL_LIBC.
* modules/c32isprint-tests (Files): Add musl.m4.
(configure.ac): Invoke gl_MUSL_LIBC.
* modules/c32toupper-tests (Files): Add musl.m4.
(configure.ac): Invoke gl_MUSL_LIBC.
* modules/nl_langinfo-tests (Files): Add musl.m4.
(configure.ac): Invoke gl_MUSL_LIBC.
--
* tests/test-strtod1.sh: Skip the test if LC_NUMERIC_IMPLEMENTED is
false.
* tests/test-strtold1.sh: Likewise.
* tests/test-vasnprintf-posix2.sh: Likewise.
* tests/test-vasnwprintf-posix2.sh: Likewise.
* modules/strtod-tests (Makefile.am): Set LC_NUMERIC_IMPLEMENTED in the
tests environment.
* modules/strtold-tests (Makefile.am): Likewise.
* modules/vasnprintf-posix-tests (Makefile.am): Likewise.
* modules/vasnwprintf-posix-tests (Makefile.am): Likewise.
2023-06-14 01:30:47 +02:00
Bruno Haible
f61570c0ef *printf-posix: Fix implementation of %b directive.
* lib/vasnprintf.c (VASNPRINTF): In the %b directive implementation, fix
the precision handling, and ignore the '0' flag when a width and a
precision are both present.
* tests/test-snprintf-posix.h (test_function): Add test cases for the %x
directive and more test cases for the %b directive.
* tests/test-sprintf-posix.h (test_function): Likewise.
* tests/test-vasnprintf-posix.c (test_function): Likewise.
* tests/test-vasnwprintf-posix.c (test_function): Likewise.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* modules/vasnwprintf-posix-tests (Files): Add m4/musl.m4.
(configure.ac): Invoke gl_MUSL_LIBC.
2023-03-22 21:43:23 +01:00
Bruno Haible
a4d8a7a984 vasnwprintf tests: Fix link errors on AIX.
* modules/vasnwprintf (Link): New section.
* modules/vasnwprintf-posix (Link): New section.
* modules/vasnwprintf-tests (Makefile.am): Link test-vasnwprintf with
$(MBRTOWC_LIB).
* modules/vasnwprintf-posix-tests (Makefile.am): Link
test-vasnwprintf-posix, test-vasnwprintf-posix2, test-vasnwprintf-posix3
with $(MBRTOWC_LIB).
2023-03-22 14:42:58 +01:00
Bruno Haible
3093f560cf vasnwprintf: Fix module dependencies.
* modules/vasnwprintf (Depends-on): Add wmemcpy, wmemset.
* modules/vasnwprintf-tests (Depends-on): Add wmemcmp.
* modules/vasnwprintf-posix-tests (Depends-on): Likewise.
2023-03-20 03:16:42 +01:00
Bruno Haible
e8cfb63217 vasnwprintf-posix: Add tests.
* tests/test-vasnwprintf-posix.c: New file, based on
tests/test-vasnprintf-posix.c.
* tests/test-vasnwprintf-posix2.sh: New file, based on
tests/test-vasnprintf-posix2.sh.
* tests/test-vasnwprintf-posix2.c: New file, based on
tests/test-vasnprintf-posix2.c.
* tests/test-vasnwprintf-posix3.c: New file, based on
tests/test-vasnprintf-posix3.c.
* modules/vasnwprintf-posix-tests: New file, based on
modules/vasnprintf-posix-tests.
2023-03-17 12:53:05 +01:00