]> Savannah Git Hosting - gnulib.git/log
gnulib.git
2 years agodoc: Document string-desc and related modules.
Bruno Haible [Tue, 28 Mar 2023 22:31:47 +0000 (00:31 +0200)]
doc: Document string-desc and related modules.

* doc/string-desc.texi: New file.
* doc/gnulib.texi (Particular Modules): Include it.

2 years agostring-desc-quotearg: Add tests.
Bruno Haible [Tue, 28 Mar 2023 22:27:37 +0000 (00:27 +0200)]
string-desc-quotearg: Add tests.

* tests/test-string-desc-quotearg.c: New file.
* modules/string-desc-quotearg-tests: New file.

2 years agostring-desc-quotearg: New module.
Bruno Haible [Tue, 28 Mar 2023 22:26:51 +0000 (00:26 +0200)]
string-desc-quotearg: New module.

* lib/string-desc-quotearg.h: New file.
* lib/string-desc-quotearg.c: New file.
* modules/string-desc-quotearg: New file.

2 years agoxstring-desc: Add tests.
Bruno Haible [Tue, 28 Mar 2023 22:25:50 +0000 (00:25 +0200)]
xstring-desc: Add tests.

* tests/test-xstring-desc.c: New file.
* modules/xstring-desc-tests: New file.

2 years agoxstring-desc: New module.
Bruno Haible [Tue, 28 Mar 2023 22:24:57 +0000 (00:24 +0200)]
xstring-desc: New module.

* lib/xstring-desc.h: New file.
* lib/xstring-desc.c: New file.
* modules/xstring-desc: New file.

2 years agostring-desc: Add tests.
Bruno Haible [Tue, 28 Mar 2023 22:23:55 +0000 (00:23 +0200)]
string-desc: Add tests.

* tests/test-string-desc.sh: New file.
* tests/test-string-desc.c: New file.
* modules/string-desc-tests: New file.

2 years agostring-desc: New module.
Bruno Haible [Tue, 28 Mar 2023 22:22:17 +0000 (00:22 +0200)]
string-desc: New module.

* lib/string-desc.h: New file.
* lib/string-desc.c: New file.
* lib/string-desc-contains.c: New file.
* modules/string-desc: New file.

2 years agoautoupdate
Karl Berry [Tue, 28 Mar 2023 15:41:22 +0000 (08:41 -0700)]
autoupdate

2 years agodoc: Fix placement of memset_explicit node.
Bruno Haible [Tue, 28 Mar 2023 12:06:06 +0000 (14:06 +0200)]
doc: Fix placement of memset_explicit node.

* doc/posix-functions/memset_explicit.texi: Define a section, not a
subsection.

2 years agodoc: Update regarding linear string search.
Bruno Haible [Tue, 28 Mar 2023 11:13:55 +0000 (13:13 +0200)]
doc: Update regarding linear string search.

* doc/glibc-functions/memmem.texi: Update platforms list.
* doc/posix-functions/strstr.texi: Likewise.
* doc/glibc-functions/strcasestr.texi: Likewise.

2 years agoialloc: Add comments.
Bruno Haible [Tue, 28 Mar 2023 00:18:02 +0000 (02:18 +0200)]
ialloc: Add comments.

* lib/ialloc.h (imalloc, irealloc, icalloc, ireallocarray): Add
comments.

2 years agoSupport FALLTHROUGH macro better in glibc+clang.
Paul Eggert [Mon, 27 Mar 2023 17:22:35 +0000 (19:22 +0200)]
Support FALLTHROUGH macro better in glibc+clang.

* lib/fnmatch.c (FALLTHROUGH): Use __attribute__ ((__fallthrough__))
also in clang >= 10.
* lib/fts.c (FALLTHROUGH): Likewise.
* lib/regex_internal.h (FALLTHROUGH): Likewise.

2 years agowcsstr: Ensure worst-case linear execution time.
Bruno Haible [Mon, 27 Mar 2023 13:41:30 +0000 (15:41 +0200)]
wcsstr: Ensure worst-case linear execution time.

* lib/wchar.in.h (wcsstr): Consider REPLACE_WCSSTR.
* lib/wcs-two-way.h: New file, based on lib/str-two-way.h.
* lib/wcsstr-impl.h: If requested, use the two-way algorithm. New code
based on lib/strstr.c.
* m4/wcsstr.m4 (gl_FUNC_WCSSTR_SIMPLE): Renamed from gl_FUNC_WCSSTR.
(gl_FUNC_WCSSTR): New macro, based on gl_FUNC_STRSTR in m4/strstr.m4.
* m4/wchar_h.m4 (gl_WCHAR_H_DEFAULTS): Initialize REPLACE_WCSSTR.
* modules/wchar (Makefile.am): Substitute REPLACE_WCSSTR.
* modules/wcsstr-simple: New file, based on modules/wcsstr.
* modules/wcsstr (Description): Document that this module now provides
an efficient implementation.
(Files): Add lib/wcs-two-way.h.
(Depends-on): Depend on wcsstr-simple and the dependencies of the
two-way implementation.
(configure.ac): Use AC_LIBOBJ instead of a conditional. Don't invoke
gl_WCHAR_MODULE_INDICATOR.
(Makefile.am): Don't augment lib_SOURCES.
* tests/test-wcsstr.c: New file, based on tests/test-strstr.c.
* modules/wcsstr-tests: New file, based on modules/strstr-tests.
* doc/posix-functions/wcsstr.texi: Mention the worst-case complexity.
Mention the new 'wcsstr-simple' module.
* doc/posix-functions/strstr.texi: Fix typo.

2 years agoAdd test case from a past musl libc bug.
Bruno Haible [Mon, 27 Mar 2023 13:13:41 +0000 (15:13 +0200)]
Add test case from a past musl libc bug.

* tests/test-strstr.c (main): Add test of periodic needle.
* tests/test-strcasestr.c (main): Likewise.
* tests/test-c-strstr.c (main): Likewise.
* tests/test-c-strcasestr.c (main): Likewise.
* tests/test-memmem.c (main): Likewise.

2 years agouchar: ISO C 23: Define char8_t.
Bruno Haible [Mon, 27 Mar 2023 10:30:46 +0000 (12:30 +0200)]
uchar: ISO C 23: Define char8_t.

* lib/uchar.in.h (char8_t): New type or macro.
* m4/uchar_h.m4 (gl_TYPE_CHAR8_T): New macro.
(gl_UCHAR_H): Invoke it. Set CXX_HAS_CHAR8_TYPE.
* modules/uchar (Makefile.am): Substitute CXX_HAS_CHAR8_TYPE,
GNULIBHEADERS_OVERRIDE_CHAR8_T.
* tests/test-uchar.c: Add tests for char8_t.

2 years agostdlib: ISO C 23: Document issue with once_flag and call_once.
Bruno Haible [Sat, 25 Mar 2023 20:48:31 +0000 (21:48 +0100)]
stdlib: ISO C 23: Document issue with once_flag and call_once.

* doc/posix-headers/stdlib.texi: Document issue and workaround.

2 years agocall_once: New module, separate from mtx.
Bruno Haible [Sat, 25 Mar 2023 19:54:29 +0000 (20:54 +0100)]
call_once: New module, separate from mtx.

* lib/threads.in.h (call_once): Declare as part of module 'call_once',
not module 'mtx'.
* lib/call_once.c: New file, extracted from lib/mtx.c.
* lib/mtx.c (call_once): Remove function.
* m4/threads_h.m4 (gl_THREADS_H_REQUIRE_DEFAULTS): Inititalize
GNULIB_CALL_ONCE.
* modules/threads-h (Makefile.am): Substitute GNULIB_CALL_ONCE.
* modules/call_once: New file, based on modules/mtx.
* modules/threads (Depends-on): Add call_once.
* tests/test-threads-c++.cc: Update accordingly.
* modules/call_once-tests: New file, based on modules/mtx-tests.
* modules/mtx-tests (Files): Remove tests/test-call_once.c.
(Makefile.am): Don't compile test-call_once.
* doc/posix-functions/call_once.texi: Document that the relevant module
is now 'call_once'.
* NEWS: Mention the change.

2 years agostdio: ISO C 23: Define _PRINTF_NAN_LEN_MAX.
Bruno Haible [Sat, 25 Mar 2023 18:36:31 +0000 (19:36 +0100)]
stdio: ISO C 23: Define _PRINTF_NAN_LEN_MAX.

* lib/stdio.in.h (_PRINTF_NAN_LEN_MAX): New macro.
* m4/stdio_h.m4 (gl_STDIO_H): Invoke gl_MUSL_LIBC.
* modules/stdio (Files): Add m4/musl.m4.
* tests/test-stdio.c: Check that _PRINTF_NAN_LEN_MAX is defined.
Include nan.h, macros.h.
(main): Check the value of _PRINTF_NAN_LEN_MAX.
* modules/stdio-tests (Files): Add tests/nan.h, tests/macros.h,
m4/exponentd.m4.
(configure.ac): Invoke gl_DOUBLE_EXPONENT_LOCATION.

2 years agoMake some header file tests a bit stronger.
Bruno Haible [Sat, 25 Mar 2023 18:31:14 +0000 (19:31 +0100)]
Make some header file tests a bit stronger.

* tests/test-float.c: Include fpucw.h and macros.h only after checking
the macros.
* tests/test-glob-h.c: Include macros.h only after checking the types
and macros.
* tests/test-inttypes.c: Don't include <stddef.h>.
* tests/test-math.c: Include <limits.h> and macros.h only after checking
the types and macros.
* tests/test-stddef.c: Include <limits.h> only after checking the types
and macros.
* tests/test-sys_select.c: Include signature.h only after checking the
types.
* tests/test-sys_socket.c: Include <errno.h> only after checking the
types and macros.
* tests/test-wctype-h.c: Include macros.h only after checking the types.

2 years agois* tests: Ensure needed .m4 files are packaged.
Bruno Haible [Sat, 25 Mar 2023 17:40:24 +0000 (18:40 +0100)]
is* tests: Ensure needed .m4 files are packaged.

* modules/isfinite-tests (Files): Add m4/exponent*.m4.
* modules/isnan-tests (Files): Likewise.
* modules/isnanf-tests (Files): Add m4/exponentf.m4.
* modules/isnanf-nolibm-tests (Files): Likewise.
* modules/isnand-tests (Files): Add m4/exponentd.m4.
* modules/isnand-nolibm-tests (Files): Likewise.
* modules/isnanl-tests (Files): Add m4/exponentl.m4.
* modules/isnanl-nolibm-tests (Files): Likewise.
* modules/isinf-tests (Files): Reorder.

2 years ago*printf-posix: ISO C 23: Support size specifiers 'wN' and 'wfN'.
Bruno Haible [Fri, 24 Mar 2023 21:14:09 +0000 (22:14 +0100)]
*printf-posix: ISO C 23: Support size specifiers 'wN' and 'wfN'.

* lib/printf-args.h: Include <stdint.h>.
(arg_type): Add TYPE_[U]INT8_T, ..., TYPE_[U]INT_FAST64_T and
TYPE_COUNT_INT8_T_POINTER, ..., TYPE_COUNT_INT_FAST64_T_POINTER.
(argument): Add the union members a_[u]int8_t, ..., a_[u]int_fast64_t
and a_count_int8_t_pointer, ..., a_count_int_fast64_t_pointer.
* lib/printf-args.c: Include <limits.h>.
(PRINTF_FETCHARGS): Handle TYPE_[U]INT8_T, ..., TYPE_[U]INT_FAST64_T and
TYPE_COUNT_INT8_T_POINTER, ..., TYPE_COUNT_INT_FAST64_T_POINTER.
* lib/printf-parse.c (PRINTF_PARSE): Accept only one size specifier, not
a sequence of size specifiers. Accept "wN" and "wfN", where N = 8, 16,
32, 64.
* lib/vasnprintf.c (MAX_ROOM_NEEDED, VASNPRINTF): Handle the new TYPE_*
values as well.
* m4/printf.m4 (gl_PRINTF_SIZES_C23): New macro.
* m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_IS_POSIX): Require
gl_PRINTF_SIZES_C23. Test gl_cv_func_printf_sizes_c23.
* m4/dprintf-posix.m4 (gl_FUNC_DPRINTF_IS_POSIX): Likewise.
* m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_IS_POSIX): Likewise.
* m4/obstack-printf-posix.m4 (gl_FUNC_OBSTACK_PRINTF_IS_POSIX):
Likewise.
* m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_IS_POSIX): Likewise.
* m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_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.
* tests/test-vasnprintf-posix.c (test_function): Add tests for size
specifiers with %d, %u, %b, %o, %x.
* tests/test-snprintf-posix.h (test_function): Likewise.
* tests/test-sprintf-posix.h (test_function): Likewise.
* tests/test-vasnwprintf-posix.c (test_function): Likewise.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* modules/vasnprintf (Depends-on): Add limits-h.
* modules/vasnwprintf (Depends-on): Add limits-h.
* modules/c-vasnprintf (Depends-on): Add limits-h, stdint.
* modules/unistdio/u-printf-args (Depends-on): Add stdint, limits-h.
* doc/posix-functions/dprintf.texi: Mention the ISO C 23 size
specifiers.
* doc/posix-functions/fprintf.texi: Likewise.
* doc/posix-functions/fwprintf.texi: Likewise.
* doc/posix-functions/printf.texi: Likewise.
* doc/posix-functions/snprintf.texi: Likewise.
* doc/posix-functions/sprintf.texi: Likewise.
* doc/posix-functions/swprintf.texi: Likewise.
* doc/posix-functions/vdprintf.texi: Likewise.
* doc/posix-functions/vfprintf.texi: Likewise.
* doc/posix-functions/vfwprintf.texi: Likewise.
* doc/posix-functions/vprintf.texi: Likewise.
* doc/posix-functions/vsnprintf.texi: Likewise.
* doc/posix-functions/vsprintf.texi: Likewise.
* doc/posix-functions/vswprintf.texi: Likewise.
* doc/posix-functions/vwprintf.texi: Likewise.
* doc/posix-functions/wprintf.texi: Likewise.

2 years agoxprintf-gnu: New module.
Bruno Haible [Fri, 24 Mar 2023 11:20:26 +0000 (12:20 +0100)]
xprintf-gnu: New module.

* modules/xprintf-gnu: New file, based on modules/vasnprintf-gnu and
modules/xprintf-posix.

2 years agoxvasprintf-gnu: New module.
Bruno Haible [Fri, 24 Mar 2023 11:18:24 +0000 (12:18 +0100)]
xvasprintf-gnu: New module.

* modules/xvasprintf-gnu: New file, based on modules/xvasprintf-posix.

2 years agovasnwprintf-gnu: Add tests.
Bruno Haible [Fri, 24 Mar 2023 11:16:36 +0000 (12:16 +0100)]
vasnwprintf-gnu: Add tests.

* tests/test-vasnwprintf-gnu.c: New file, based on
tests/test-vasnwprintf-posix.c and tests/test-vasnprintf-gnu.c.
* modules/vasnwprintf-gnu-tests: New file, based on
modules/vasnwprintf-posix-tests.

2 years agovasnwprintf-gnu: New module.
Bruno Haible [Fri, 24 Mar 2023 11:15:42 +0000 (12:15 +0100)]
vasnwprintf-gnu: New module.

* m4/vasnwprintf-posix.m4 (gl_FUNC_VASNWPRINTF_IS_POSIX): New macro.
(gl_FUNC_VASNWPRINTF_POSIX): Require it. Invoke
gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS.
* m4/vasnwprintf-gnu.m4: New file, based on m4/vasnprintf-gnu.m4.
* modules/vasnwprintf-gnu: New file, based on modules/vasnprintf-gnu.

2 years agoobstack-printf-gnu: Add tests.
Bruno Haible [Fri, 24 Mar 2023 11:12:36 +0000 (12:12 +0100)]
obstack-printf-gnu: Add tests.

* modules/obstack-printf-gnu-tests: New file, based on
modules/obstack-printf-posix-tests.

2 years agoobstack-printf-gnu: New module.
Bruno Haible [Fri, 24 Mar 2023 11:11:52 +0000 (12:11 +0100)]
obstack-printf-gnu: New module.

* m4/obstack-printf-posix.m4 (gl_FUNC_OBSTACK_PRINTF_IS_POSIX): New
macro, extracted from gl_FUNC_OBSTACK_PRINTF_POSIX.
(gl_FUNC_OBSTACK_PRINTF_POSIX): Require it. Invoke
gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS.
* m4/obstack-printf-gnu.m4: New file, based on
m4/obstack-printf-posix.m4.
* modules/obstack-printf-gnu: New file, based on modules/vasnprintf-gnu.
* doc/glibc-functions/obstack_printf.texi: Mention the new module.
* doc/glibc-functions/obstack_vprintf.texi: Likewise.

2 years agodprintf-gnu: Add tests.
Bruno Haible [Fri, 24 Mar 2023 11:05:26 +0000 (12:05 +0100)]
dprintf-gnu: Add tests.

* tests/test-dprintf-gnu.sh: New file, based on
tests/test-dprintf-posix.sh.
* tests/test-dprintf-gnu.c: New file, based on
tests/test-vasnprintf-gnu.c.
* modules/dprintf-gnu-tests: New file, based on
modules/dprintf-posix-tests.

2 years agodprintf-gnu: New module.
Bruno Haible [Fri, 24 Mar 2023 11:04:20 +0000 (12:04 +0100)]
dprintf-gnu: New module.

* m4/dprintf-posix.m4 (gl_FUNC_DPRINTF_IS_POSIX): New macro,
extracted from gl_FUNC_DPRINTF_POSIX.
(gl_FUNC_DPRINTF_POSIX): Require it. Invoke
gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS.
* m4/dprintf-gnu.m4: New file, based on m4/dprintf-posix.m4.
* modules/dprintf-gnu: New file, based on modules/vasnprintf-gnu.
* doc/posix-functions/dprintf.texi: Mention the new module.

2 years agovdprintf-gnu: Add tests.
Bruno Haible [Fri, 24 Mar 2023 11:01:45 +0000 (12:01 +0100)]
vdprintf-gnu: Add tests.

* tests/test-vdprintf-gnu.sh: New file, based on
tests/test-vdprintf-posix.sh.
* tests/test-vdprintf-gnu.c: New file, based on
tests/test-vdprintf-posix.c.
* modules/vdprintf-gnu-tests: New file, based on
modules/vdprintf-posix-tests.

2 years agovdprintf-gnu: New module.
Bruno Haible [Fri, 24 Mar 2023 11:00:23 +0000 (12:00 +0100)]
vdprintf-gnu: New module.

* m4/vdprintf-posix.m4 (gl_FUNC_VDPRINTF_IS_POSIX): New macro,
extracted from gl_FUNC_VDPRINTF_POSIX.
(gl_FUNC_VDPRINTF_POSIX): Require it. Invoke
gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS.
* m4/vdprintf-gnu.m4: New file, based on m4/vdprintf-posix.m4.
* modules/vdprintf-gnu: New file, based on modules/vasnprintf-gnu.
* doc/posix-functions/vdprintf.texi: Mention the new module.

2 years agoprintf-gnu: Add tests.
Bruno Haible [Fri, 24 Mar 2023 10:57:19 +0000 (11:57 +0100)]
printf-gnu: Add tests.

* tests/test-printf-gnu.sh: New file, based on
tests/test-printf-posix.sh.
* tests/test-printf-gnu.c: New file, based on tests/test-printf-posix.c.
* modules/printf-gnu-tests: New file, based on
modules/printf-posix-tests.

2 years agoprintf-gnu: New module.
Bruno Haible [Fri, 24 Mar 2023 10:55:38 +0000 (11:55 +0100)]
printf-gnu: New module.

* m4/printf-posix.m4: Renamed from m4/printf-posix-rpl.m4.
(gl_FUNC_PRINTF_IS_POSIX): New macro.
(gl_FUNC_PRINTF_POSIX): Require it. Don't require
gl_FUNC_VFPRINTF_POSIX. Invoke gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS
and gl_REPLACE_VASNPRINTF.
* m4/printf-gnu.m4: New file, based on m4/fprintf-posix.m4.
* modules/printf-posix (Files): Update.
* modules/printf-gnu: New file, based on modules/vasnprintf-gnu.
* doc/posix-functions/printf.texi: Mention the new module.

2 years agovprintf-gnu: Add tests.
Bruno Haible [Fri, 24 Mar 2023 10:47:20 +0000 (11:47 +0100)]
vprintf-gnu: Add tests.

* tests/test-vprintf-gnu.sh: New file, based on
tests/test-vprintf-posix.sh.
* tests/test-vprintf-gnu.c: New file, based on
tests/test-vprintf-posix.c.
* tests/test-printf-gnu.h: New file, based on
tests/test-vasnprintf-gnu.c.
* modules/vprintf-gnu-tests: New file, based on
modules/vprintf-posix-tests.

2 years agovprintf-gnu: New module.
Bruno Haible [Fri, 24 Mar 2023 10:46:24 +0000 (11:46 +0100)]
vprintf-gnu: New module.

* m4/vprintf-posix.m4 (gl_FUNC_VPRINTF_IS_POSIX): New macro.
(gl_FUNC_VPRINTF_POSIX): Require it. Don't require
gl_FUNC_VFPRINTF_POSIX. Invoke gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS
and gl_REPLACE_VASNPRINTF.
* m4/vprintf-gnu.m4: New file, based on m4/vfprintf-posix.m4.
* modules/vprintf-gnu: New file, based on modules/vasnprintf-gnu.
* doc/posix-functions/vprintf.texi: Mention the new module.

2 years agofprintf-gnu: Add tests.
Bruno Haible [Fri, 24 Mar 2023 10:41:10 +0000 (11:41 +0100)]
fprintf-gnu: Add tests.

* tests/test-fprintf-gnu.sh: New file, based on
tests/test-fprintf-posix.sh.
* tests/test-fprintf-gnu.c: New file, based on
tests/test-fprintf-posix.c.
* modules/fprintf-gnu-tests: New file, based on
modules/fprintf-posix-tests.

2 years agofprintf-gnu: New module.
Bruno Haible [Fri, 24 Mar 2023 10:39:47 +0000 (11:39 +0100)]
fprintf-gnu: New module.

* m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_IS_POSIX): New macro,
extracted from gl_FUNC_FPRINTF_POSIX.
(gl_FUNC_FPRINTF_POSIX): Require it. Invoke
gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS.
* m4/fprintf-gnu.m4: New file, based on m4/fprintf-posix.m4.
* modules/fprintf-gnu: New file, based on modules/vasnprintf-gnu.
* doc/posix-functions/fprintf.texi: Mention the new module.

2 years agovfprintf-gnu: Add tests.
Bruno Haible [Fri, 24 Mar 2023 10:36:53 +0000 (11:36 +0100)]
vfprintf-gnu: Add tests.

* tests/test-vfprintf-gnu.sh: New file, based on
tests/test-vfprintf-posix.sh.
* tests/test-vfprintf-gnu.c: New file, based on
tests/test-vfprintf-posix.c.
* tests/test-fprintf-gnu.h: New file, based on
tests/test-vasnprintf-gnu.c.
* tests/test-printf-gnu.output: New file, based on
tests/test-vasnprintf-gnu.c.
* modules/vfprintf-gnu-tests: New file, based on
modules/vfprintf-posix-tests.

2 years agovfprintf-gnu: New module.
Bruno Haible [Fri, 24 Mar 2023 10:35:26 +0000 (11:35 +0100)]
vfprintf-gnu: New module.

* m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_IS_POSIX): New macro,
extracted from gl_FUNC_VFPRINTF_POSIX.
(gl_FUNC_VFPRINTF_POSIX): Require it. Invoke
gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS.
* m4/vfprintf-gnu.m4: New file, based on m4/vfprintf-posix.m4.
* modules/vfprintf-gnu: New file, based on modules/vasnprintf-gnu.
* doc/posix-functions/vfprintf.texi: Mention the new module.

2 years agovasprintf-gnu: Add tests.
Bruno Haible [Fri, 24 Mar 2023 10:29:58 +0000 (11:29 +0100)]
vasprintf-gnu: Add tests.

* tests/test-vasprintf-gnu.c: New file, based on
tests/test-vasprintf-posix.c and tests/test-vasnprintf-gnu.c.
* modules/vasprintf-gnu-tests: New file, based on
modules/vasprintf-posix-tests.

2 years agovasprintf-gnu: New module.
Bruno Haible [Fri, 24 Mar 2023 10:28:38 +0000 (11:28 +0100)]
vasprintf-gnu: New module.

* m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_IS_POSIX): New macro,
extracted from gl_FUNC_VASPRINTF_POSIX.
(gl_FUNC_VASPRINTF_POSIX): Require it. Invoke
gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS.
* m4/vasprintf-gnu.m4: New file, based on m4/vasprintf-posix.m4.
* modules/vasprintf-gnu: New file, based on modules/vasnprintf-gnu.
* doc/glibc-functions/vasprintf.texi: Mention the new module.
* doc/glibc-functions/asprintf.texi: Likewise.

2 years agosprintf-gnu: Add tests.
Bruno Haible [Fri, 24 Mar 2023 10:23:51 +0000 (11:23 +0100)]
sprintf-gnu: Add tests.

* tests/test-sprintf-gnu.c: New file, based on
tests/test-sprintf-posix.c.
* modules/sprintf-gnu-tests: New file, based on
modules/sprintf-posix-tests.

2 years agosprintf-gnu: New module.
Bruno Haible [Fri, 24 Mar 2023 10:22:20 +0000 (11:22 +0100)]
sprintf-gnu: New module.

* m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_IS_POSIX): New macro,
extracted from gl_FUNC_SPRINTF_POSIX.
(gl_FUNC_SPRINTF_POSIX): Require it. Invoke
gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS.
* m4/sprintf-gnu.m4: New file, based on m4/sprintf-posix.m4.
* modules/sprintf-gnu: New file, based on modules/vasnprintf-gnu.
* doc/posix-functions/sprintf.texi: Mention the new module.

2 years agovsprintf-gnu: Add tests.
Bruno Haible [Fri, 24 Mar 2023 10:19:18 +0000 (11:19 +0100)]
vsprintf-gnu: Add tests.

* tests/test-vsprintf-gnu.c: New file, based on
tests/test-vsprintf-posix.c.
* tests/test-sprintf-gnu.h: New file, based on
tests/test-vasnprintf-gnu.c.
* modules/vsprintf-gnu-tests: New file, based on
modules/vsprintf-posix-tests.

2 years agovsprintf-gnu: New module.
Bruno Haible [Fri, 24 Mar 2023 10:17:22 +0000 (11:17 +0100)]
vsprintf-gnu: New module.

* m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_IS_POSIX): New macro,
extracted from gl_FUNC_VSPRINTF_POSIX.
(gl_FUNC_VSPRINTF_POSIX): Require it. Invoke
gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS.
* m4/vsprintf-gnu.m4: New file, based on m4/vsprintf-posix.m4.
* modules/vsprintf-gnu: New file, based on modules/vasnprintf-gnu.
* doc/posix-functions/vsprintf.texi: Mention the new module.

2 years agosnprintf-gnu: Add tests.
Bruno Haible [Fri, 24 Mar 2023 10:13:47 +0000 (11:13 +0100)]
snprintf-gnu: Add tests.

* tests/test-snprintf-gnu.c: New file, based on
tests/test-snprintf-posix.c.
* modules/snprintf-gnu-tests: New file, based on
modules/snprintf-posix-tests.

2 years agosnprintf-gnu: New module.
Bruno Haible [Fri, 24 Mar 2023 10:12:47 +0000 (11:12 +0100)]
snprintf-gnu: New module.

* m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_IS_POSIX): New macro,
extracted from gl_FUNC_SNPRINTF_POSIX.
(gl_FUNC_SNPRINTF_POSIX): Require it. Invoke
gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS.
* m4/snprintf-gnu.m4: New file, based on m4/snprintf-posix.m4.
* modules/snprintf-gnu: New file, based on modules/vasnprintf-gnu.
* doc/posix-functions/snprintf.texi: Mention the new module.

2 years agovsnprintf-gnu: Add tests.
Bruno Haible [Fri, 24 Mar 2023 10:06:44 +0000 (11:06 +0100)]
vsnprintf-gnu: Add tests.

* tests/test-vsnprintf-gnu.c: New file, based on
tests/test-vsnprintf-posix.c.
* tests/test-snprintf-gnu.h: New file, based on
tests/test-vasnprintf-gnu.c.
* modules/vsnprintf-gnu-tests: New file, based on
modules/vsnprintf-posix-tests.

2 years agovsnprintf-gnu: New module.
Bruno Haible [Fri, 24 Mar 2023 10:05:38 +0000 (11:05 +0100)]
vsnprintf-gnu: New module.

* m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_IS_POSIX): New macro,
extracted from gl_FUNC_VSNPRINTF_POSIX.
(gl_FUNC_VSNPRINTF_POSIX): Require it. Invoke
gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS.
* m4/vsnprintf-gnu.m4: New file, based on m4/vsnprintf-posix.m4.
* modules/vsnprintf-gnu: New file, based on modules/vasnprintf-gnu.
* doc/posix-functions/vsnprintf.texi: Mention the new module.

2 years agovasnprintf-gnu: Add tests.
Bruno Haible [Thu, 23 Mar 2023 12:53:44 +0000 (13:53 +0100)]
vasnprintf-gnu: Add tests.

* tests/test-vasnprintf-gnu.c: New file, based on
tests/test-vasnprintf-posix.c.
* modules/vasnprintf-gnu-tests: New file.

2 years agovasnprintf-gnu: New module.
Bruno Haible [Thu, 23 Mar 2023 12:51:41 +0000 (13:51 +0100)]
vasnprintf-gnu: New module.

Suggested by Eric Blake in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-03/msg00060.html>.

* lib/printf-parse.c (PRINTF_PARSE): Recognize the 'B' conversion.
* lib/printf-parse.h: Update comments.
* lib/wprintf-parse.h: Likewise.
* lib/vasnprintf.c (MAX_ROOM_NEEDED): Treat the 'B' conversion like 'b'.
(VASNPRINTF): Implement 'B' conversion if
NEED_PRINTF_DIRECTIVE_UPPERCASE_B is set. Support the 'B' conversion if
requested.
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_B): When cross-compiling, guess yes
on glibc >= 2.35.
(gl_PRINTF_DIRECTIVE_UPPERCASE_B): New macro.
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS): Renamed
from gl_PREREQ_VASNPRINTF_WITH_EXTRAS.
(gl_PREREQ_VASNPRINTF_DIRECTIVE_UPPERCASE_B,
gl_PREREQ_VASNPRINTF_WITH_GNU_EXTRAS): New macros.
* m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_IS_POSIX): New macro,
extracted from gl_FUNC_VASNPRINTF_POSIX.
(gl_FUNC_VASNPRINTF_POSIX): Require it. Invoke
gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS.
* m4/vasnprintf-gnu.m4: New file.
* modules/vasnprintf-gnu: New file.
* modules/c-vasnprintf (configure.ac): Update.
* modules/unistdio/u8-vasnprintf (configure.ac): Likewise.
* modules/unistdio/u8-u8-vasnprintf (configure.ac): Likewise.
* modules/unistdio/u16-vasnprintf (configure.ac): Likewise.
* modules/unistdio/u16-u16-vasnprintf (configure.ac): Likewise.
* modules/unistdio/u32-vasnprintf (configure.ac): Likewise.
* modules/unistdio/u32-u32-vasnprintf (configure.ac): Likewise.
* modules/unistdio/ulc-vasnprintf (configure.ac): Likewise.

2 years agoprintf-posix tests: Fix compilation error (regression 2021-08-28).
Bruno Haible [Fri, 24 Mar 2023 01:45:09 +0000 (02:45 +0100)]
printf-posix tests: Fix compilation error (regression 2021-08-28).

* modules/printf-posix-tests (Files): Add tests/qemu.h.

2 years agognu-web-doc-update: don't use host alias, cvs.sv.gnu.org
Jim Meyering [Thu, 23 Mar 2023 02:51:12 +0000 (19:51 -0700)]
gnu-web-doc-update: don't use host alias, cvs.sv.gnu.org

* build-aux/gnu-web-doc-update: Use hostname cvs.savannah.gnu.org,
not cvs.sv.gnu.org. Using the shorter alias would elicit this:
  $ pkg=grep ; cvs -d $USER@cvs.sv.gnu.org:/webcvs/$pkg co $pkg
  Bad server host key: Invalid key length

2 years ago*printf-posix: Fix implementation of %b directive.
Bruno Haible [Wed, 22 Mar 2023 20:43:23 +0000 (21:43 +0100)]
*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.

2 years agovasnwprintf: Fix a warning: implicit declaration of function ‘wcsnlen’.
Bruno Haible [Wed, 22 Mar 2023 20:33:24 +0000 (21:33 +0100)]
vasnwprintf: Fix a warning: implicit declaration of function ‘wcsnlen’.

* m4/vasnprintf.m4 (gl_PREREQ_VASNWPRINTF): Test also whether wcsnlen is
declared.
* lib/vasnprintf.c (local_wcsnlen): Together with HAVE_WCSNLEN, test
also HAVE_DECL_WCSNLEN.

2 years agovasnwprintf: Fix a "warning: unused function local_wcsnlen".
Bruno Haible [Wed, 22 Mar 2023 20:28:21 +0000 (21:28 +0100)]
vasnwprintf: Fix a "warning: unused function local_wcsnlen".

* lib/vasnprintf.c: Adjust #if conditions.

2 years agovasnwprintf: Fix test failures on FreeBSD, NetBSD, AIX, mingw.
Bruno Haible [Wed, 22 Mar 2023 18:39:33 +0000 (19:39 +0100)]
vasnwprintf: Fix test failures on FreeBSD, NetBSD, AIX, mingw.

* m4/printf.m4 (gl_SWPRINTF_WORKS): New macro.
* m4/vasnprintf.m4 (gl_PREREQ_VASNWPRINTF): Invoke it and define
HAVE_WORKING_SWPRINTF accordingly.
* lib/vasnprintf.c: Together with HAVE_SWPRINTF, test also
HAVE_WORKING_SWPRINTF.
(VASNPRINTF): If WIDE_CHAR_VERSION && !DCHAR_IS_TCHAR, don't pass a
wchar_t[] to snprintf. Add a workaround against mingw's snwprintf
function.
* doc/posix-functions/swprintf.texi: Document the null wide character
bug.

2 years agovasnwprintf: Fix a "warning: unused function 'wmax_room_needed'".
Bruno Haible [Wed, 22 Mar 2023 16:46:23 +0000 (17:46 +0100)]
vasnwprintf: Fix a "warning: unused function 'wmax_room_needed'".

* lib/vasnprintf.c (MAX_ROOM_NEEDED): Adjust #if condition.

2 years agovasnwprintf: Simplify last change.
Bruno Haible [Wed, 22 Mar 2023 14:01:53 +0000 (15:01 +0100)]
vasnwprintf: Simplify last change.

* lib/vasnprintf.c (VASNPRINTF): Remove unused variable 'len'.

2 years agovasnwprintf tests: Fix link errors on AIX.
Bruno Haible [Wed, 22 Mar 2023 13:42:58 +0000 (14:42 +0100)]
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).

2 years agognu-web-doc-update: Make it work for the first upload of a manual.
Bruno Haible [Wed, 22 Mar 2023 05:43:02 +0000 (06:43 +0100)]
gnu-web-doc-update: Make it work for the first upload of a manual.

Reported by Reuben Thomas <rrt@sc3d.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-03/msg00066.html>.

* build-aux/gnu-web-doc-update: Put the 'manual' directory under version
control if it is not yet.

2 years agounistdio/u*-vasnprintf: Fix conversion of %Id directive result.
Bruno Haible [Wed, 22 Mar 2023 05:13:18 +0000 (06:13 +0100)]
unistdio/u*-vasnprintf: Fix conversion of %Id directive result.

* lib/vasnprintf.c (VASNPRINTF): Don't assume that snprintf's result is
entirely ASCII if the directive contain the glibc 'I' flag.

2 years agovasnwprintf: Fix for older platforms without swprintf.
Bruno Haible [Tue, 21 Mar 2023 16:47:04 +0000 (17:47 +0100)]
vasnwprintf: Fix for older platforms without swprintf.

* lib/vasnprintf.c (VASNPRINTF): In the %lc handling, ignore the
precision. Convert the snprintf result to a wchar_t[] not by mbsrtowcs,
but by a loop that does not stop at NUL characters.
* tests/test-vasnwprintf-posix.c (test_function): Add more tests for the
%c and %lc directives.
* modules/vasnwprintf (Depends-on): Add mbrtowc. Remove mbsrtowcs.

2 years agoautoupdate
Karl Berry [Tue, 21 Mar 2023 15:04:38 +0000 (08:04 -0700)]
autoupdate

2 years ago*printf-posix: Work around bug with %lc of 0 on many platforms.
Bruno Haible [Tue, 21 Mar 2023 14:49:06 +0000 (15:49 +0100)]
*printf-posix: Work around bug with %lc of 0 on many platforms.

* lib/vasnprintf.c (local_wctomb): Define also for
NEED_PRINTF_DIRECTIVE_LC.
(VASNPRINTF): Implement %lc handling ourselves if
NEED_PRINTF_DIRECTIVE_LC.
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_LC): New macro.
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_DIRECTIVE_LC): New macro.
(gl_PREREQ_VASNPRINTF_WITH_EXTRAS): Invoke it.
* m4/dprintf-posix.m4 (gl_FUNC_DPRINTF_POSIX): Require
gl_PRINTF_DIRECTIVE_LC and test its result. Invoke
gl_PREREQ_VASNPRINTF_DIRECTIVE_LC.
* m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Likewise.
* m4/obstack-printf-posix.m4 (gl_FUNC_OBSTACK_PRINTF_POSIX): Likewise.
* m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Likewise.
* m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Likewise.
* m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Likewise.
* m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Likewise.
* m4/vdprintf-posix.m4 (gl_FUNC_VDPRINTF_POSIX): Likewise.
* m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Likewise.
* m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise.
* m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Likewise.
* tests/test-snprintf-posix.h (test_function): Add more tests for the
%c and %lc directives.
* tests/test-sprintf-posix.h (test_function): Likewise.
* tests/test-vasnprintf-posix.c (test_function): Likewise.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* doc/glibc-functions/asprintf.texi: Mention the %lc 0 bug.
* doc/glibc-functions/obstack_printf.texi: Likewise.
* doc/glibc-functions/obstack_vprintf.texi: Likewise.
* doc/glibc-functions/vasprintf.texi: Likewise.
* doc/posix-functions/dprintf.texi: Likewise.
* doc/posix-functions/fprintf.texi: Likewise.
* doc/posix-functions/printf.texi: Likewise.
* doc/posix-functions/snprintf.texi: Likewise.
* doc/posix-functions/sprintf.texi: Likewise.
* doc/posix-functions/vdprintf.texi: Likewise.
* doc/posix-functions/vfprintf.texi: Likewise.
* doc/posix-functions/vprintf.texi: Likewise.
* doc/posix-functions/vsnprintf.texi: Likewise.
* doc/posix-functions/vsprintf.texi: Likewise.

2 years agognupload: correct SFTP connection URL
Ar Rakin [Mon, 20 Mar 2023 07:21:27 +0000 (07:21 +0000)]
gnupload: correct SFTP connection URL

Approved by Sergey Poznyakoff in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-03/msg00078.html>.

* build-aux/gnupload: fix gnu.org.ua SFTP connection URL:
puszcza.gnu.org.ua -> download.gnu.org.ua

2 years agomemrchr tests: Avoid GCC warning.
Bruno Haible [Mon, 20 Mar 2023 18:46:06 +0000 (19:46 +0100)]
memrchr tests: Avoid GCC warning.

* tests/test-memrchr.c: Don't use '#pragma GCC diagnostic' for GCC
versions older than 4.7.

2 years agounistdio: Simplify code.
Bruno Haible [Mon, 20 Mar 2023 11:39:30 +0000 (12:39 +0100)]
unistdio: Simplify code.

* lib/unistdio/u8-vasnprintf.c (DCHAR_T_IS_UINT8_T): Remove unused
macro.
* lib/unistdio/u8-u8-vasnprintf.c: Likewise.
* lib/unistdio/u16-vasnprintf.c (DCHAR_T_IS_UINT16_T): Remove unused
macro.
* lib/unistdio/u16-u32-vasnprintf.c: Likewise.
* lib/unistdio/u32-vasnprintf.c (DCHAR_T_IS_UINT32_T): Remove unused
macro.
* lib/unistdio/u32-u32-vasnprintf.c: Likewise.

2 years agovasnwprintf: Port to older platforms without swprintf.
Bruno Haible [Mon, 20 Mar 2023 18:18:02 +0000 (19:18 +0100)]
vasnwprintf: Port to older platforms without swprintf.

* m4/vasnprintf.m4 (gl_PREREQ_VASNWPRINTF): Test for swprintf.
* lib/vasnprintf.c (TCHAR_T, DCHAR_IS_TCHAR, SNPRINTF): When
WIDE_CHAR_VERSION and swprintf does not exist, use TCHAR_T = char,
SNPRINTF = snprintf, and !DCHAR_IS_TCHAR.
(VASNPRINTF): In this case, implement %ls and %lc directly. Adjust a
couple of #if conditions. For the conversion from TCHAR_T[] to
DCHAR_T[], use mbsrtowcs.
* modules/vasnwprintf (Depends-on): Add mbsrtowcs.

2 years agowmemset: Relicense under LGPLv2+.
Bruno Haible [Mon, 20 Mar 2023 09:09:57 +0000 (10:09 +0100)]
wmemset: Relicense under LGPLv2+.

* modules/wmemset (License): Change to LGPLv2+.
* lib/wmemset.c: Update license notice.
* lib/wmemset-impl.h: Likewise.

2 years agowmemcpy: Relicense under LGPLv2+.
Bruno Haible [Mon, 20 Mar 2023 09:09:16 +0000 (10:09 +0100)]
wmemcpy: Relicense under LGPLv2+.

* modules/wmemcpy (License): Change to LGPLv2+.
* lib/wmemcpy.c: Update license notice.
* lib/wmemcpy-impl.h: Likewise.

2 years agovasnwprintf: Fix test failures on musl libc.
Bruno Haible [Mon, 20 Mar 2023 02:26:44 +0000 (03:26 +0100)]
vasnwprintf: Fix test failures on musl libc.

* m4/vasnprintf.m4 (gl_PREREQ_VASNWPRINTF): Invoke gl_MUSL_LIBC.
* lib/vasnprintf.c (VASNPRINTF): On musl libc, when WIDE_CHAR_VERSION,
- force pad_ourselves to be 1,
- don't use %n.
Fix zero-padding when the result starts with a prefix "0x" or "0b".
* modules/vasnwprintf (Files): Add musl.m4.
* doc/posix-functions/swprintf.texi: Mention two musl libc bugs.

2 years agovasnwprintf: Fix module dependencies.
Bruno Haible [Mon, 20 Mar 2023 02:20:48 +0000 (03:20 +0100)]
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.

2 years agovasnwprintf: Fix module dependencies.
Bruno Haible [Mon, 20 Mar 2023 02:12:43 +0000 (03:12 +0100)]
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.

2 years agoFix typo in previous ChangeLog entry
Paul Eggert [Sun, 19 Mar 2023 23:07:57 +0000 (16:07 -0700)]
Fix typo in previous ChangeLog entry

2 years agotest-pselect, test-select: use different ports
Paul Eggert [Sun, 19 Mar 2023 23:06:34 +0000 (16:06 -0700)]
test-pselect, test-select: use different ports

I have served rare and hard-to-reproduce problems with the GNU
grep release candidate with ‘make -j5 check’ on Fedora 37 x86-64.
One possibility is that test-pselect and test-select interfere
with each other somehow when run simultaneously, as they use the
same port.  Work around this possibility by using different ports
from each other, and from test-poll (which also uses 12345).
Of course it’d be better if all these tests used system-assigned
ports, but I assume that’d take more work.
* tests/test-pselect.c, tests/test-select.c (TEST_PORT): New macro.
* tests/test-select.h (TEST_PORT): Remove.

2 years agoUpdate MODULES.html.sh.
Bruno Haible [Sun, 19 Mar 2023 17:50:18 +0000 (18:50 +0100)]
Update MODULES.html.sh.

* MODULES.html.sh: Move stack, wmempcpy, bison to different sections.
Fix a HTML layout problem.

2 years agodfa: pacify Oracle Solaris Studio 12.6
Paul Eggert [Sun, 19 Mar 2023 04:53:12 +0000 (21:53 -0700)]
dfa: pacify Oracle Solaris Studio 12.6

Without this patch, the compiler complains “statement not reached”.
* lib/dfa.c (lex): Refactor to omit unreachable statement.

2 years agoUpdate MODULES.html.sh
Paul Eggert [Sun, 19 Mar 2023 00:19:32 +0000 (17:19 -0700)]
Update MODULES.html.sh

* MODULES.html.sh: Add some recently-added modules.
This is by no means a complete update.  I needed to point
to something about ‘time’ so I added ‘time’, and then added
more modules until I ran out of, errr, time.
Assuming MODULES.html.sh is still useful,
at some point a more-complete update should be done.

2 years ago*printf-posix: ISO C 23: Add %b directive for binary output of integers.
Bruno Haible [Fri, 17 Mar 2023 22:54:50 +0000 (23:54 +0100)]
*printf-posix: ISO C 23: Add %b directive for binary output of integers.

* lib/printf-parse.h: Update more comments.

2 years ago*printf-posix: ISO C 23: Add %b directive for binary output of integers.
Bruno Haible [Fri, 17 Mar 2023 21:45:56 +0000 (22:45 +0100)]
*printf-posix: ISO C 23: Add %b directive for binary output of integers.

* lib/printf-parse.c (PRINTF_PARSE): Recognize the 'b' directive.
* lib/printf-parse.h: Update comment.
* lib/wprintf-parse.h: Likewise.
* lib/vasnprintf.c (MAX_ROOM_NEEDED, VASNPRINTF): Add support for the
'b' directive.
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_B): New macro.
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_DIRECTIVE_B): New macro.
(gl_PREREQ_VASNPRINTF_WITH_EXTRAS): Invoke it.
* m4/vasnwprintf-posix.m4 (gl_FUNC_VASNWPRINTF_POSIX): Invoke
gl_PREREQ_VASNPRINTF_DIRECTIVE_B.
* m4/dprintf-posix.m4 (gl_FUNC_DPRINTF_POSIX): Require
gl_PRINTF_DIRECTIVE_B and test its result. Invoke
gl_PREREQ_VASNPRINTF_DIRECTIVE_B.
* m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Likewise.
* m4/obstack-printf-posix.m4 (gl_FUNC_OBSTACK_PRINTF_POSIX): Likewise.
* m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Likewise.
* m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Likewise.
* m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Likewise.
* m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Likewise.
* m4/vdprintf-posix.m4 (gl_FUNC_VDPRINTF_POSIX): Likewise.
* m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Likewise.
* m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise.
* m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Likewise.
* tests/test-snprintf-posix.h (test_function): Add some tests of 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.
* doc/glibc-functions/asprintf.texi: Mention the 'b' directive.
* doc/glibc-functions/obstack_printf.texi: Likewise.
* doc/glibc-functions/obstack_vprintf.texi: Likewise.
* doc/glibc-functions/vasprintf.texi: Likewise.
* doc/posix-functions/dprintf.texi: Likewise.
* doc/posix-functions/fprintf.texi: Likewise.
* doc/posix-functions/fwprintf.texi: Likewise.
* doc/posix-functions/printf.texi: Likewise.
* doc/posix-functions/snprintf.texi: Likewise.
* doc/posix-functions/sprintf.texi: Likewise.
* doc/posix-functions/swprintf.texi: Likewise.
* doc/posix-functions/vdprintf.texi: Likewise.
* doc/posix-functions/vfprintf.texi: Likewise.
* doc/posix-functions/vfwprintf.texi: Likewise.
* doc/posix-functions/vprintf.texi: Likewise.
* doc/posix-functions/vsnprintf.texi: Likewise.
* doc/posix-functions/vsprintf.texi: Likewise.
* doc/posix-functions/vswprintf.texi: Likewise.
* doc/posix-functions/vwprintf.texi: Likewise.
* doc/posix-functions/wprintf.texi: Likewise.

2 years agovasnprintf, vasnwprintf: Simplify code.
Bruno Haible [Fri, 17 Mar 2023 21:33:24 +0000 (22:33 +0100)]
vasnprintf, vasnwprintf: Simplify code.

* lib/vasnprintf.c (MAX_ROOM_NEEDED): Remove dead code: The directives
'o', 'x', 'X' always take an unsigned integer argument.

2 years agovasnwprintf: Fix test failure on OpenBSD.
Bruno Haible [Fri, 17 Mar 2023 18:16:26 +0000 (19:16 +0100)]
vasnwprintf: Fix test failure on OpenBSD.

* lib/vasnprintf.c (VASNPRINTF): Don't use the %n directive on OpenBSD.

2 years agotime: Fix test failure on AIX 7.2.
Bruno Haible [Fri, 17 Mar 2023 17:53:43 +0000 (18:53 +0100)]
time: Fix test failure on AIX 7.2.

* m4/time.m4 (gl_FUNC_TIME): Guess that it does not work on AIX.
* doc/posix-functions/time.texi: Mention the bug on AIX.

2 years agotime: Fix test failure on native Windows.
Bruno Haible [Fri, 17 Mar 2023 12:31:11 +0000 (13:31 +0100)]
time: Fix test failure on native Windows.

* m4/time.m4 (gl_FUNC_TIME): Guess that it does not work on native
Windows.
* modules/time (Depends-on): Add gettimeofday.
* doc/posix-functions/time.texi: Mention the bug on Windows.

2 years agovasnprintf, vasnwprintf: Include all necessary workarounds in libintl.
Bruno Haible [Fri, 17 Mar 2023 11:58:57 +0000 (12:58 +0100)]
vasnprintf, vasnwprintf: Include all necessary workarounds in libintl.

* lib/vasnprintf.c: Remove IN_LIBINTL special-casing.

2 years agovasnwprintf-posix: Add tests.
Bruno Haible [Fri, 17 Mar 2023 11:53:05 +0000 (12:53 +0100)]
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.

2 years agovasnwprintf-posix: New module.
Bruno Haible [Fri, 17 Mar 2023 11:47:49 +0000 (12:47 +0100)]
vasnwprintf-posix: New module.

* m4/vasnwprintf-posix.m4: New file.
* modules/vasnwprintf-posix: New file, based on
modules/vasnprintf-posix.

2 years agovasnprintf-posix: Relicense under LGPLv2+.
Bruno Haible [Fri, 17 Mar 2023 11:42:09 +0000 (12:42 +0100)]
vasnprintf-posix: Relicense under LGPLv2+.

* modules/vasnprintf-posix (License): Change to LGPLv2+.

2 years agovasnwprintf: Add tests.
Bruno Haible [Fri, 17 Mar 2023 11:31:24 +0000 (12:31 +0100)]
vasnwprintf: Add tests.

* tests/test-vasnwprintf.c: New file, based on tests/test-vasnprintf.c.
* modules/vasnwprintf-tests: New file, based on
modules/vasnprintf-tests.

2 years agovasnwprintf: New module.
Bruno Haible [Fri, 17 Mar 2023 11:25:37 +0000 (12:25 +0100)]
vasnwprintf: New module.

* lib/vasnprintf.c: Enable more code for WIDE_CHAR_VERSION, because
snwprintf()/_snwprintf() (Windows) and swprintf() (Unix) don't return
the needed buffer size, like snprintf does.
* lib/wprintf-parse.h: New file, based on lib/printf-parse.h and
gettext/gettext-runtime/intl/wprintf-parse.h.
* lib/wprintf-parse.c: New file, based on
gettext/gettext-runtime/intl/printf.c.
* lib/vasnwprintf.h: New file, based on lib/vasnprintf.h and
gettext/gettext-runtime/intl/vasnwprintf.h.
* lib/vasnwprintf.c: New file.
* lib/asnwprintf.c: New file, based on lib/asnprintf.c.
* m4/vasnprintf.m4 (gl_FUNC_VASNWPRINTF): New macro.
(gl_PREREQ_VASNXPRINTF): New macro, extracted from gl_PREREQ_VASNPRINTF.
(gl_PREREQ_VASNPRINTF): Invoke it. Don't test for wcsnlen and mbrtowc.
(gl_PREREQ_VASNWPRINTF): New macro.
* modules/vasnwprintf: New file, based on modules/vasnprintf.

2 years agostrtol, strtoll, strtoul, strtoull: Make ISO C 23 compliant.
Bruno Haible [Thu, 16 Mar 2023 15:02:02 +0000 (16:02 +0100)]
strtol, strtoll, strtoul, strtoull: Make ISO C 23 compliant.

* lib/strtol.c (INTERNAL (strtol)): Treat 'b' and base 2 like 'x' and
base 16. Based on glibc commit 64924422a99690d147a166b4de3103f3bf3eaf6c
by Joseph Myers.
* m4/strtol.m4 (gl_FUNC_STRTOL): Test also whether parsing binary
integers works. Update cross-compilation guesses.
* m4/strtoll.m4 (gl_FUNC_STRTOLL): Likewise.
* m4/strtoul.m4 (gl_FUNC_STRTOUL): Likewise.
* m4/strtoull.m4 (gl_FUNC_STRTOULL): Likewise.
* tests/test-strtol.c (main): Add tests of parsing binary integers.
* tests/test-strtoll.c (main): Likewise.
* tests/test-strtoul.c (main): Likewise.
* tests/test-strtoull.c (main): Likewise.
* doc/posix-functions/strtol.texi: Mention the problem with parsing
binary integers.
* doc/posix-functions/strtoll.texi: Likewise.
* doc/posix-functions/strtoul.texi: Likewise.
* doc/posix-functions/strtoull.texi: Likewise.

2 years agotimegm: Document under ISO C and POSIX substitutes.
Bruno Haible [Thu, 16 Mar 2023 13:16:25 +0000 (14:16 +0100)]
timegm: Document under ISO C and POSIX substitutes.

* doc/posix-functions/timegm.texi: Renamed from doc/glibc-functions/timegm.texi.
* doc/gnulib.texi (Function Substitutes): Include timegm.texi here...
(Glibc time.h): ... not here.

2 years agostddef: Fix a compilation error on AIX 7.2 with xlclang.
Bruno Haible [Thu, 16 Mar 2023 13:04:26 +0000 (14:04 +0100)]
stddef: Fix a compilation error on AIX 7.2 with xlclang.

* lib/stddef.in.h (__CLANG_MAX_ALIGN_T_DEFINED): Define whenever we
define GNULIB_defined_max_align_t.

2 years agostddef: Define 'unreachable', for ISO C 23 compliance.
Bruno Haible [Thu, 16 Mar 2023 12:45:40 +0000 (13:45 +0100)]
stddef: Define 'unreachable', for ISO C 23 compliance.

* lib/verify.h (_GL_HAS_BUILTIN_UNREACHABLE): Don't define if already
defined.
* lib/stddef.in.h (_GL_HAS_BUILTIN_UNREACHABLE, unreachable): New
macros.
(abort): Declare if needed for unreachable.
* m4/stddef_h.m4 (gl_STDDEF_H): Test for unreachable.
* tests/test-stddef.c (test_unreachable_optimization,
test_unreachable_noreturn): New functions, based on tests/test-verify.c.
* doc/posix-headers/stddef.texi: Mention unreachable.

2 years agomaint: improve notice of time change
Paul Eggert [Fri, 10 Mar 2023 23:45:56 +0000 (15:45 -0800)]
maint: improve notice of time change

2 years agoposixtm: work around Glibc time issue
Paul Eggert [Fri, 10 Mar 2023 23:42:51 +0000 (15:42 -0800)]
posixtm: work around Glibc time issue

* modules/posixtm (Depends-on): Add time.

2 years agobootstrap: correct last change
Jim Meyering [Thu, 9 Mar 2023 17:58:35 +0000 (09:58 -0800)]
bootstrap: correct last change

* top/bootstrap-funclib.sh (autogen) [AUTORECONFFLAGS]: Do always
apply the --no-recursive option.
* build-aux/bootstrap: Regenerate.
Spotted by Bruno Haible.

2 years agobootstrap: remove code that accommodated RHEL5's old autoreconf
Jim Meyering [Thu, 9 Mar 2023 16:41:07 +0000 (08:41 -0800)]
bootstrap: remove code that accommodated RHEL5's old autoreconf

* top/bootstrap-funclib.sh (autogen) [AUTORECONFFLAGS]: RHEL5 has not
been supported since 2017. It included (and this code worked around)
a version of autoreconf that was so old it did not accept the
--no-recursive option. Drop that workaround.
* build-aux/bootstrap: Regenerate.

2 years agogettimeofday, timespec_get tests: Avoid test failure on glibc/Linux.
Bruno Haible [Wed, 8 Mar 2023 16:09:37 +0000 (17:09 +0100)]
gettimeofday, timespec_get tests: Avoid test failure on glibc/Linux.

* modules/gettimeofday-tests (Depends-on): Add 'time'.
* modules/timespec_get-tests (Depends-on): Likewise.
* tests/test-gettimeofday.c (test_consistency): Update comment.
* tests/test-timespec_get.c (main): Likewise.