doc/posix-functions


Log

Author Commit Date CI Message
Bruno Haible 9c0e7adb 2023-04-25T13:38:47 poll tests: Avoid test failure on native Windows. * tests/test-poll.c (test_pipe): Disable the POLLHUP check also on native Windows. * doc/posix-functions/poll.texi: Mention also native Windows w.r.t. POLLHUP.
Bruno Haible c254399a 2023-04-24T19:48:47 ftell, ftello: Fix recognition of pipes on native Windows. * m4/lseek.m4 (gl_FUNC_LSEEK): Update comment. * m4/ftello.m4 (gl_FUNC_FTELLO): On native Windows, set REPLACE_FTELLO=1 always. * doc/posix-functions/ftello.texi: Mention the behaviour on pipes. * doc/posix-functions/ftell.texi: Likewise. * doc/posix-functions/fgetpos.texi: Likewise.
Bruno Haible e7d12124 2023-04-19T20:07:52 doc: Add references to changes accepted for future POSIX revisions. * doc/glibc-functions/bind_textdomain_codeset.texi: Add reference to www.austingroupbugs.net issue. * doc/glibc-functions/bindtextdomain.texi: Likewise. * doc/glibc-functions/dcgettext.texi: Likewise. * doc/glibc-functions/dcngettext.texi: Likewise. * doc/glibc-functions/dgettext.texi: Likewise. * doc/glibc-functions/dngettext.texi: Likewise. * doc/glibc-functions/getentropy.texi: Likewise. * doc/glibc-functions/getresgid.texi: Likewise. * doc/glibc-functions/getresuid.texi: Likewise. * doc/glibc-functions/gettext.texi: Likewise. * doc/glibc-functions/ngettext.texi: Likewise. * doc/glibc-functions/posix_spawn_file_actions_addchdir_np.texi: Likewise. * doc/glibc-functions/posix_spawn_file_actions_addfchdir_np.texi: Likewise. * doc/glibc-functions/setresgid.texi: Likewise. * doc/glibc-functions/setresuid.texi: Likewise. * doc/glibc-functions/textdomain.texi: Likewise. * doc/posix-functions/asctime_r.texi: Likewise. * doc/posix-functions/ctime_r.texi: Likewise.
Bruno Haible ccb59e4c 2023-04-19T17:59:03 wcsncmp: Work around two ISO C compliance bugs on several platforms. * lib/wchar.in.h (wcsncmp): Consider REPLACE_WCSNCMP. * lib/wcsncmp-impl.h (wcsncmp): Don't assume that the two wide characters are in the range 0..INT_MAX. * m4/wcsncmp.m4 (gl_FUNC_WCSNCMP): Test whether wcsncmp works for all wide characters. Set REPLACE_WCSNCMP. * m4/wchar_h.m4 (gl_WCHAR_H_DEFAULTS): Initialize REPLACE_WCSNCMP. * modules/wchar (Makefile.am): Substitute REPLACE_WCSNCMP. * modules/wcsncmp (Status, Notice): Un-obsolete this module. (configure.ac): Consider REPLACE_WCSNCMP. * doc/posix-functions/wcsncmp.texi: Mention the two bugs.
Bruno Haible 4b440d35 2023-04-19T02:14:09 wcscmp: Work around two ISO C compliance bugs on several platforms. * lib/wchar.in.h (wcscmp): Consider REPLACE_WCSCMP. * lib/wcscmp-impl.h (wcscmp): Don't assume that the two wide characters are in the range 0..INT_MAX. * m4/wcscmp.m4 (gl_FUNC_WCSCMP): Test whether wcscmp works for all wide characters. Set REPLACE_WCSCMP. * m4/wchar_h.m4 (gl_WCHAR_H_DEFAULTS): Initialize REPLACE_WCSCMP. * modules/wchar (Makefile.am): Substitute REPLACE_WCSCMP. * modules/wcscmp (Status, Notice): Un-obsolete this module. (configure.ac): Consider REPLACE_WCSCMP. * doc/posix-functions/wcscmp.texi: Mention the two bugs.
Bruno Haible 6c28538c 2023-04-19T01:01:56 wmemcmp: Work around ISO C compliance bug on several platforms. * lib/wchar.in.h (wmemcmp): Consider REPLACE_WMEMCMP. * lib/wmemcmp-impl.h (wmemcmp): Don't assume that the two wide characters are in the range 0..INT_MAX. * m4/wmemcmp.m4 (gl_FUNC_WMEMCMP): Test whether wmemcmp works for all wide characters. Set REPLACE_WMEMCMP. * m4/wchar_h.m4 (gl_WCHAR_H_DEFAULTS): Initialize REPLACE_WMEMCMP. * modules/wchar (Makefile.am): Substitute REPLACE_WMEMCMP. * modules/wmemcmp (configure.ac): Consider REPLACE_WMEMCMP. * doc/posix-functions/wmemcmp.texi: Mention the bug.
Bruno Haible 5c9f32c9 2023-04-19T00:17:15 doc: Update platform list for posix_spawnp. * doc/posix-functions/posix_spawnp.texi: Update platform list.
Bruno Haible b397f58b 2023-04-18T15:01:22 doc: Mention a Cygwin 3.4.6 bug. * doc/posix-functions/readlinkat.texi: Mention a readlinkat bug on Cygwin < 3.4.7.
Bruno Haible 38489e5c 2023-04-18T13:24:42 ilogbl: Work around a Cygwin 3.4.6 bug. * m4/ilogbl.m4 (gl_FUNC_ILOGBL_WORKS): Also test the value of ilogbl(NaN). * doc/posix-functions/ilogbl.texi: Mention the new Cygwin bug.
Paul Eggert 4b604905 2023-04-09T18:16:57 doc: improve cross-refs for year 2038 issue
Bruno Haible 98931826 2023-04-09T23:45:43 doc: Mention a NetBSD bug. * doc/posix-functions/towlower.texi: Mention NetBSD bug 57339. * doc/posix-functions/towupper.texi: Likewise.
Bruno Haible de3b8cf5 2023-04-09T20:34:48 vasnwprintf-posix: More details about the glibc bug. * doc/posix-functions/swprintf.texi: Add comment. * m4/printf.m4 (gl_SWPRINTF_DIRECTIVE_LA): Update cross-compilation guess.
Bruno Haible e5870f71 2023-04-08T18:15:07 doc: Mention another Haiku bug. * doc/posix-functions/open.texi: Mention a Haiku bug with symlinks.
Bruno Haible 0a0fb288 2023-04-07T23:54:24 vasnwprintf-posix: Work around %La bug in glibc 2.15 and Haiku. * m4/printf.m4 (gl_SWPRINTF_DIRECTIVE_LA): New macro. * m4/vasnprintf.m4 (gl_PREREQ_VASNWPRINTF): Invoke gl_SWPRINTF_DIRECTIVE_LA and define NEED_WPRINTF_DIRECTIVE_LA accordingly. * lib/vasnprintf.c: When compiling vasnwprintf, if NEED_WPRINTF_DIRECTIVE_LA, handle the %La and %LA directives ourselves. * doc/posix-functions/swprintf.texi: Mention the %La bug.
Bruno Haible b17857d9 2023-04-06T01:10:30 doc: Add references to registered Haiku bugs. * doc/posix-functions/call_once.texi: Mention Haiku bug. * doc/posix-functions/duplocale.texi: Likewise. * doc/posix-functions/freelocale.texi: Likewise. * doc/posix-functions/getlogin_r.texi: Likewise. * doc/posix-functions/initstate.texi: Likewise. * doc/posix-functions/mbrtoc32.texi: Likewise. * doc/posix-functions/strxfrm.texi: Likewise. * doc/posix-headers/math.texi: Update.
Bruno Haible 09a9ccc9 2023-04-03T14:24:37 mbrtoc32 tests: Add comment. * m4/mbrtowc.m4 (gl_MBRTOWC_C_LOCALE): Add comment. * m4/mbrtoc32.m4 (gl_MBRTOC32_C_LOCALE): Add comment. * tests/test-mbrtoc32.c: Add comment. * tests/test-mbrtoc32-5.sh: Use symmetric coding style. * doc/posix-functions/mbrtoc32.texi: Update.
Bruno Haible bbf0d3fd 2023-04-01T14:51:22 vasnwprintf-posix: Fix behaviour in the C locale. * lib/vasnprintf.c (VASNPRINTF): If NEED_WPRINTF_DIRECTIVE_C is set, implement the 'c' directive here. * m4/vasnprintf.m4 (gl_PREREQ_VASNWPRINTF): Invoke gl_MBRTOWC_C_LOCALE. If mbrtowc is buggy in the C locale, define NEED_WPRINTF_DIRECTIVE_C. * modules/vasnwprintf (Files): Add m4/mbrtowc.m4. * tests/test-vasnwprintf-posix.c (test_function): Add tests of %s and %c in the C locale. * doc/posix-functions/fwprintf.texi: Mention the C locale behaviour bug. * doc/posix-functions/swprintf.texi: Likewise. * doc/posix-functions/vfwprintf.texi: Likewise. * doc/posix-functions/vswprintf.texi: Likewise. * doc/posix-functions/vwprintf.texi: Likewise. * doc/posix-functions/wprintf.texi: Likewise.
Bruno Haible 7595a881 2023-03-31T00:27:20 mbstowcs: New module. * lib/stdlib.in.h (mbstowcs): New declaration. * lib/mbstowcs.c: New file, based on lib/mbstoc32s.c. * m4/mbstowcs.m4: New file. * m4/stdlib_h.m4 (gl_STDLIB_H): Test whether mbstowcs is declared. (gl_STDLIB_H_REQUIRE_DEFAULTS): Initialize GNULIB_MBSTOWCS. (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_MBSTOWCS. * modules/stdlib (Makefile.am): Substitute GNULIB_MBSTOWCS, REPLACE_MBSTOWCS. * modules/mbstowcs: New file. * tests/test-stdlib-c++.cc (mbstowcs): Check signature. * doc/posix-functions/mbstowcs.texi: Mention the C locale behaviour bug and the new module.
Bruno Haible 8906a510 2023-03-30T23:15:52 mbsnrtowcs: Fix behaviour in the C locale. * m4/mbsnrtowcs.m4 (gl_FUNC_MBSNRTOWCS): Invoke gl_MBRTOWC_C_LOCALE. If mbrtowc is buggy in the C locale, override also mbsnrtowcs. * modules/mbsnrtowcs (Files): Add m4/mbrtowc.m4. * tests/test-mbsnrtowcs.c (main): Add a test of the C locale, based on tests/test-mbsrtowcs.c. * tests/test-mbsnrtowcs5.sh: New file, based on tests/test-mbrtowc5.sh. * modules/mbsnrtowcs-tests (Files): Add it. (Makefile.am): Test it. * doc/posix-functions/mbsnrtowcs.texi: Mention the C locale behaviour bug.
Bruno Haible 63861afa 2023-03-30T23:12:50 mbsrtowcs: Fix behaviour in the C locale. * m4/mbsrtowcs.m4 (gl_FUNC_MBSRTOWCS): Invoke gl_MBRTOWC_C_LOCALE. If mbrtowc is buggy in the C locale, override also mbsrtowcs. * modules/mbsrtowcs (Files): Add m4/mbrtowc.m4. * tests/test-mbsrtowcs.c (main): Add a test of the C locale, based on tests/test-mbrtowc.c. * tests/test-mbsrtowcs5.sh: New file, based on tests/test-mbrtowc5.sh. * modules/mbsrtowcs-tests (Files): Add it. (Makefile.am): Test it. * doc/posix-functions/mbsrtowcs.texi: Mention the C locale behaviour bug.
Bruno Haible 1ab07af5 2023-03-30T17:55:31 mbrlen: Add tests. * tests/test-mbrlen1.sh: New file, based on tests/test-mbrtowc1.sh. * tests/test-mbrlen2.sh: New file, based on tests/test-mbrtowc2.sh. * tests/test-mbrlen3.sh: New file, based on tests/test-mbrtowc3.sh. * tests/test-mbrlen4.sh: New file, based on tests/test-mbrtowc4.sh. * tests/test-mbrlen5.sh: New file, based on tests/test-mbrtowc5.sh. * tests/test-mbrlen.c: New file, based on tests/test-mbrtowc.c. * tests/test-mbrlen-w32-1.sh: New file, based on tests/test-mbrtowc-w32-1.sh. * tests/test-mbrlen-w32-2.sh: New file, based on tests/test-mbrtowc-w32-2.sh. * tests/test-mbrlen-w32-3.sh: New file, based on tests/test-mbrtowc-w32-3.sh. * tests/test-mbrlen-w32-4.sh: New file, based on tests/test-mbrtowc-w32-4.sh. * tests/test-mbrlen-w32-5.sh: New file, based on tests/test-mbrtowc-w32-5.sh. * tests/test-mbrlen-w32-6.sh: New file, based on tests/test-mbrtowc-w32-6.sh. * tests/test-mbrlen-w32-7.sh: New file, based on tests/test-mbrtowc-w32-7.sh. * tests/test-mbrlen-w32.c: New file, based on tests/test-mbrtowc-w32.c. * modules/mbrlen-tests: New file, based on modules/mbrtowc-tests. * doc/posix-functions/mbrlen.texi: Update.
Bruno Haible 11fe27f7 2023-03-30T13:25:20 btowc: Fix behaviour in the C locale. * lib/btowc.c: Include <string.h> (btowc): Use mbrtowc instead of mbtowc when possible. * m4/btowc.m4 (gl_FUNC_BTOWC): Test for the mingw bug in the C locale. Invoke gl_MBRTOWC_C_LOCALE. If mbrtowc is buggy in the C locale, override also btowc. (gl_PREREQ_BTOWC): Test whether mbrtowc exists. * modules/btowc (Files): Add m4/mbrtowc.m4. (Depends-on): Add mbrtowc. * tests/test-btowc.c (main): Add a test of the C locale, based on tests/test-mbrtowc.c. * tests/test-btowc3.sh: New file, based on tests/test-mbrtowc5.sh. * modules/btowc-tests (Files): Add it. (Makefile.am): Test it. * doc/posix-functions/btowc.texi: Mention the two C locale behaviour bugs and that they are worked around.
Bruno Haible 60745587 2023-03-30T13:20:29 mbrtowc tests: Add comment. * tests/test-mbrtowc.c: Add comment. * tests/test-mbrtowc5.sh: Use symmetric coding style. * doc/posix-functions/mbrtowc.texi: Update.
Bruno Haible febee7a1 2023-03-28T14:06:06 doc: Fix placement of memset_explicit node. * doc/posix-functions/memset_explicit.texi: Define a section, not a subsection.
Bruno Haible 63ccbd65 2023-03-28T13:13:55 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.
Bruno Haible 9411c5e4 2023-03-27T15:41:30 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.
Bruno Haible 53370c23 2023-03-25T20:54:29 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.
Bruno Haible 480a59ba 2023-03-24T22:14:09 *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.
Bruno Haible 75e63081 2023-03-24T12:04:20 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.
Bruno Haible 459992e2 2023-03-24T12:00:23 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.
Bruno Haible 171d2a5f 2023-03-24T11:55:38 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.
Bruno Haible 9b58230c 2023-03-24T11:46:24 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.
Bruno Haible 005377bd 2023-03-24T11:39:47 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.
Bruno Haible 3968e4d4 2023-03-24T11:35:26 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.
Bruno Haible 0139749c 2023-03-24T11:22:20 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.
Bruno Haible 21cb2b8e 2023-03-24T11:17:22 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.
Bruno Haible f18c0053 2023-03-24T11:12:47 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.
Bruno Haible 1d4cd9ae 2023-03-24T11:05:38 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.
Bruno Haible 6b8f2da2 2023-03-22T19:39:33 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.
Bruno Haible 4928ebfa 2023-03-21T15:49:06 *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.
Bruno Haible 1632b9ad 2023-03-20T03:26:44 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.
Bruno Haible bb7cf2b6 2023-03-17T22:45:56 *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.
Bruno Haible 1314bf91 2023-03-17T18:53:43 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.
Bruno Haible 1d546b1c 2023-03-17T13:31:11 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.
Bruno Haible 4e38f4a0 2023-03-16T16:02:02 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.
Bruno Haible 4873f857 2023-03-16T14:16:25 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.
Bruno Haible cbc0c1cd 2023-03-08T17:00:48 time: New module. * lib/time.in.h (time): New declaration. * lib/time.c: New file. * m4/time_h.m4 (gl_TIME_H_REQUIRE_DEFAULTS): Initialize GNULIB_TIME. (gl_TIME_H_DEFAULTS): Initialize REPLACE_TIME. * m4/time.m4: New file. * modules/time-h (Makefile.am): Substitute GNULIB_TIME, REPLACE_TIME. * modules/time: New file. * tests/test-time-h-c++.cc: Check the signature of GNULIB_NAMESPACE::time. * doc/posix-functions/time.texi: Mention the glibc problem and the 'time' module.
Paul Eggert b1d7d87c 2023-03-05T16:25:49 stdio: suppress macOS 13 sprintf warnings * lib/stdio.in.h (_POSIX_C_SOURCE, _GL_DEFINED__POSIX_C_SOURCE): Suppress deprecation warnings for sprintf and vsprintf that were introduced in macOS 13. These are not useful for Gnulib itself, and are more likely than not to be merely an annoyance for Gnulib-using code.
Paul Eggert 7352d9fe 2023-02-19T00:05:24 lseek: avoid SEEK_HOLE bugs in FreeBSD, macOS This attempts to fix <https://bugs.gnu.org/61386>, a bug in GNU cp caused by a serious data corruption bug in FreeBSD and macOS. * doc/posix-functions/lseek.texi: Mention the bug. * lib/unistd.in.h (SEEK_DATA, SEEK_HOLE): Undef in macOS < 13 and FreeBSD < 14. FreeBSD fixed the bug sometime during FreeBSD 13 <https://bugs.freebsd.org/256205>, so the "FreeBSD < 14" is conservative. It’s unknown when Apple will fix macOS so use macOS "9999" as a placeholder. * m4/lseek.m4 (gl_FUNC_LSEEK): Replace lseek if on one of the above platforms.
Bruno Haible 52a7e992 2023-02-04T02:40:59 doc: Update regarding NetBSD. * doc/posix-functions/sigprocmask.texi: Mention a NetBSD 9.0 bug. * doc/posix-functions/pthread_sigmask.texi: Likewise.
Bruno Haible 653bc7d2 2023-01-16T14:34:56 mbrtowc, mbrtoc32 tests: Avoid test failure on Android ≥ 5.0. * tests/test-mbrtowc.c (main): On Android 5.0 or newer, when testing the "C" locale, verify that the encoding is UTF-8. * tests/test-mbrtoc32.c (main): Likewise. * doc/posix-functions/setlocale.texi: Mention the Android problems.
Bruno Haible b19433a9 2023-01-11T20:39:55 perror: Fix "perror clobbers strerror's buffer" problem on Android. * m4/perror.m4 (gl_FUNC_PERROR): Set REPLACE_PERROR to 1 on Android. * doc/posix-functions/perror.texi: Mention the Android problem.
Bruno Haible cf2937d4 2023-01-05T16:36:52 Recognize functions added in future versions of Android. * m4/gnulib-common.m4 (gl_CHECK_FUNCS_ANDROID): New macro. * m4/aligned_alloc.m4 (gl_FUNC_ALIGNED_ALLOC): Use gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/freading.m4 (gl_FUNC_FREADING): Likewise. * m4/fseterr.m4 (gl_FUNC_FSETERR): Likewise. * m4/fwriting.m4 (gl_FUNC_FWRITING): Likewise. * m4/getentropy.m4 (gl_FUNC_GETENTROPY): Likewise. * m4/getlogin_r.m4 (gl_CHECK_FUNCS_ANDROID): Likewise. * m4/getrandom.m4 (gl_FUNC_GETRANDOM): Likewise. * m4/glob.m4 (gl_PREREQ_GLOB): Likewise. * m4/spawn_h.m4 (gl_HAVE_POSIX_SPAWN): Likewise. * doc/glibc-functions/getentropy.texi: Mark function as existing in Android 9.0. * doc/glibc-functions/getrandom.texi: Likewise. * doc/posix-functions/pthread_attr_getinheritsched.texi: Likewise. * doc/posix-functions/pthread_attr_setinheritsched.texi: Likewise.
Bruno Haible 0ff4d2d5 2023-01-03T19:48:59 ffs: Document Android problem. * doc/posix-functions/ffs.texi: Mention Android problem. * m4/ffs.m4: Update comment.
Paul Eggert ea26437b 2022-12-24T00:10:23 doc: C2x → C23
Paul Eggert ee37744d 2022-12-21T13:25:39 asctime, ctime: deprecate C23 deprecates asctime and ctime, so deprecate them in Gnulib too. * NEWS, doc/posix-functions/asctime.texi: * doc/posix-functions/ctime.texi: Mention this. * lib/time.in.h (ctime): Deprecate any ctime replacement. * modules/ctime: Now obsolete.
Pádraig Brady 2f7479a1 2022-12-02T14:45:23 doc: poll: document poll of special files not supported on macOS * doc/posix-functions/poll.texi: Reinstate (updated) macOS info, removed in recent cleanup re removal of support for Mac OS X <= 10.4. * m4/poll.m4: Update macOS to latest tested version.
Paul Eggert e4603ee9 2022-11-27T20:52:04 memset_explicit: new module * doc/posix-functions/memset_explicit.texi, lib/memset_explicit.c: * m4/memset_explicit.m4, modules/memset_explicit: * modules/memset_explicit-tests, tests/test-memset_explicit.c: New files. * lib/string.in.h (memset_explict): New decl. * m4/string_h.m4 (gl_STRING_H, gl_STRING_H_REQUIRE_DEFAULTS) (gl_STRING_H_DEFAULTS): * modules/string (string.h): Support memset_explicit.
Paul Eggert 48405111 2022-11-03T11:43:45 doc: mention macOS war on sprintf * doc/posix-functions/sprintf.texi, doc/posix-functions/vsnprintf.texi: Mention that these functions are deprecated.
Bruno Haible 841e32cc 2022-10-17T02:44:54 getdelim: Work around buggy implementation on macOS 10.13. * doc/posix-functions/getdelim.texi: Mention the macOS bug. * m4/getdelim.m4 (gl_FUNC_GETDELIM): Let the "checking for working getdelim function" test answer 'no' on macOS.
Bruno Haible bfcd9671 2022-09-04T13:26:19 nanosleep: Work around bug on newer 32-bit mingw. * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Test for 32-bit mingw bug. * tests/test-nanosleep.c (main): Add another test. * doc/posix-functions/nanosleep.texi: Mention the mingw bug.
Bruno Haible 73ea8982 2022-09-04T04:48:31 fmal: Work around glibc 2.17 bug on x86_64. * m4/fmal.m4 (gl_FUNC_FMAL_WORKS): Test against bug seen on glibc 2.17 x86_64. * doc/posix-functions/fmal.texi: Update info.
Bruno Haible 5d2d12d7 2022-07-14T21:57:16 doc: Fix typo. Reported by Eric Gallager <egall@gwmail.gwu.edu> in <https://lists.gnu.org/archive/html/bug-gnulib/2022-07/msg00045.html>. * doc/posix-functions/mmap.texi: Add parenthesis.
Bruno Haible 2f1bb591 2022-06-22T01:43:52 chmod: New module. * lib/sys_stat.in.h (chmod): Declare when GNULIB_CHMOD is 1. * lib/chmod.c: New file, based on lib/lchmod.c. * m4/chmod.m4: New file, based on m4/fchmodat.m4. * m4/sys_stat_h.m4 (gl_SYS_STAT_H): Test whether chmod is declared. (gl_SYS_STAT_H_REQUIRE_DEFAULTS): Initialize GNULIB_CHMOD. (gl_SYS_STAT_H_DEFAULTS): Initialize REPLACE_CHMOD. * modules/sys_stat (Makefile.am): Substitute GNULIB_CHMOD, REPLACE_CHMOD. * modules/chmod: New file, based on modules/lchmod. * doc/posix-functions/chmod.texi: Mention the new module and the problems on IRIX and Windows.
Paul Eggert 8f71b269 2022-06-19T23:30:01 lchmod: port back to AIX 7.2 Problem reported by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2022-06/msg00075.html * lib/lchmod.c: Include string.h, for strlen. (lchmod): Do not depend on HAVE_READLINK since we now depend on the readlink module. Check for AIX 7.2 bug. * m4/lchmod.m4 (gl_PREREQ_LCHMOD): Do not check for readlink since we now depend on the readlink module. * modules/lchmod (Depends-on): Depend on readlink.
Paul Eggert 34a93be8 2022-04-26T14:54:26 glob: port to NetBSD 9.2 Problem reported by Benno Schulenberg in: https://lists.gnu.org/r/bug-gnulib/2022-04/msg00052.html * doc/posix-functions/dirfd.texi: Document NetBSD 9.2 portability bugs. Remove an old common about errno that is no longer true of POSIX 2018. * lib/glob.c (glob_in_dir): Convert dirfd arg from void * to DIR * before passing it to dirfd.
Paul Eggert 69822de4 2022-01-27T11:36:00 alignalloc: work around AddressSanitizer bug * doc/posix-functions/aligned_alloc.texi (aligned_alloc): Mention AddressSanitizer bug. * lib/alignalloc.h (ALIGNALLOC_VIA_ALIGNED_ALLOC): Define to 0 if AddressSanitizer is in use. * tests/test-alignalloc.c (test_alignalloc): New function, which tests for non-aligned sizes too. (main): Use it. Don’t bother checking for alignments greater than 16 MiB, as this flummoxes AddressSanitizer and there seems little point to testing them.
Paul Eggert d45d1618 2021-12-28T12:03:37 clock_getres: document portability issues better * doc/posix-functions/clock_getres.texi: * doc/posix-functions/timespec_getres.texi: Document problems with timestamp resolution.
Paul Eggert af4148ce 2021-12-28T11:39:17 timespec_getres: new module * lib/time.in.h (timespec_getres): New decl. * lib/timespec_getres.c, m4/timespec_getres.m4: * modules/timespec_getres, modules/timespec_getres-tests: * tests/test-timespec_getres.c: New files. * m4/time_h.m4 (gl_TIME_H_REQUIRE_DEFAULTS, gl_TIME_H_DEFAULTS): * modules/time (time.h): Support timespec_getres.
Paul Eggert 0f42dafa 2021-12-28T11:38:33 gettime-res: new module * lib/gettime-res.c, modules/gettime-res: New files. * lib/timespec.h (gettime_res): New decl. * m4/clock_time.m4 (gl_CLOCK_TIME): Also check for clock_getres. * m4/gettime.m4 (gl_GETTIME_RES): New macro.
Paul Eggert 17936033 2021-12-28T11:38:32 clock_gettime: improve doc
Bruno Haible 39685a37 2021-12-26T12:46:40 pselect: Fix compilation error in C++ mode on AIX 7. * lib/sys_select.in.h (pselect): Use _GL_CXXALIAS_SYS_CAST instead of _GL_CXXALIAS_SYS. * doc/posix-functions/pselect.texi: Mention the AIX problem.
Bruno Haible 2a0fb7f6 2021-12-24T16:29:58 doc: Small updates. * doc/glibc-functions/ptsname_r.texi: Update info regarding Mac OS X. * doc/posix-functions/getlogin_r.texi: Update info regarding FreeBSD.
Paul Eggert 4db8db34 2021-11-15T15:08:25 lseek: port around macOS SEEK_DATA glitch Problem reported by Sudhip Nashi (Bug#51857). * doc/posix-functions/lseek.texi (lseek): Mention macOS SEEK_DATA issue. * lib/lseek.c (rpl_lseek): Work around macOS portability glitch. * m4/lseek.m4 (gl_FUNC_LSEEK): Replace lseek on Darwin. * modules/lseek (Depends-on): Depend on msvc-nothrow and fstat only if needed.
Bruno Haible 8f4538a5 2021-08-14T22:07:33 doc: Update for glibc 2.34. * doc/posix-functions/timespec_getres.texi: New file. * doc/glibc-functions/_Fork.texi: New file. * doc/glibc-functions/closefrom.texi: New file. * doc/glibc-functions/dn_comp.texi: New file. * doc/glibc-functions/dn_skipname.texi: New file. * doc/glibc-functions/execveat.texi: New file. * doc/glibc-functions/posix_spawn_file_actions_addclosefrom_np.texi: New file. * doc/glibc-functions/res_dnok.texi: New file. * doc/glibc-functions/res_hnok.texi: New file. * doc/glibc-functions/res_mailok.texi: New file. * doc/glibc-functions/res_nmkquery.texi: New file. * doc/glibc-functions/res_nquery.texi: New file. * doc/glibc-functions/res_nquerydomain.texi: New file. * doc/glibc-functions/res_nsearch.texi: New file. * doc/glibc-functions/res_nsend.texi: New file. * doc/glibc-functions/res_ownok.texi: New file. * doc/glibc-functions/res_send.texi: New file. * doc/gnulib.texi: Include them. * doc/glibc-functions/inet_neta.texi: Remove file. * doc/glibc-functions/malloc_get_state.texi: Remove file. * doc/glibc-functions/malloc_set_state.texi: Remove file. * doc/glibc-functions/pthread_mutex_consistent_np.texi: Remove file. * doc/glibc-functions/pthread_mutexattr_getrobust_np.texi: Remove file. * doc/glibc-functions/pthread_mutexattr_setrobust_np.texi: Remove file. * doc/glibc-functions/pthread_yield.texi: Remove file. * doc/gnulib.texi: Don't include them. * doc/glibc-headers/resolv.texi: Update. * doc/pastposix-functions/h_errno.texi: Likewise. * doc/posix-functions/*.texi: Likewise. * doc/glibc-functions/*.texi: Likewise.
Paul Eggert 9c4b4b08 2021-05-20T11:24:52 fstatat: doc improvement * doc/posix-functions/fstatat.texi (fstatat): Mention AT_EMPTY_PATH when talking about empty strings.
Bruno Haible 301426c0 2021-05-13T21:23:09 fstatat: Document a glibc 2.7 bug. * doc/posix-functions/fstatat.texi: Document an old glibc 2.7 bug.
Bruno Haible 4d42b019 2021-05-13T15:48:38 posix_spawn, posix_spawnp: Fix build error on Minix 3.3. * m4/posix_spawn.m4 (gl_POSIX_SPAWN_BODY): If posix_spawn does not exist but is declared, set REPLACE_POSIX_SPAWN. * doc/posix-functions/posix_spawn.texi: Update platforms list. * doc/posix-functions/posix_spawnp.texi: Likewise.
Bruno Haible 295626fb 2021-04-18T13:58:56 malloc-posix, realloc-posix, calloc-posix: Document affected platforms. * doc/posix-functions/malloc.texi: Re-add platforms list. * doc/posix-functions/realloc.texi: Likewise. * doc/posix-functions/calloc.texi: Likewise.
Paul Eggert 58fe1054 2021-04-17T18:44:25 malloc, etc.: check for ptrdiff_t overflow In glibc 2.30 and later, malloc, realloc and calloc reject attempts to create objects larger than PTRDIFF_MAX bytes. This patch changes malloc-gnu etc. to support this behavior on non-GNU hosts. It also makes this change for malloc-posix etc. since it’s a safety measure that ought to be in POSIX (perhaps we can talk them into that...). In writing this patch I found a complicated set of code that had accumulated over the years, some written by yours truly. I got rid of the code I couldn’t see the need for nowadays. Among other things, the GNU realloc behavior is no longer incompatible with the C standard, because in C17 the latter was relaxed to allow the former. If I went too far in cleaning up, the old stuff can be resurrected. This change is mostly for 32-bit platforms, since practical 64-bit platforms cannot create objects larger than PTRDIFF_MAX bytes anyway. * doc/posix-functions/calloc.texi: * doc/posix-functions/malloc.texi: * doc/posix-functions/realloc.texi: Mention ptrdiff_t issues, and go into more detail about what the gnu extension module does. * doc/posix-functions/realloc.texi: Fix now-obsolete commentary about C99 vs glibc, as C17 allows the glibc behavior and POSIX will follow suit when it gets around to it. * lib/calloc.c, lib/malloc.c, lib/realloc.c: Simplify by always supplying a GNU-compatible version, as that suffices for correctness and is good enough for performance. Include xalloc-oversized.h, and use xalloc_oversized to check for ptrdiff_t overflow. (NEED_CALLOC_GNU, NEED_MALLOC_GNU, NEED_REALLOC_GNU): Remove. * m4/calloc.m4 (_AC_FUNC_CALLOC_IF): * m4/malloc.m4 (_AC_FUNC_MALLOC_IF): * m4/realloc.m4 (_AC_FUNC_REALLOC_IF): Don’t start with a newline. Fix message to match behavior. * m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Don’t test for size_t overflow, as the ptrdiff_t test is good enough. * m4/calloc.m4 (gl_FUNC_CALLOC_GNU): * m4/malloc.m4 (gl_FUNC_MALLOC_GNU): * m4/realloc.m4 (gl_FUNC_REALLOC_GNU): Do not define HAVE_CALLOC_GNU, HAVE_MALLOC_GNU, HAVE_REALLOC_GNU. It’s not worth the aggravation of maintaining these, as they are confusing (they don’t really mean GNU-compatible anyway). Don’t bother testing for GNU behavior if we have already decided to replace the function, since the replacement is always GNUish. * m4/calloc.m4 (gl_FUNC_CALLOC_POSIX): * m4/realloc.m4 (gl_FUNC_REALLOC_POSIX): Defer to gl_FUNC_MALLOC_POSIX. * m4/malloc.m4 (gl_FUNC_MALLOC_PTRDIFF, gl_CHECK_MALLOC_PTRDIFF): New macros. (gl_FUNC_MALLOC_POSIX): Use them to check for ptrdiff_t overflow. * modules/calloc-gnu, modules/malloc-gnu, modules/realloc-gnu: Remove no-longer-needed module indicators. * modules/calloc-posix, modules/malloc-posix, modules/realloc-posix: Depend on xalloc-oversized. * modules/malloc-posix: Require gl_FUNC_MALLOC_POSIX instead of calling it directly, so that other code can require it. * modules/realloc-posix: Depend on free-posix and malloc-posix.
Bruno Haible 04a9dd8f 2021-04-17T15:29:16 doc: Update for FreeBSD 11.0, 12.0, 13.0. * doc/posix-headers/*.texi: Update. * doc/glibc-headers/*.texi: Update. * doc/posix-functions/*.texi: Likewise. * doc/pastposix-functions/*.texi: Likewise. * doc/glibc-functions/*.texi: Likewise. * m4/ptsname_r.m4 (gl_FUNC_PTSNAME_R): Update cross-compilation guess.
Bruno Haible 9a120afc 2021-04-04T12:14:59 doc: Fix syntax error (regression from 2021-04-02). * doc/posix-functions/strtol.texi: Put @item inside @itemize block.
Bruno Haible ea1816fd 2021-04-02T20:46:15 strtoll: Work around a bug on native Windows and Minix. * lib/stdlib.in.h (strtoll): Override if REPLACE_STRTOLL is 1. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_STRTOLL. * m4/strtoll.m4 (gl_FUNC_STRTOLL): Test whether strtoll works. Set REPLACE_STRTOLL. * modules/stdlib (Makefile.am): Substitute REPLACE_STRTOLL. * modules/strtoll (configure.ac): Test REPLACE_STRTOLL. * tests/test-strtoll.c (main): Add tests of hexadecimal integer syntax. * doc/posix-functions/strtoll.texi: Mention the bug.
Bruno Haible 705c2369 2021-04-02T20:42:13 strtol: Work around a bug on native Windows and Minix. * lib/stdlib.in.h (strtol): New declaration. * m4/stdlib_h.m4 (gl_STDLIB_H): Test whether strtol is declared. (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_STRTOL, HAVE_STRTOL, REPLACE_STRTOL. * m4/strtol.m4 (gl_FUNC_STRTOL): Require gl_STDLIB_H_DEFAULTS. Test whether strtol works. Set REPLACE_STRTOL. * modules/stdlib (Makefile.am): Substitute GNULIB_STRTOL, HAVE_STRTOL, REPLACE_STRTOL. * modules/strtol (Status, Notice): Remove. (Depends-on): Add stdlib. (configure.ac): Test HAVE_STRTOL and REPLACE_STRTOL. Invoke gl_STDLIB_MODULE_INDICATOR. * tests/test-strtol.c (main): Add tests of hexadecimal integer syntax. * doc/posix-functions/strtol.texi: Mention the bug.
Bruno Haible 837ffb5e 2021-04-02T20:14:28 strtoull: Work around a bug on native Windows and Minix. * lib/stdlib.in.h (strtoull): Override if REPLACE_STRTOULL is 1. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_STRTOULL. * m4/strtoull.m4 (gl_FUNC_STRTOULL): Test whether strtoull works. Set REPLACE_STRTOULL. * modules/stdlib (Makefile.am): Substitute REPLACE_STRTOULL. * modules/strtoull (configure.ac): Test REPLACE_STRTOULL. * tests/test-strtoull.c (main): Add tests of hexadecimal integer syntax. * doc/posix-functions/strtoull.texi: Mention the bug.
Bruno Haible cbff21f9 2021-04-02T19:56:28 strtoul: Work around a bug on native Windows and Minix. Reported by Eric Blake <eblake@redhat.com> in <https://lists.gnu.org/archive/html/bug-gnulib/2021-03/msg00082.html>. * lib/stdlib.in.h (strtoul): New declaration. * m4/stdlib_h.m4 (gl_STDLIB_H): Test whether strtoul is declared. (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_STRTOUL, HAVE_STRTOUL, REPLACE_STRTOUL. * m4/strtoul.m4 (gl_FUNC_STRTOUL): Require gl_STDLIB_H_DEFAULTS. Test whether strtoul works. Set REPLACE_STRTOUL. * modules/stdlib (Makefile.am): Substitute GNULIB_STRTOUL, HAVE_STRTOUL, REPLACE_STRTOUL. * modules/strtoul (Status, Notice): Remove. (Depends-on): Add stdlib. (configure.ac): Test HAVE_STRTOUL and REPLACE_STRTOUL. Invoke gl_STDLIB_MODULE_INDICATOR. * tests/test-strtoul.c (main): Add tests of hexadecimal integer syntax. * doc/posix-functions/strtoul.texi: Mention the bug.
Bruno Haible 92ee1fe6 2021-03-22T13:47:44 doc: Mention an open glibc bug. * doc/posix-functions/mbrtowc.texi: Mention the possible out-of-range wchar_t values returned by this function on glibc. * doc/posix-functions/mbtowc.texi: Likewise.
Bruno Haible 0b06bc0c 2021-03-21T16:03:57 doc: More updates. * doc/glibc-functions/sethostname.texi: Update regarding macOS. * doc/glibc-functions/sethostname.texi: List the affected platforms.
Bruno Haible 79c4db53 2021-03-21T14:56:02 doc: Update for macOS 11.1. * doc/posix-headers/*.texi: Update. * doc/glibc-headers/*.texi: Update. * doc/posix-functions/*.texi: Likewise. * doc/pastposix-functions/*.texi: Likewise. * doc/glibc-functions/*.texi: Likewise. * m4/aligned_alloc.m4 (gl_FUNC_ALIGNED_ALLOC): Update cross-compilation guess.
Bruno Haible 49855b3b 2021-03-21T12:30:33 ftell: Document bug in macOS >= 10.15. * doc/posix-functions/ftell.texi: Mention the macOS bug.
Bruno Haible a646e362 2021-03-21T03:46:05 ftello: Work around bug in macOS >= 10.15. Reported by Martin Storsjö <martin@martin.st> in <https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00002.html>. * m4/ungetc.m4 (gl_FUNC_UNGETC_WORKS): On macOS, don't define FUNC_UNGETC_BROKEN. Instead, set gl_ftello_broken_after_ungetc to yes. * m4/ftello.m4 (gl_FUNC_FTELLO): Invoke gl_FUNC_UNGETC_WORKS, and arrange to provide the workaround if ftello is broken after ungetc. * lib/ftello.c: Include <errno.h>, intprops.h. (ftello) [FTELLO_BROKEN_AFTER_UNGETC]: Implement from scratch. * modules/ftello (Files): Add m4/ungetc.m4. (Depends-on): Add intprops. * doc/posix-functions/ftello.texi: Mention the macOS bug.
Bruno Haible fa6c6f2a 2021-03-06T13:49:52 free-posix: Update documentation. * doc/posix-functions/free.texi: Add platform details.
Bruno Haible 3699ec97 2021-03-06T13:49:30 doc: Update for glibc 2.33. * doc/glibc-functions/mallinfo2.texi: New file. * doc/gnulib.texi: Include it. (Glibc sys/vtimes.h): Remove section. * doc/glibc-functions/vtimes.texi: Remove file. * doc/pastposix-functions/h_errno.texi: Update. * doc/posix-functions/*.texi: Likewise. * doc/glibc-functions/*.texi: Likewise.
Bruno Haible 75461c74 2021-02-21T21:39:07 string-buffer: New module. * lib/string-buffer.h: New file. * lib/string-buffer.c: New file. * modules/string-buffer: New file. * doc/posix-functions/open_memstream.texi: Mention the new module.
Bruno Haible 548423f2 2021-02-08T21:35:14 Document non-standard prototypes on MidnightBSD. * doc/posix-functions/initstate.texi: Mention different prototype on MidnightBSD 2.0. * doc/posix-functions/srandom.texi: Likewise. * doc/posix-functions/getlogin_r.texi: Likewise. * doc/glibc-functions/sethostname.texi: Likewise.
Bruno Haible b3f18c63 2021-02-07T17:34:59 wcwidth: Document MidnightBSD bug. * doc/posix-functions/wcwidth.texi: Mention MidnightBSD as an affected platform. * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Update comments.
Bruno Haible 0d42d754 2021-02-07T17:31:24 pthread_sigmask: Document MidnightBSD bug. * doc/posix-functions/pthread_sigmask.texi: Mention MidnightBSD as an affected platform. * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Update cross-compilation guess accordingly.
Bruno Haible 7b9b52a9 2021-01-31T13:27:42 fmaf: Document QEMU bug * doc/posix-functions/fmaf.texi: Add note about QEMU bug.
Bruno Haible 4f16dff6 2021-01-31T13:21:24 remainderl: Work around musl libc bug. * doc/posix-functions/remainderl.texi: Document musl libc bug. * m4/remainderl.m4 (gl_FUNC_REMAINDERL_WORKS): Add more tests. Update cross compilation guess.
Bruno Haible 231b5036 2021-01-31T13:20:28 log2l: Work around musl libc bugs. * doc/posix-functions/log2l.texi: Document musl libc bugs. * m4/log2l.m4 (gl_FUNC_LOG2L_WORKS): Add more tests. Update cross compilation guess.