]> Savannah Git Hosting - gnulib.git/log
gnulib.git
23 months agolimits-h tests: Check the value of SSIZE_MAX.
Bruno Haible [Sun, 21 May 2023 12:42:27 +0000 (14:42 +0200)]
limits-h tests: Check the value of SSIZE_MAX.

* tests/test-limits-h.c (limits12): New variable.
Include <sys/types.h> and check the value of SSIZE_MAX.
* modules/limits-h-tests (Depends-on): Add sys_types.

23 months agossize_t: Fix replacement on 64-bit Windows.
Bruno Haible [Sun, 21 May 2023 12:40:04 +0000 (14:40 +0200)]
ssize_t: Fix replacement on 64-bit Windows.

* m4/ssize_t.m4 (gt_TYPE_SSIZE_T): Use prefix 'gl_' instead of 'gt_'.
Define ssize_t to 'long long' or 'long', depending on the width of
'size_t'.

23 months agoregex: use limits-h SSIZE_MAX
Paul Eggert [Sat, 20 May 2023 22:24:05 +0000 (15:24 -0700)]
regex: use limits-h SSIZE_MAX

23 months agogetndelim2: use limits-h SSIZE_MAX
Paul Eggert [Sat, 20 May 2023 22:23:16 +0000 (15:23 -0700)]
getndelim2: use limits-h SSIZE_MAX

23 months agogetdelim: use limits-h SSIZE_MAX
Paul Eggert [Sat, 20 May 2023 22:22:32 +0000 (15:22 -0700)]
getdelim: use limits-h SSIZE_MAX

23 months agocareadlinkat: use limits-h SSIZE_MAX
Paul Eggert [Sat, 20 May 2023 22:21:40 +0000 (15:21 -0700)]
careadlinkat: use limits-h SSIZE_MAX

This also adds a dependency of relocatable-prog-wrapper on
limits-h, since relocatable-prog-wrapper also contains
lib/careadlinkat.c.

23 months agoareadlinkat-with-size: use limits-h SSIZE_MAX
Paul Eggert [Sat, 20 May 2023 22:20:14 +0000 (15:20 -0700)]
areadlinkat-with-size: use limits-h SSIZE_MAX

23 months agolimits-h: other modules can rely on SSIZE_MAX
Paul Eggert [Sat, 20 May 2023 20:48:00 +0000 (13:48 -0700)]
limits-h: other modules can rely on SSIZE_MAX

* lib/areadlink-with-size.c (SSIZE_MAX):
Do not define.
* modules/areadlink-with-size (Depends-on):
Add limits-h.

23 months agolimits-h: define SSIZE_MAX
Paul Eggert [Sat, 20 May 2023 20:46:19 +0000 (13:46 -0700)]
limits-h: define SSIZE_MAX

* doc/posix-headers/limits.texi (limits.h): Document this.
* lib/limits.in.h (SSIZE_MAX): Define if not already defined.
* m4/limits-h.m4 (gl_LIMITS_H): Also generate limits.h
if <limits.h> does not define SSIZE_MAX.

23 months agodiffseq: backward compatibility for OFFSET_MAX
Paul Eggert [Sat, 20 May 2023 19:11:54 +0000 (12:11 -0700)]
diffseq: backward compatibility for OFFSET_MAX

* lib/diffseq.h (OFFSET_MAX): Define only if not already defined.

23 months agocareadlinkat: Silence gcc warning for GCC ≥ 12.
Bruno Haible [Fri, 19 May 2023 21:55:34 +0000 (23:55 +0200)]
careadlinkat: Silence gcc warning for GCC ≥ 12.

* lib/careadlinkat.c: For GCC 12 or newer, use
"#pragma GCC diagnostic ignored" to silence the warning.

23 months agomodechange: pacify gcc -Wsuggest-attribute=pure
Pádraig Brady [Fri, 19 May 2023 09:34:44 +0000 (10:34 +0100)]
modechange: pacify gcc -Wsuggest-attribute=pure

* lib/modechange.h (mode_adjust): Add _GL_ATTRIBUTE_PURE
suggested with GCC 12 with -flto.

23 months agodiffseq: don’t assume integers lack padding
Paul Eggert [Fri, 19 May 2023 15:57:29 +0000 (08:57 -0700)]
diffseq: don’t assume integers lack padding

* NEWS: Mention this.
* lib/diffseq.h (OFFSET_MAX): Don’t define;
this is now the user’s responsibility.
* lib/fstrcmp.c (OFFSET_MAX): Define to PTRDIFF_MAX.

23 months agogetndelim2: Silence gcc warning.
Bruno Haible [Thu, 18 May 2023 22:45:50 +0000 (00:45 +0200)]
getndelim2: Silence gcc warning.

* lib/getndelim2.c: Add #pragma GCC diagnostic.
(IF_LINT): Remove macro.
(getndelim2): Remove use of IF_LINT.

23 months agocanonicalize: Silence gcc warning.
Bruno Haible [Thu, 18 May 2023 22:45:46 +0000 (00:45 +0200)]
canonicalize: Silence gcc warning.

* lib/canonicalize.c: Add #pragma GCC diagnostic.
(IF_LINT): Remove macro.
(canonicalize_filename_mode_stk): Remove use of IF_LINT.

23 months agovasnprintf, c-vasnprintf: Silence gcc warning.
Bruno Haible [Thu, 18 May 2023 20:58:23 +0000 (22:58 +0200)]
vasnprintf, c-vasnprintf: Silence gcc warning.

* lib/vasnprintf.c: Add #pragma GCC diagnostic.

23 months agonstrftime: Silence gcc warning.
Bruno Haible [Thu, 18 May 2023 20:46:47 +0000 (22:46 +0200)]
nstrftime: Silence gcc warning.

* lib/nstrftime.c: Add #pragma GCC diagnostic.

23 months agoastrxfrm: Silence gcc warning.
Bruno Haible [Thu, 18 May 2023 20:37:20 +0000 (22:37 +0200)]
astrxfrm: Silence gcc warning.

* lib/astrxfrm.c: Add #pragma GCC diagnostic.

23 months agovasnprintf, c-vasnprintf: Silence gcc warnings.
Bruno Haible [Thu, 18 May 2023 20:51:17 +0000 (22:51 +0200)]
vasnprintf, c-vasnprintf: Silence gcc warnings.

* lib/vasnprintf.c (scale10_round_decimal_decoded): Remove memory==NULL
test.
(scale10_round_decimal_long_double, scale10_round_decimal_double): Test
for memory==NULL here. Remove use of IF_LINT.

23 months agobitset: Silence gcc warning.
Bruno Haible [Thu, 18 May 2023 20:40:12 +0000 (22:40 +0200)]
bitset: Silence gcc warning.

* lib/bitset/list.c (lbitset_copy_): Remove redundant test from the
loop's first iteration.

23 months agostack: Silence gcc warning in tests.
Bruno Haible [Thu, 18 May 2023 20:48:54 +0000 (22:48 +0200)]
stack: Silence gcc warning in tests.

* lib/stack.h (init, destroy, empty, current_base, push, pop, discard,
top, size): Mark as possibly unused.

23 months agohamt: Silence gcc warning.
Bruno Haible [Thu, 18 May 2023 20:45:45 +0000 (22:45 +0200)]
hamt: Silence gcc warning.

* lib/hamt.c (init_element): Mark as possibly unused.

23 months agoget-rusage-data: Silence gcc warning.
Bruno Haible [Thu, 18 May 2023 20:43:14 +0000 (22:43 +0200)]
get-rusage-data: Silence gcc warning.

* lib/get-rusage-data.c (get_rusage_data_via_iterator): Mark as possibly
unused.

23 months agoastrxfrm: Fix use-after-free bug.
Bruno Haible [Thu, 18 May 2023 16:01:06 +0000 (18:01 +0200)]
astrxfrm: Fix use-after-free bug.

* lib/astrxfrm.c (astrxfrm): Don't use memcpy after realloc succeeded.

23 months agognulib-tool: Ignore .orig and .rej files under modules/.
Bruno Haible [Thu, 18 May 2023 20:38:30 +0000 (22:38 +0200)]
gnulib-tool: Ignore .orig and .rej files under modules/.

23 months agognulib-tool: Ignore .orig and .rej files under modules/.
Bruno Haible [Thu, 18 May 2023 14:03:00 +0000 (16:03 +0200)]
gnulib-tool: Ignore .orig and .rej files under modules/.

* gnulib-tool (func_sanitize_modulelist): Exclude also files whose name
ends in .orig or .rej.
* pygnulib/GLModuleSystem.py (GLModuleSystem.file_is_module): Likewise.

23 months agouchar: Fix error when <uchar.h> is included twice.
Bruno Haible [Thu, 18 May 2023 13:39:19 +0000 (15:39 +0200)]
uchar: Fix error when <uchar.h> is included twice.

* lib/uchar.in.h: Fix double-inclusion guard.

23 months agostdckdint: use in parse-datetime
Paul Eggert [Wed, 17 May 2023 19:38:28 +0000 (12:38 -0700)]
stdckdint: use in parse-datetime

* lib/parse-datetime.y (apply_relative_time, zone, date)
(iso_8601_date, relunit, relunit_snumber, time_zone_hhmm)
(to_tm_year, yylex, parse_datetime_body):
Prefer ckd_add to INT_ADD_WRAPV etc., and include stdckdint.h.
* modules/parse-datetime (Depends-on): Add stdckdint.

23 months agostdckdint: use in more modules
Paul Eggert [Wed, 17 May 2023 19:24:07 +0000 (12:24 -0700)]
stdckdint: use in more modules

* lib/nstrftime.c (__strftime_internal):
* lib/timespec-add.c (timespec_add):
* lib/timespec-sub.c (timespec_sub):
* lib/xstrtol.c (bkm_scale):
Prefer ckd_add to INT_ADD_WRAPV etc., and include stdckdint.h.
* modules/nstrftime, modules/timespec-add, modules/timespec-sub:
* modules/xstrtol:
(Depends-on): Add stdckdint.

23 months agonstrftime: suggest to glibc how to avoid alloca
Paul Eggert [Wed, 17 May 2023 17:27:40 +0000 (10:27 -0700)]
nstrftime: suggest to glibc how to avoid alloca

* lib/nstrftime.c (widen) [COMPILE_WIDE]: Remove.
(__strftime_internal) [COMPILE_WIDE): Instead of converting the
multibyte time zone abbreviation into a potentially unbounded
alloca buffer, convert it directly into the output buffer.
Although this code is not used in Gnulib, this can help the glibc
developers avoid the problem on the glibc side.

23 months agodoc: New chapter "Strings and Characters".
Bruno Haible [Tue, 16 May 2023 00:02:13 +0000 (02:02 +0200)]
doc: New chapter "Strings and Characters".

* doc/strings.texi: New file.
* doc/gnulib.texi (POSIXURL): New variable.
(posixheader, posixfunc, func): New macros, from GNU libunistring's
documentation.
Include strings.texi.
(Particular Modules): Don't include c-locale.texi here.
* doc/c-locale.texi: Sections become subsections, subsections become
subsubsections.
* doc/posix-functions/isalnum.texi: Mention c32isalnum.
* doc/posix-functions/isalpha.texi: Mention c32isalpha.
* doc/posix-functions/isblank.texi: Mention c32isblank.
* doc/posix-functions/iscntrl.texi: Mention c32iscntrl.
* doc/posix-functions/isdigit.texi: Mention c32isdigit.
* doc/posix-functions/isgraph.texi: Mention c32isgraph.
* doc/posix-functions/islower.texi: Mention c32islower.
* doc/posix-functions/isprint.texi: Mention c32isprint.
* doc/posix-functions/ispunct.texi: Mention c32ispunct.
* doc/posix-functions/isspace.texi: Mention c32isspace.
* doc/posix-functions/isupper.texi: Mention c32isupper.
* doc/posix-functions/isxdigit.texi: Mention c32isxdigit.
* doc/posix-functions/tolower.texi: Mention alternative APIs.
* doc/posix-functions/toupper.texi: Likewise.
* doc/posix-functions/towlower.texi: Mention c32tolower.
* doc/posix-functions/towupper.texi: Mention c32toupper.
* doc/posix-functions/wcswidth.texi: Mention c32swidth.
* doc/posix-functions/wcwidth.texi: Mention c32width.

23 months agosigsegv: Add tentative support for Hurd/x86_64.
Bruno Haible [Mon, 15 May 2023 16:33:47 +0000 (18:33 +0200)]
sigsegv: Add tentative support for Hurd/x86_64.

Based on explanations by Sergey Bugaev <bugaevc@gmail.com>.

* lib/sigsegv.c: Update from libsigsegv/src/fault-hurd-i386-old.h.

23 months agofile-has-acl: improve port to Fedora 39
Paul Eggert [Mon, 15 May 2023 15:40:27 +0000 (08:40 -0700)]
file-has-acl: improve port to Fedora 39

Problem reported by Ondrej Valousek in:
https://lists.gnu.org/r/bug-gnulib/2023-05/msg00078.html
* lib/file-has-acl.c: Include minmax.h.
[USE_ACL && HAVE_LINUX_XATTR_H && HAVE_LISTXATTR]: Include stdckdint.h.
(file_has_acl) [USE_ACL && HAVE_LINUX_XATTR_H && HAVE_LISTXATTR]:
If the file has NFSv4 ACLs, ignore any POSIX ACLs, for Fedora 39.
Return a bit faster when listxattr returns 0.
Don’t loop forever if an attacker is fiddling with ACLs.
* modules/file-has-acl (Depends-on): Add minmax, stdckdint.

23 months agoWork around https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82283 .
Bruno Haible [Mon, 15 May 2023 12:56:52 +0000 (14:56 +0200)]
Work around https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82283 .

Reported by Pádraig Brady <P@draigBrady.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-05/msg00077.html>.

* m4/gnulib-common.m4 (gl_CC_GNULIB_WARNINGS): Add
-Wno-missing-field-initializers for GCC < 11.

23 months agogettimeofday, pthread-*, thread, thrd: Don't omit intended initializers.
Bruno Haible [Mon, 15 May 2023 12:36:17 +0000 (14:36 +0200)]
gettimeofday, pthread-*, thread, thrd: Don't omit intended initializers.

* lib/gettimeofday.c (gettimeofday): List the initializers of both
tv_sec and tv_usec.
* lib/glthread/thread.c (gl_thread_self): List the initializers of both
tv_sec and tv_nsec.
* lib/pthread-cond.c (pthread_cond_wait): Likewise.
* lib/thrd.c (rpl_thrd_current): Likewise.
* lib/pthread-rwlock.c (MIN): New macro.
(pthread_rwlock_timedrdlock, pthread_rwlock_timedwrlock): List the
initializers of both tv_sec and tv_nsec. Don't modify the duration after
having initialized it.
* lib/pthread_mutex_timedlock.c (MIN): New macro.
(pthread_mutex_timedlock): List the initializers of both tv_sec and
tv_nsec. Don't modify the duration after having initialized it.

23 months agoselect: Fix compilation error (regression from yesterday).
Bruno Haible [Mon, 15 May 2023 09:19:16 +0000 (11:19 +0200)]
select: Fix compilation error (regression from yesterday).

* lib/select.c (rpl_select): Revert last change.

23 months agopoll: Fix syntax error (regression from yesterday).
Bruno Haible [Mon, 15 May 2023 09:13:08 +0000 (11:13 +0200)]
poll: Fix syntax error (regression from yesterday).

* lib/poll.c (poll): Remove semicolon inside braces.

23 months agotimespec: fill in other members
Paul Eggert [Mon, 15 May 2023 06:27:51 +0000 (23:27 -0700)]
timespec: fill in other members

This problem was found when compiling GNU Emacs with
--enable-gcc-warnings on a platform where tv_sec is 64 bits and
tv_nsec is 32 bits, and struct timespec has padding.  GCC
-Wuse-of-uninitialized-value complained when a struct timespec
initialized only via assigning to tv_sec and tv_nsec was copied
via assignment (this was in lib/timespec.h’s make_timespec).
Although behavior is well-defined on this platform, the warning is
annoying and the behavior might not be well-defined on theoretical
platforms where struct timespec has other members.  To work around
this, initialize all the struct’s members.
* lib/getsockopt.c (rpl_getsockopt):
* lib/gettime.c (gettime):
* lib/gettimeofday.c (gettimeofday):
* lib/glthread/thread.c (gl_thread_self):
* lib/nanosleep.c (nanosleep):
* lib/parse-datetime.y (digits_to_date_time, set_hhmmss)
(signed_seconds, unsigned_seconds, yylex, parse_datetime_body):
* lib/poll.c (poll):
* lib/pselect.c (pselect):
* lib/pthread-cond.c (endlessly, pthread_cond_timedwait):
* lib/pthread-rwlock.c (pthread_rwlock_timedrdlock)
(pthread_rwlock_timedwrlock):
* lib/pthread_mutex_timedlock.c (pthread_mutex_timedlock):
* lib/select.c (rpl_select):
* lib/settime.c (settime):
* lib/stat-time.h (get_stat_atime, get_stat_ctime)
(get_stat_mtime, get_stat_birthtime):
* lib/thrd.c (rpl_thrd_current):
* lib/timespec.h (make_timespec):
* lib/timespec_getres.c (timespec_getres):
* lib/utimecmp.c (utimecmpat):
* lib/utimens.c (fdutimens):
When filling in a struct timespec or similar time-related structure
that might be copied elsewhere, also assign to any storage other
than tv_sec and tv_nsec, to avoid undefined behavior on (likely
theoretical) platforms where struct timespec has other members,
and also to avoid warnings from GCC and/or valgrind.

23 months agoyear2038-recommended: Improve failure diagnostic.
Paul Eggert [Sun, 14 May 2023 10:17:46 +0000 (12:17 +0200)]
year2038-recommended: Improve failure diagnostic.

* m4/largefile.m4 (AC_SYS_YEAR2038_RECOMMENDED): Sync from Autoconf.

23 months agostdio: use _GL_ATTRIBUTE_MALLOC
Paul Eggert [Sun, 14 May 2023 04:47:10 +0000 (21:47 -0700)]
stdio: use _GL_ATTRIBUTE_MALLOC

* lib/stdio.in.h (fdopen, fopen, popen, tmpfile): Declare with
_GL_ATTRIBUTE_MALLOC, for consistency with glibc, and so that
building the fopen module with ‘gcc -O2 -Wsuggest-attribute=malloc
-Wsystem-headers -Werror’ does not fail with “stdio.h: In function
‘rpl_fopen’: stdio.h:970:1: error: function might be candidate for
attribute ‘malloc’ [-Werror=suggest-attribute=malloc]”, a problem
I noticed on both Fedora 38 and Ubuntu 23.04.

sigsegv: Add tentative support for Hurd/x86_64.  Reported by
Samuel Thibault <samuel.thibault@ens-lyon.org>.

23 months agosigsegv: Add tentative support for Hurd/x86_64.
Bruno Haible [Fri, 12 May 2023 19:28:47 +0000 (21:28 +0200)]
sigsegv: Add tentative support for Hurd/x86_64.

Reported by Samuel Thibault <samuel.thibault@ens-lyon.org>.

* lib/sigsegv.c: Update from libsigsegv/src/fault-hurd-i386.h.

23 months agofile-has-acl: don’t access freed storage
Paul Eggert [Fri, 12 May 2023 19:23:49 +0000 (12:23 -0700)]
file-has-acl: don’t access freed storage

Fix typo in previous patch, by not accessing freed storage
in the unusual case where the statck buffer is not large enough.

23 months agofile-has-acl: port to Fedora 39
Paul Eggert [Fri, 12 May 2023 18:56:17 +0000 (11:56 -0700)]
file-has-acl: port to Fedora 39

Fedora 39 getxattr with XATTR_NAME_POSIX_ACL_ACCESS either
succeeds or fails with ENODATA, so it is no longer possible to
detect from its failure that the filesystem might support NFSv4 ACLs.
Problem reported by Ondrej Valousek in:
https://lists.gnu.org/r/bug-gnulib/2023-04/msg00228.html
Instead, use listxattr to determine whether NFSv4 ACLs are in play.
This typically saves syscalls anyway.
* lib/file-has-acl.c: In #if, use (HAVE_LINUX_XATTR_H &&
HAVE_LISTXATTR) instead of GETXATTR_WITH_POSIX_ACLS.
The following changes apply when (USE_ACL && HAVE_LINUX_XATTR_H &&
HAVE_LISTXATTR):
Include minmax.h.
(have_xattr): New function.
(file_has_acl): Try listxattr first; typically this means we need
to do no other syscall.  Call getxattr only if there are NFSv4
ACLs but not POSIX ACLs.
* m4/acl.m4 (gl_FILE_HAS_ACL): Simplify by merely testing for
linux/xattr.h and listxattr.  All uses changed.

23 months agobootstrap: spelling/grammar fix in comment
Josh Soref [Wed, 10 May 2023 20:17:45 +0000 (13:17 -0700)]
bootstrap: spelling/grammar fix in comment

* build-aux/bootstrap: As above.

23 months agoWarn against bogus TZ settings
Paul Eggert [Sun, 7 May 2023 16:28:57 +0000 (09:28 -0700)]
Warn against bogus TZ settings

* doc/parse-datetime.texi (Specifying time zone rules):
Warn against TZ="UTC=5".

2 years agodirfd: Add tests.
Bruno Haible [Fri, 5 May 2023 10:07:22 +0000 (12:07 +0200)]
dirfd: Add tests.

* tests/test-dirfd.c: New file.
* modules/dirfd-tests: New file.

2 years agodirfd: Fix bogus override (regression 2023-04-26).
Bruno Haible [Fri, 5 May 2023 10:02:49 +0000 (12:02 +0200)]
dirfd: Fix bogus override (regression 2023-04-26).

Reported by Bjarni Ingi Gislason <bjarniig@simnet.is> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-05/msg00040.html>.

* m4/dirfd.m4 (gl_FUNC_DIRFD): Fix mistake in last change.

2 years agoc32swidth: Add tests.
Bruno Haible [Thu, 4 May 2023 21:27:16 +0000 (23:27 +0200)]
c32swidth: Add tests.

* tests/test-c32swidth.c: New file, based on tests/test-c32width.c.
* modules/c32swidth-tests: New file.

2 years agoc32swidth: New module.
Bruno Haible [Thu, 4 May 2023 21:27:12 +0000 (23:27 +0200)]
c32swidth: New module.

* lib/uchar.in.h (c32swidth): New declaration.
* lib/wcswidth-impl.h: Use macros FUNC, UNIT, CHARACTER_WIDTH.
* lib/wcswidth.c: Define FUNC, UNIT, CHARACTER_WIDTH before including
wcswidth-impl.h.
* lib/c32swidth.c: New file.
* modules/c32swidth: New file.
* m4/uchar_h.m4 (gl_UCHAR_H_REQUIRE_DEFAULTS): Initialize
GNULIB_C32SWIDTH.
* modules/uchar (Makefile.am): Substitute GNULIB_C32SWIDTH.

2 years agowcswidth: Fix result in case of overflow.
Bruno Haible [Thu, 4 May 2023 21:22:14 +0000 (23:22 +0200)]
wcswidth: Fix result in case of overflow.

* lib/wcswidth-impl.h (wcswidth): Continue searching for a non-printing
wide character after the total width has become > INT_MAX.

2 years agowcswidth: Relax license.
Bruno Haible [Thu, 4 May 2023 21:13:27 +0000 (23:13 +0200)]
wcswidth: Relax license.

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

2 years agoc32width: Relax license.
Bruno Haible [Thu, 4 May 2023 21:13:22 +0000 (23:13 +0200)]
c32width: Relax license.

* modules/c32width (License): Change to LGPLv2+.
* lib/c32width.c: Update license notice.

2 years agoc32to*: Relax license.
Bruno Haible [Thu, 4 May 2023 21:13:01 +0000 (23:13 +0200)]
c32to*: Relax license.

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

2 years agounicase/tolower, unicase/toupper: Relax license.
Bruno Haible [Thu, 4 May 2023 21:12:42 +0000 (23:12 +0200)]
unicase/tolower, unicase/toupper: Relax license.

* lib/gen-uni-tables.c (output_simple_mapping): Bump copyright year. For
unicase/tolower.h and unicase/toupper.h, use the LGPLv2+.
* lib/unicase/tolower.h: Regenerated.
* lib/unicase/toupper.h: Likewise.
* lib/unicase/simple-mapping.h: Update license notice.
* lib/unicase/tolower.c: Likewise.
* lib/unicase/toupper.c: Likewise.
* modules/unicase/tolower (License): Change to LGPLv2+.
* modules/unicase/toupper (License): Likewise.

2 years agounicase/base: Relax license.
Bruno Haible [Thu, 4 May 2023 21:12:37 +0000 (23:12 +0200)]
unicase/base: Relax license.

* modules/unicase/base (License): Change to LGPLv2+.
* lib/unicase.in.h: Update license notice.

2 years agoc32is*: Relax license.
Bruno Haible [Thu, 4 May 2023 21:11:59 +0000 (23:11 +0200)]
c32is*: Relax license.

* modules/c32isalnum (License): Change to LGPLv2+.
* modules/c32isalpha (License): Likewise.
* modules/c32isblank (License): Likewise.
* modules/c32iscntrl (License): Likewise.
* modules/c32isdigit (License): Likewise.
* modules/c32isgraph (License): Likewise.
* modules/c32islower (License): Likewise.
* modules/c32isprint (License): Likewise.
* modules/c32ispunct (License): Likewise.
* modules/c32isspace (License): Likewise.
* modules/c32isupper (License): Likewise.
* modules/c32isxdigit (License): Likewise.
* lib/c32isalnum.c: Update license notice.
* lib/c32isalpha.c: Likewise.
* lib/c32isblank.c: Likewise.
* lib/c32iscntrl.c: Likewise.
* lib/c32isdigit.c: Likewise.
* lib/c32isgraph.c: Likewise.
* lib/c32islower.c: Likewise.
* lib/c32isprint.c: Likewise.
* lib/c32ispunct.c: Likewise.
* lib/c32isspace.c: Likewise.
* lib/c32isupper.c: Likewise.
* lib/c32isxdigit.c: Likewise.
* lib/c32is-impl.h: Likewise.

2 years agounictype/ctype-*: Relax license.
Bruno Haible [Thu, 4 May 2023 21:11:54 +0000 (23:11 +0200)]
unictype/ctype-*: Relax license.

* lib/gen-uni-tables.c (output_predicate): Bump copyright year. For
unictype/ctype_*, use the LGPLv2+.
* lib/unictype/ctype_*.h: Regenerated.
* lib/unictype/ctype_*.c: Update license notice.
* modules/unictype/ctype-alnum (License): Change to LGPLv2+.
* modules/unictype/ctype-alpha (License): Likewise.
* modules/unictype/ctype-blank (License): Likewise.
* modules/unictype/ctype-cntrl (License): Likewise.
* modules/unictype/ctype-digit (License): Likewise.
* modules/unictype/ctype-graph (License): Likewise.
* modules/unictype/ctype-lower (License): Likewise.
* modules/unictype/ctype-print (License): Likewise.
* modules/unictype/ctype-punct (License): Likewise.
* modules/unictype/ctype-space (License): Likewise.
* modules/unictype/ctype-upper (License): Likewise.
* modules/unictype/ctype-xdigit (License): Likewise.

2 years agoc32width: Add tests.
Bruno Haible [Thu, 4 May 2023 11:53:41 +0000 (13:53 +0200)]
c32width: Add tests.

* tests/test-c32width.c: New file, based on tests/test-wcwidth.c.
* modules/c32width-tests: New file.

2 years agoc32width: New module.
Bruno Haible [Thu, 4 May 2023 11:52:42 +0000 (13:52 +0200)]
c32width: New module.

* lib/uchar.in.h (c32width): New declaration.
* lib/c32width.c: New file, based on lib/c32is-impl.h.
* modules/c32width: New file.
* m4/uchar_h.m4 (gl_UCHAR_H_REQUIRE_DEFAULTS): Initialize
GNULIB_C32WIDTH.
* modules/uchar (Makefile.am): Substitute GNULIB_C32WIDTH.

2 years agodoc: Mention macOS wcwidth bug.
Bruno Haible [Thu, 4 May 2023 11:29:49 +0000 (13:29 +0200)]
doc: Mention macOS wcwidth bug.

* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Mention macOS bugs.
* doc/posix-functions/wcwidth.texi: Update regarding macOS.

2 years agovasnprintf, vasnwprintf: Make '0' flag handling more ISO C compliant.
Bruno Haible [Wed, 3 May 2023 15:09:20 +0000 (17:09 +0200)]
vasnprintf, vasnwprintf: Make '0' flag handling more ISO C compliant.

* lib/vasnprintf.c (VASNPRINTF): When doing the padding ourselves,
ignore the '0' flag if a precision is specified and the conversion is
one of d, i, o, u, x, X, b, B.
* tests/test-vasnprintf-posix.c (test_function): Update expected results
accordingly.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* tests/test-snprintf-posix.h (test_function): Likewise.
* tests/test-sprintf-posix.h (test_function): Likewise.
* tests/test-vasnwprintf-posix.c (test_function): Likewise.

2 years agomktime: include <intprops.h>
Paul Eggert [Tue, 2 May 2023 20:18:52 +0000 (13:18 -0700)]
mktime: include <intprops.h>

* lib/mktime.c: Include <intprops.h> again,
fixing a typo noted by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2023-05/msg00014.html

2 years agofopen: Silence a gcc warning.
Bruno Haible [Tue, 2 May 2023 18:50:05 +0000 (20:50 +0200)]
fopen: Silence a gcc warning.

* lib/fopen.c (rpl_fopen): Mark open_direction as used.

2 years agoextern-inline: port to pcc
Paul Eggert [Mon, 1 May 2023 18:19:05 +0000 (11:19 -0700)]
extern-inline: port to pcc

* m4/extern-inline.m4 (gl_EXTERN_INLINE): Port to pcc
1.2.0.DEVEL 20220331, which doesn’t support extern inline
even though it claims to be GCC 4.3 and to support C11.

2 years agoregex: prefer C23 style overflow checking
Paul Eggert [Mon, 1 May 2023 16:10:17 +0000 (09:10 -0700)]
regex: prefer C23 style overflow checking

* lib/regex_internal.h: Include stdckdint.h.
* lib/regexec.c (re_search_2_stub):
* modules/regex (Depends-on): Add stdckdint.
Prefer stdckdint.h to intprops.h macros.

2 years agodynarray: prefer C23 style overflow checking
Paul Eggert [Mon, 1 May 2023 16:06:57 +0000 (09:06 -0700)]
dynarray: prefer C23 style overflow checking

* lib/malloc/dynarray_emplace_enlarge.c, lib/malloc/dynarray_resize.c:
Include stdckdint.h, not intprops.h.
* lib/malloc/dynarray_emplace_enlarge.c:
(__libc_dynarray_emplace_enlarge):
* lib/malloc/dynarray_resize.c (__libc_dynarray_resize):
Prefer stdckdint.h to intprops.h macros.
* modules/glibc-internal/dynarray (Depends-on):
Depend on stdckdint, not intprops.

2 years agomktime: prefer C23 style overflow checking
Paul Eggert [Mon, 1 May 2023 16:04:15 +0000 (09:04 -0700)]
mktime: prefer C23 style overflow checking

Prefer stdckdint.h macros to intprops.h macros where either will do,
as this is the C23 standard.  Also, it ports around a pcc bug.
* config/srclist.txt: Comment out mktime.c.
* lib/mktime.c: Include stdckdint.h, not intprops.h.
(__mktime_internal): Prefer stdckdint.h to intprops.h macros.
* modules/mktime (Depends-on): Add stdckdint.

2 years agolimits-h: port to pcc
Paul Eggert [Mon, 1 May 2023 15:11:12 +0000 (08:11 -0700)]
limits-h: port to pcc

* doc/posix-headers/limits.texi: Document the issue.
* lib/limits.in.h (MB_LEN_MAX): New macro, if not already defined.
* m4/limits-h.m4 (gl_LIMITS_H): Test for MB_LEN_MAX.
* tests/test-limits-h.c: Check that it’s positive.

2 years agoyear2038-recommended: new module
Paul Eggert [Sat, 29 Apr 2023 18:44:13 +0000 (11:44 -0700)]
year2038-recommended: new module

Remove year2038-required and largefile-required, replacing
the former with year2038-recommended and simply removing
the latter.  This syncs with Autoconf master.
* MODULES.html.sh, NEWS, doc/largefile.texi:
* all-modules (exclude): Exclude year2038-recommended, not -required.
* doc/posix-headers/sys_types.texi, doc/posix-headers/time.texi:
* doc/year2038.texi: Mention this.
* m4/largefile.m4: Sync from Autoconf.  Override existing macros
if AC_SYS_YEAR2038_RECOMMENDED is not defined, rather than if
AC_SYS_LARGEFILE_REQUIRED is not defined.
* modules/largefile-required, modules/year2038-required: Removed.
* modules/year2038: Do not depend on largefile; simply
use m4/largefile.m4, since we shouldn’t need the extra goodies
largefile supplies.
* modules/year2038-recommended: New module.

2 years agostdio: Avoid different configure results in different testdirs.
Bruno Haible [Sat, 29 Apr 2023 01:24:43 +0000 (03:24 +0200)]
stdio: Avoid different configure results in different testdirs.

* m4/stdio_h.m4 (gl_STDIO_H_EARLY): New macro, extracted from
gl_STDIO_H.
(gl_STDIO_H): Move the code that sets __USE_MINGW_ANSI_STDIO to
gl_STDIO_H_EARLY.
* modules/stdio (configure.ac-early): New section.

2 years agostdbool tests: Avoid compilation error with Sun C on Solaris 10.
Bruno Haible [Sat, 29 Apr 2023 01:18:17 +0000 (03:18 +0200)]
stdbool tests: Avoid compilation error with Sun C on Solaris 10.

* tests/test-stdbool.c (WORKING_BOOL): Set to 0 on Sun C.

2 years agohamt tests: Fix test failure with Sun C on Solaris 10/SPARC.
Bruno Haible [Sat, 29 Apr 2023 01:13:52 +0000 (03:13 +0200)]
hamt tests: Fix test failure with Sun C on Solaris 10/SPARC.

* tests/test-hamt.c (main): Finish with exit code 0.

2 years agolocaleconv: Work around a mingw bug.
Bruno Haible [Thu, 27 Apr 2023 23:12:16 +0000 (01:12 +0200)]
localeconv: Work around a mingw bug.

* m4/localeconv.m4 (gl_FUNC_LOCALECONV): Test whether fields of type
'char' are filled correctly.
(gl_PREREQ_LOCALECONV): Test whether 'struct lconv' has the int_{p,n}_*
members.
* lib/localeconv.c (FIX_CHAR_VALUE): New macro.
(localeconv): Replace negative field values with CHAR_MAX.
* doc/posix-functions/localeconv.texi: Mention the mingw bug.

2 years agostdlib: Fix error when cross-compiling (regression 2023-04-04).
Bruno Haible [Thu, 27 Apr 2023 16:26:45 +0000 (18:26 +0200)]
stdlib: Fix error when cross-compiling (regression 2023-04-04).

2 years agostdlib: Fix error when cross-compiling.
Bruno Haible [Thu, 27 Apr 2023 13:26:37 +0000 (15:26 +0200)]
stdlib: Fix error when cross-compiling.

Reported by Pierre Labastie <pierre.labastie@neuf.fr> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-04/msg00220.html>.

* m4/stdlib_h.m4 (gl_STDLIB_H): Provide a 4th argument to AC_RUN_IFELSE.

2 years agofreopen-safer: pacify GCC 13
Paul Eggert [Thu, 27 Apr 2023 00:43:09 +0000 (17:43 -0700)]
freopen-safer: pacify GCC 13

* lib/freopen-safer.c: Ignore -Wanalyzer-fd-leak.

2 years agofdopendir: Fix fd leak and test failure on native Windows.
Bruno Haible [Wed, 26 Apr 2023 23:42:25 +0000 (01:42 +0200)]
fdopendir: Fix fd leak and test failure on native Windows.

* lib/dirent-private.h: On mingw, define 'struct gl_directory' as a
wrapper around the original DIR. On MSVC, add an 'fd_to_close' field to
'struct gl_directory'.
* lib/dirent.in.h (DIR): Define when DIR_HAS_FD_MEMBER is 0, i.e. on
both mingw and MSVC.
(GNULIB_defined_DIR): New macro.
(opendir): Avoid incompatible redeclaration.
(readdir): Consider REPLACE_READDIR.
(rewinddir): Consider REPLACE_REWINDDIR.
* m4/dirent_h.m4 (gl_DIRENT_DIR): New macro.
(gl_DIRENT_H): Invoke it.
(gl_DIRENT_H_DEFAULTS): Initialize REPLACE_READDIR, REPLACE_REWINDDIR.
* modules/dirent (Makefile.am): Substitute DIR_HAS_FD_MEMBER,
REPLACE_READDIR, REPLACE_REWINDDIR.
--
* lib/dirfd.c (dirfd): If GNULIB_defined_DIR, just use the
'fd_to_close' field.
* m4/dirfd.m4 (gl_FUNC_DIRFD): Set HAVE_DIRFD. Don't set REPLACE_DIRFD
to 1 if HAVE_DIRFD is 0. If DIR_HAS_FD_MEMBER is 0, ensure dirfd.c gets
compiled.
* modules/dirfd (Files): Add lib/dirent-private.h.
(Depends-on, configure.ac): Simplify conditions.
--
* lib/closedir.c: Include <stdlib.h> always, for free().
(closedir): If GNULIB_defined_DIR, arrange to call close(dirfd(dirp)) at
the end. On mingw, call free() of dirp. Prefer testing HAVE_DIRENT_H,
for consistency with dirent.h.
* m4/closedir.m4 (gl_FUNC_CLOSEDIR): Don't set REPLACE_CLOSEDIR to 1 if
HAVE_CLOSEDIR is 0. If DIR_HAS_FD_MEMBER is 0, ensure closedir.c gets
compiled.
--
* lib/opendir.c: Include <stdlib.h> always. Include <string.h>.
(opendir): On mingw, allocate the 'struct gl_directory' through malloc.
If GNULIB_defined_DIR, set the 'fd_to_close' field to -1. Prefer
testing HAVE_DIRENT_H, for consistency with dirent.h.
* m4/opendir.m4 (gl_FUNC_OPENDIR): Don't set REPLACE_OPENDIR to 1 if
HAVE_OPENDIR is 0. If DIR_HAS_FD_MEMBER is 0, ensure opendir.c gets
compiled.
--
* lib/fdopendir.c (fdopendir): If GNULIB_defined_DIR, use a simple
implementation based on opendir and the fchdir module. If __KLIBC__,
don't define unused auxiliary functions.
* modules/fdopendir (Files): Add lib/dirent-private.h.
--
* lib/readdir.c (readdir): On mingw, redirect to the original readdir
function. Prefer testing HAVE_DIRENT_H, for consistency with dirent.h.
* m4/readdir.m4 (gl_FUNC_READDIR): If DIR_HAS_FD_MEMBER is 0, ensure
readdir.c gets compiled.
* modules/readdir (configure.ac): Consider REPLACE_READDIR.
--
* lib/rewinddir.c (rewinddir): On mingw, redirect to the original
rewinddir function. Prefer testing HAVE_DIRENT_H, for consistency with
dirent.h.
* m4/rewinddir.m4 (gl_FUNC_REWINDDIR): If DIR_HAS_FD_MEMBER is 0, ensure
rewinddir.c gets compiled.
* modules/rewinddir (configure.ac): Consider REPLACE_REWINDDIR.
--
* lib/fchdir.c (dir_info_t): Remove a FIXME.

2 years agofchdir tests: Fix test failure on native Windows.
Bruno Haible [Wed, 26 Apr 2023 22:48:21 +0000 (00:48 +0200)]
fchdir tests: Fix test failure on native Windows.

* modules/fchdir-tests (Depends-on): Add dup.

2 years agofclose: Make last change more maintainable.
Bruno Haible [Wed, 26 Apr 2023 04:06:03 +0000 (06:06 +0200)]
fclose: Make last change more maintainable.

* m4/fclose.m4 (gl_FUNC_FCLOSE): Define through AC_DEFUN_ONCE. Don't
modify REPLACE_FOPEN.
* modules/fclose (Depends-on): Add comment.
(configure.ac): Don't modify REPLACE_FOPEN. Don't duplicate actions of
module 'fopen'.
* m4/fopen.m4 (gl_FUNC_FOPEN_ITSELF): Renamed from gl_FUNC_FOPEN.
(gl_FUNC_FOPEN): New macro.
* modules/fopen (Files): Add m4/fclose.m4, m4/fflush.m4.
* m4/close.m4 (gl_FUNC_CLOSE): Define through AC_DEFUN_ONCE.

2 years agognulib-tool: For conditional dependencies, generate portable sh code.
Po Lu [Wed, 26 Apr 2023 02:57:31 +0000 (04:57 +0200)]
gnulib-tool: For conditional dependencies, generate portable sh code.

* gnulib-tool (func_emit_autoconf_snippets): Avoid sh syntax
'if ! variable', that does not work with Solaris /bin/sh.
* pygnulib/GLEmiter.py (GLEmiter.autoconfSnippets): Likewise.

2 years agoexpm1 tests: Avoid test failure on 32-bit mingw.
Bruno Haible [Tue, 25 Apr 2023 22:16:06 +0000 (00:16 +0200)]
expm1 tests: Avoid test failure on 32-bit mingw.

* tests/test-expm1.h (test_function): Mark y as 'volatile'.

2 years agopoll tests: Avoid test failure on native Windows.
Bruno Haible [Tue, 25 Apr 2023 11:38:47 +0000 (13:38 +0200)]
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.

2 years agodfa tests: Fix compilation error (regression 2023-04-22).
Bruno Haible [Tue, 25 Apr 2023 10:55:00 +0000 (12:55 +0200)]
dfa tests: Fix compilation error (regression 2023-04-22).

* tests/test-dfa-match-aux.c: Include unistd.h.
* modules/dfa-tests (Depends-on): Add unistd.

2 years agotests: Suppress ‘#pragma GCC diagnostic’ warnings with GCC < 13.
Bruno Haible [Mon, 24 Apr 2023 22:14:01 +0000 (00:14 +0200)]
tests: Suppress ‘#pragma GCC diagnostic’ warnings with GCC < 13.

* tests/test-localename.c: Disable #pragma for GCC < 12.
* tests/test-dup2.c: Disable #pragma for GCC < 13.
* tests/test-fcntl.c: Likewise.
* tests/test-getdtablesize.c: Likewise.
* tests/test-listen.c: Likewise.
* tests/test-open.h: Likewise.
* tests/test-perror2.c: Likewise.
* tests/test-select.h: Likewise.

2 years agoselect, pselect: Fix test failure on native Windows.
Bruno Haible [Mon, 24 Apr 2023 19:28:32 +0000 (21:28 +0200)]
select, pselect: Fix test failure on native Windows.

* lib/select.c (rpl_select): Fail if nfds is out-of-range.
* lib/pselect.c (pselect): Likewise.

2 years agofclose: pacify gcc -Wanalyzer-file-leak
Paul Eggert [Mon, 24 Apr 2023 19:06:55 +0000 (12:06 -0700)]
fclose: pacify gcc -Wanalyzer-file-leak

Without this patch, building coreutils with
--enable-gcc-checking=expensive would fail with a message like
“lib/exclude.c:682:6: error: leak of FILE 'in' [CWE-775]
[-Werror=analyzer-file-leak]”, because Gnulib replaced fclose but
not fopen, and GCC saw a call to fopen followed by a call to
rpl_fclose.  The patch causes GCC to instead see a call to
rpl_fopen followed by rpl_fclose.
* m4/fclose.m4 (gl_FUNC_FCLOSE): Replace fopen when replacing
fclose.
* modules/fclose (Depends-on): Add fopen.
(configure.ac): Replace fopen when replacing fclose.

2 years agounsetenv-tests: pacify -Wanalyzer-putenv-of-auto-var
Paul Eggert [Mon, 24 Apr 2023 19:06:54 +0000 (12:06 -0700)]
unsetenv-tests: pacify -Wanalyzer-putenv-of-auto-var

* tests/test-unsetenv.c (main): Make entry static.  Even with this
change, it’s unclear whether this test is portable POSIX code, but
that’s a different matter.

2 years agotests: suppress some unwanted -fanalyzer checking
Paul Eggert [Mon, 24 Apr 2023 19:06:54 +0000 (12:06 -0700)]
tests: suppress some unwanted -fanalyzer checking

* tests/test-dup2.c, tests/test-fcntl.c, tests/test-fopen.h:
* tests/test-getdtablesize.c, tests/test-listen.c:
* tests/test-localename.c, tests/test-open.h, tests/test-perror2.c:
* tests/test-select.h:
Add pragmas to disable unwanted -fanalyzer checking.

2 years agoftell, ftello: Fix recognition of pipes on native Windows.
Bruno Haible [Mon, 24 Apr 2023 17:48:47 +0000 (19:48 +0200)]
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.

2 years agolseek: Fix module dependencies (regression 2021-11-15).
Bruno Haible [Mon, 24 Apr 2023 17:15:22 +0000 (19:15 +0200)]
lseek: Fix module dependencies (regression 2021-11-15).

* modules/lseek (Depends-on): Re-enable the msvc-nothrow dependency
also when WINDOWS_64_BIT_OFF_T is 0.

2 years agosystem-quote: Fix memory overrun bug on native Windows.
Bruno Haible [Mon, 24 Apr 2023 11:56:46 +0000 (13:56 +0200)]
system-quote: Fix memory overrun bug on native Windows.

* lib/system-quote.c (system_quote): Allocate enough space for the
result.

2 years agounicodeio tests: Avoid test failures on native Windows.
Bruno Haible [Mon, 24 Apr 2023 10:48:31 +0000 (12:48 +0200)]
unicodeio tests: Avoid test failures on native Windows.

* tests/test-unicodeio.c: Include localcharset.h.
(main): Handle C locales whose encoding is CP1252 or similar.
* modules/unicodeio-tests (Depends-on): Add localcharset.

2 years ago*sprintf tests: Avoid test failures on mingw 10.
Bruno Haible [Mon, 24 Apr 2023 08:57:16 +0000 (10:57 +0200)]
*sprintf tests: Avoid test failures on mingw 10.

* tests/test-vasnprintf-posix.c (test_function): On newer mingw, expect
the de-facto standard result.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* tests/test-snprintf-posix.h (test_function): Likewise.
* tests/test-sprintf-posix.h (test_function): Likewise.

2 years agoImprove quoting of AS_HELP_STRING's first argument.
Bruno Haible [Sun, 23 Apr 2023 23:57:33 +0000 (01:57 +0200)]
Improve quoting of AS_HELP_STRING's first argument.

* m4/acl.m4 (gl_FUNC_ACL_ARG): Don't underquote AS_HELP_STRING's first
argument.
* m4/assert.m4 (gl_ASSERT): Likewise.
* m4/gc.m4 (gl_GC): Likewise.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Likewise.
* m4/ld-version-script.m4 (gl_LD_VERSION_SCRIPT): Likewise.
* m4/lib-ld.m4 (AC_LIB_PROG_LD): Likewise.
* m4/libgmp.m4 (gl_LIBGMP): Likewise.
* m4/regex.m4 (gl_REGEX): Likewise.
* m4/relocatable-lib.m4 (gl_RELOCATABLE_NOP): Likewise.
* m4/selinux-selinux-h.m4 (gl_LIBSELINUX): Likewise.
* m4/sigsegv.m4 (gl_SIGSEGV): Likewise.
* m4/threadlib.m4 (gl_THREADLIB_EARLY_BODY): Likewise.
* m4/valgrind-tests.m4 (gl_VALGRIND_TESTS): Likewise.
* m4/version-etc.m4 (gl_VERSION_ETC_FLAG): Likewise.
* m4/xattr.m4 (gl_FUNC_XATTR): Likewise.
* doc/manywarnings.texi (manywarnings): Likewise. This avoids the use of
quadrigraphs.

2 years agocategory-none: Fix link errors on MSVC, when libunistring is installed.
Bruno Haible [Sun, 23 Apr 2023 18:19:50 +0000 (20:19 +0200)]
category-none: Fix link errors on MSVC, when libunistring is installed.

* modules/unictype/category-none (configure.ac): Remove
gl_LIBUNISTRING_MODULE invocation.
(Makefile.am): Compile unictype/categ_none.c always.

2 years agomanywarnings: use AS_IF
Paul Eggert [Sun, 23 Apr 2023 15:54:00 +0000 (08:54 -0700)]
manywarnings: use AS_IF

* m4/manywarnings.m4 (gl_MANYWARN_COMPLEMENT):
Use AS_IF when the body contains Autoconf macros that could
conceivably require something.

2 years agomanywarnings: update C warnings for GCC 13
Paul Eggert [Sun, 23 Apr 2023 15:53:59 +0000 (08:53 -0700)]
manywarnings: update C warnings for GCC 13

Adjust for C programs compiled by GCC 13.
(A C++ expert still needs to look at manywarnings-c++.m4.)
* build-aux/gcc-warning.spec: Add warnings introduced in GCC 13.
* doc/manywarnings.texi (manywarnings): Document flex arrays.
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add
-fstrict-flex-arrays and -Wstrict-flex-arrays as these should be
suitable for Gnulib-using code.

2 years agomanywarnings: bring doc up to date
Paul Eggert [Sun, 23 Apr 2023 15:53:59 +0000 (08:53 -0700)]
manywarnings: bring doc up to date

* doc/manywarnings.texi: Bring doc up to date for GCC 12.

2 years agomanywarnings: omit -fno-common in GCC 10+
Paul Eggert [Sun, 23 Apr 2023 15:53:55 +0000 (08:53 -0700)]
manywarnings: omit -fno-common in GCC 10+

* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Omit -fno-common
in GCC 10 and later, as it is the default there.
Check exit status of ‘gcc --version’.

2 years agolibunistring: Fix build on Windows, when a libunistring is installed.
Bruno Haible [Sun, 23 Apr 2023 11:25:42 +0000 (13:25 +0200)]
libunistring: Fix build on Windows, when a libunistring is installed.

* lib/unicase.in.h: Include <unistring/woe32dll.h>.
(unicase_empty_prefix_context, unicase_empty_suffix_context): Declare
with GNULIB_UNICASE_..._DLL_VARIABLE.
* lib/unictype.in.h: Include <unistring/woe32dll.h>.
(UC_CATEGORY_*, UC_PROPERTY_*): Declare with
GNULIB_UNICTYPE_..._DLL_VARIABLE.
* lib/uninorm.in.h: Include <unistring/woe32dll.h>.
(unicode_normalization_form uninorm_nf*): Declare with
GNULIB_UNINORM_..._DLL_VARIABLE.
* m4/libunistring-base.m4 (gl_LIBUNISTRING_MODULE_WITH_VARIABLE): New
macro.
(gl_LIBUNISTRING_LIB_PREPARE): Set HAVE_UNISTRING_WOE32DLL_H.
* m4/unicase_h.m4: New file.
* m4/unictype_h.m4: New file.
* m4/uninorm_h.m4: New file.
* modules/unicase/base (Files): Add m4/unicase_h.m4.
(configure.ac): Bump version number. Invoke gl_UNICASE_H,
gl_UNICASE_H_REQUIRE_DEFAULTS.
(Makefile.am): Substitute all GNULIB_UNICASE_*_DLL_VARIABLE.
* modules/unicase/empty-*-context (configure.ac): Invoke
gl_UNICASE_H_REQUIRE_DEFAULTS. Use gl_LIBUNISTRING_MODULE_WITH_VARIABLE.
* modules/unictype/base (Files): Add m4/unictype_h.m4.
(configure.ac): Bump version number. Invoke gl_UNICTYPE_H,
gl_UNICTYPE_H_REQUIRE_DEFAULTS.
(Makefile.am): Substitute all GNULIB_UNICTYPE_*_DLL_VARIABLE.
* modules/unictype/category-* (configure.ac): Invoke
gl_UNICTYPE_H_REQUIRE_DEFAULTS. Use
gl_LIBUNISTRING_MODULE_WITH_VARIABLE.
* modules/unictype/property-* (configure.ac): Likewise.
* modules/uninorm/base (Files): Add m4/uninorm_h.m4.
(configure.ac): Bump version number. Invoke gl_UNINORM_H,
gl_UNINORM_H_REQUIRE_DEFAULTS.
(Makefile.am): Substitute all GNULIB_UNINORM_*_DLL_VARIABLE.
* modules/uninorm/nf* (configure.ac): Invoke
gl_UNINORM_H_REQUIRE_DEFAULTS. Use gl_LIBUNISTRING_MODULE_WITH_VARIABLE.