aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggert2023-07-09 13:05:01 -0700
committerPaul Eggert2023-07-09 13:45:13 -0700
commitc3cfada3c075991d7a38fafbdcf5daba06794d7a (patch)
tree651fdeb7a99e6d26936bf119abc37c1f45f260b3
parent9c282faf26eb517532508d466270b7b97d436c70 (diff)
downloademacs-c3cfada3c075991d7a38fafbdcf5daba06794d7a.tar.gz
emacs-c3cfada3c075991d7a38fafbdcf5daba06794d7a.zip
Update from Gnulib by running admin/merge-gnulib
-rwxr-xr-xbuild-aux/config.guess16
-rwxr-xr-xbuild-aux/config.sub31
-rwxr-xr-xbuild-aux/gitlog-to-changelog4
-rwxr-xr-xbuild-aux/update-copyright20
-rw-r--r--doc/misc/texinfo.tex214
-rw-r--r--lib/gnulib.mk.in4
-rw-r--r--lib/limits.in.h2
-rw-r--r--lib/regcomp.c2
-rw-r--r--m4/fsusage.m42
-rw-r--r--m4/largefile.m421
-rw-r--r--m4/locale-fr.m4131
-rw-r--r--m4/warnings.m422
12 files changed, 278 insertions, 191 deletions
diff --git a/build-aux/config.guess b/build-aux/config.guess
index 69188da73d7..354a8ccde42 100755
--- a/build-aux/config.guess
+++ b/build-aux/config.guess
@@ -4,7 +4,7 @@
4 4
5# shellcheck disable=SC2006,SC2268 # see below for rationale 5# shellcheck disable=SC2006,SC2268 # see below for rationale
6 6
7timestamp='2023-01-01' 7timestamp='2023-06-23'
8 8
9# This file is free software; you can redistribute it and/or modify it 9# This file is free software; you can redistribute it and/or modify it
10# under the terms of the GNU General Public License as published by 10# under the terms of the GNU General Public License as published by
@@ -47,7 +47,7 @@ me=`echo "$0" | sed -e 's,.*/,,'`
47usage="\ 47usage="\
48Usage: $0 [OPTION] 48Usage: $0 [OPTION]
49 49
50Output the configuration name of the system \`$me' is run on. 50Output the configuration name of the system '$me' is run on.
51 51
52Options: 52Options:
53 -h, --help print this help, then exit 53 -h, --help print this help, then exit
@@ -66,7 +66,7 @@ This is free software; see the source for copying conditions. There is NO
66warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 66warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
67 67
68help=" 68help="
69Try \`$me --help' for more information." 69Try '$me --help' for more information."
70 70
71# Parse command line 71# Parse command line
72while test $# -gt 0 ; do 72while test $# -gt 0 ; do
@@ -102,8 +102,8 @@ GUESS=
102# temporary files to be created and, as you can see below, it is a 102# temporary files to be created and, as you can see below, it is a
103# headache to deal with in a portable fashion. 103# headache to deal with in a portable fashion.
104 104
105# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still 105# Historically, 'CC_FOR_BUILD' used to be named 'HOST_CC'. We still
106# use `HOST_CC' if defined, but it is deprecated. 106# use 'HOST_CC' if defined, but it is deprecated.
107 107
108# Portable tmp directory creation inspired by the Autoconf team. 108# Portable tmp directory creation inspired by the Autoconf team.
109 109
@@ -459,7 +459,7 @@ case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
459 UNAME_RELEASE=`uname -v` 459 UNAME_RELEASE=`uname -v`
460 ;; 460 ;;
461 esac 461 esac
462 # Japanese Language versions have a version number like `4.1.3-JL'. 462 # Japanese Language versions have a version number like '4.1.3-JL'.
463 SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'` 463 SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'`
464 GUESS=sparc-sun-sunos$SUN_REL 464 GUESS=sparc-sun-sunos$SUN_REL
465 ;; 465 ;;
@@ -1197,7 +1197,7 @@ EOF
1197 GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION 1197 GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION
1198 ;; 1198 ;;
1199 i*86:OS/2:*:*) 1199 i*86:OS/2:*:*)
1200 # If we were able to find `uname', then EMX Unix compatibility 1200 # If we were able to find 'uname', then EMX Unix compatibility
1201 # is probably installed. 1201 # is probably installed.
1202 GUESS=$UNAME_MACHINE-pc-os2-emx 1202 GUESS=$UNAME_MACHINE-pc-os2-emx
1203 ;; 1203 ;;
@@ -1338,7 +1338,7 @@ EOF
1338 GUESS=ns32k-sni-sysv 1338 GUESS=ns32k-sni-sysv
1339 fi 1339 fi
1340 ;; 1340 ;;
1341 PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort 1341 PENTIUM:*:4.0*:*) # Unisys 'ClearPath HMP IX 4000' SVR4/MP effort
1342 # says <Richard.M.Bartel@ccMail.Census.GOV> 1342 # says <Richard.M.Bartel@ccMail.Census.GOV>
1343 GUESS=i586-unisys-sysv4 1343 GUESS=i586-unisys-sysv4
1344 ;; 1344 ;;
diff --git a/build-aux/config.sub b/build-aux/config.sub
index de4259e4047..9865d6ea4d1 100755
--- a/build-aux/config.sub
+++ b/build-aux/config.sub
@@ -4,7 +4,7 @@
4 4
5# shellcheck disable=SC2006,SC2268 # see below for rationale 5# shellcheck disable=SC2006,SC2268 # see below for rationale
6 6
7timestamp='2023-01-21' 7timestamp='2023-06-26'
8 8
9# This file is free software; you can redistribute it and/or modify it 9# This file is free software; you can redistribute it and/or modify it
10# under the terms of the GNU General Public License as published by 10# under the terms of the GNU General Public License as published by
@@ -82,7 +82,7 @@ This is free software; see the source for copying conditions. There is NO
82warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 82warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
83 83
84help=" 84help="
85Try \`$me --help' for more information." 85Try '$me --help' for more information."
86 86
87# Parse command line 87# Parse command line
88while test $# -gt 0 ; do 88while test $# -gt 0 ; do
@@ -130,7 +130,7 @@ IFS=$saved_IFS
130# Separate into logical components for further validation 130# Separate into logical components for further validation
131case $1 in 131case $1 in
132 *-*-*-*-*) 132 *-*-*-*-*)
133 echo Invalid configuration \`"$1"\': more than four components >&2 133 echo "Invalid configuration '$1': more than four components" >&2
134 exit 1 134 exit 1
135 ;; 135 ;;
136 *-*-*-*) 136 *-*-*-*)
@@ -145,7 +145,8 @@ case $1 in
145 nto-qnx* | linux-* | uclinux-uclibc* \ 145 nto-qnx* | linux-* | uclinux-uclibc* \
146 | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ 146 | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
147 | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ 147 | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
148 | storm-chaos* | os2-emx* | rtmk-nova* | managarm-*) 148 | storm-chaos* | os2-emx* | rtmk-nova* | managarm-* \
149 | windows-* )
149 basic_machine=$field1 150 basic_machine=$field1
150 basic_os=$maybe_os 151 basic_os=$maybe_os
151 ;; 152 ;;
@@ -943,7 +944,7 @@ $basic_machine
943EOF 944EOF
944 IFS=$saved_IFS 945 IFS=$saved_IFS
945 ;; 946 ;;
946 # We use `pc' rather than `unknown' 947 # We use 'pc' rather than 'unknown'
947 # because (1) that's what they normally are, and 948 # because (1) that's what they normally are, and
948 # (2) the word "unknown" tends to confuse beginning users. 949 # (2) the word "unknown" tends to confuse beginning users.
949 i*86 | x86_64) 950 i*86 | x86_64)
@@ -1285,7 +1286,7 @@ case $cpu-$vendor in
1285 ;; 1286 ;;
1286 1287
1287 *) 1288 *)
1288 echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2 1289 echo "Invalid configuration '$1': machine '$cpu-$vendor' not recognized" 1>&2
1289 exit 1 1290 exit 1
1290 ;; 1291 ;;
1291 esac 1292 esac
@@ -1766,11 +1767,11 @@ case $os in
1766 ;; 1767 ;;
1767 none) 1768 none)
1768 ;; 1769 ;;
1769 kernel* ) 1770 kernel* | msvc* )
1770 # Restricted further below 1771 # Restricted further below
1771 ;; 1772 ;;
1772 *) 1773 *)
1773 echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2 1774 echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2
1774 exit 1 1775 exit 1
1775 ;; 1776 ;;
1776esac 1777esac
@@ -1785,18 +1786,24 @@ case $kernel-$os in
1785 ;; 1786 ;;
1786 managarm-mlibc* | managarm-kernel* ) 1787 managarm-mlibc* | managarm-kernel* )
1787 ;; 1788 ;;
1789 windows*-gnu* | windows*-msvc*)
1790 ;;
1788 -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* ) 1791 -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* )
1789 # These are just libc implementations, not actual OSes, and thus 1792 # These are just libc implementations, not actual OSes, and thus
1790 # require a kernel. 1793 # require a kernel.
1791 echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 1794 echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2
1792 exit 1 1795 exit 1
1793 ;; 1796 ;;
1794 -kernel* ) 1797 -kernel* )
1795 echo "Invalid configuration \`$1': \`$os' needs explicit kernel." 1>&2 1798 echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2
1796 exit 1 1799 exit 1
1797 ;; 1800 ;;
1798 *-kernel* ) 1801 *-kernel* )
1799 echo "Invalid configuration \`$1': \`$kernel' does not support \`$os'." 1>&2 1802 echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2
1803 exit 1
1804 ;;
1805 *-msvc* )
1806 echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2
1800 exit 1 1807 exit 1
1801 ;; 1808 ;;
1802 kfreebsd*-gnu* | kopensolaris*-gnu*) 1809 kfreebsd*-gnu* | kopensolaris*-gnu*)
@@ -1813,7 +1820,7 @@ case $kernel-$os in
1813 # Blank kernel with real OS is always fine. 1820 # Blank kernel with real OS is always fine.
1814 ;; 1821 ;;
1815 *-*) 1822 *-*)
1816 echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 1823 echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2
1817 exit 1 1824 exit 1
1818 ;; 1825 ;;
1819esac 1826esac
diff --git a/build-aux/gitlog-to-changelog b/build-aux/gitlog-to-changelog
index 4678bad1050..43e4a37adf4 100755
--- a/build-aux/gitlog-to-changelog
+++ b/build-aux/gitlog-to-changelog
@@ -35,7 +35,7 @@
35eval 'exec perl -wSx "$0" "$@"' 35eval 'exec perl -wSx "$0" "$@"'
36 if 0; 36 if 0;
37 37
38my $VERSION = '2022-01-27 18:49'; # UTC 38my $VERSION = '2023-06-24 21:59'; # UTC
39# The definition above must lie within the first 8 lines in order 39# The definition above must lie within the first 8 lines in order
40# for the Emacs time-stamp write hook (at end) to update it. 40# for the Emacs time-stamp write hook (at end) to update it.
41# If you change this file with Emacs, please let the write hook 41# If you change this file with Emacs, please let the write hook
@@ -355,7 +355,7 @@ sub git_dir_option($)
355 . "(expected date/author/email):\n$author_line\n"; 355 . "(expected date/author/email):\n$author_line\n";
356 356
357 # Format 'Copyright-paperwork-exempt: Yes' as a standard ChangeLog 357 # Format 'Copyright-paperwork-exempt: Yes' as a standard ChangeLog
358 # `(tiny change)' annotation. 358 # '(tiny change)' annotation.
359 my $tiny = (grep (/^(?:Copyright-paperwork-exempt|Tiny-change):\s+[Yy]es$/, @line) 359 my $tiny = (grep (/^(?:Copyright-paperwork-exempt|Tiny-change):\s+[Yy]es$/, @line)
360 ? ' (tiny change)' : ''); 360 ? ' (tiny change)' : '');
361 361
diff --git a/build-aux/update-copyright b/build-aux/update-copyright
index 99196fceef6..0343eaa72c1 100755
--- a/build-aux/update-copyright
+++ b/build-aux/update-copyright
@@ -98,7 +98,8 @@
98# 6. Blank lines, even if preceded by the prefix, do not appear 98# 6. Blank lines, even if preceded by the prefix, do not appear
99# within the FSF copyright statement. 99# within the FSF copyright statement.
100# 7. Each copyright year is 2 or 4 digits, and years are separated by 100# 7. Each copyright year is 2 or 4 digits, and years are separated by
101# commas, "-", or "--". Whitespace may appear after commas. 101# commas, "-", "--", or "\(en" (for troff). Whitespace may appear
102# after commas.
102# 103#
103# Environment variables: 104# Environment variables:
104# 105#
@@ -137,7 +138,7 @@
137eval 'exec perl -wSx -0777 -pi "$0" "$@"' 138eval 'exec perl -wSx -0777 -pi "$0" "$@"'
138 if 0; 139 if 0;
139 140
140my $VERSION = '2023-01-11.04:24'; # UTC 141my $VERSION = '2023-06-18.01:14'; # UTC
141# The definition above must lie within the first 8 lines in order 142# The definition above must lie within the first 8 lines in order
142# for the Emacs time-stamp write hook (at end) to update it. 143# for the Emacs time-stamp write hook (at end) to update it.
143# If you change this file with Emacs, please let the write hook 144# If you change this file with Emacs, please let the write hook
@@ -148,6 +149,7 @@ use warnings;
148 149
149my $copyright_re = 'Copyright'; 150my $copyright_re = 'Copyright';
150my $circle_c_re = '(?:\([cC]\)|@copyright\{}|\\\\\(co|&copy;|©)'; 151my $circle_c_re = '(?:\([cC]\)|@copyright\{}|\\\\\(co|&copy;|©)';
152my $ndash_re = '(?:--?|\\\\\(en)';
151my $holder = $ENV{UPDATE_COPYRIGHT_HOLDER}; 153my $holder = $ENV{UPDATE_COPYRIGHT_HOLDER};
152$holder ||= 'Free Software Foundation, Inc.'; 154$holder ||= 'Free Software Foundation, Inc.';
153my $prefix_max = 5; 155my $prefix_max = 5;
@@ -192,7 +194,7 @@ while (/(^|\n)(.{0,$prefix_max})$copyright_re/g)
192 $holder_re =~ s/\s/$ws_re/g; 194 $holder_re =~ s/\s/$ws_re/g;
193 my $stmt_remainder_re = 195 my $stmt_remainder_re =
194 "(?:$ws_re$circle_c_re)?" 196 "(?:$ws_re$circle_c_re)?"
195 . "$ws_re(?:(?:\\d\\d)?\\d\\d(?:,$ws_re?|--?))*" 197 . "$ws_re(?:(?:\\d\\d)?\\d\\d(?:,$ws_re?|$ndash_re))*"
196 . "((?:\\d\\d)?\\d\\d)$ws_re$holder_re"; 198 . "((?:\\d\\d)?\\d\\d)$ws_re$holder_re";
197 if (/\G$stmt_remainder_re/) 199 if (/\G$stmt_remainder_re/)
198 { 200 {
@@ -215,7 +217,7 @@ if (defined $stmt_re)
215 if ($final_year != $this_year) 217 if ($final_year != $this_year)
216 { 218 {
217 # Update the year. 219 # Update the year.
218 $stmt =~ s/\b$final_year_orig\b/$final_year, $this_year/; 220 $stmt =~ s/(^|[^\d])$final_year_orig\b/$1$final_year, $this_year/;
219 } 221 }
220 if ($final_year != $this_year || $ENV{'UPDATE_COPYRIGHT_FORCE'}) 222 if ($final_year != $this_year || $ENV{'UPDATE_COPYRIGHT_FORCE'})
221 { 223 {
@@ -231,17 +233,19 @@ if (defined $stmt_re)
231 # Make the use of intervals consistent. 233 # Make the use of intervals consistent.
232 if (!$ENV{UPDATE_COPYRIGHT_USE_INTERVALS}) 234 if (!$ENV{UPDATE_COPYRIGHT_USE_INTERVALS})
233 { 235 {
234 $stmt =~ s/(\d{4})--?(\d{4})/join(', ', $1..$2)/eg; 236 $stmt =~ s/(\d{4})$ndash_re(\d{4})/join(', ', $1..$2)/eg;
235 } 237 }
236 else 238 else
237 { 239 {
238 my $ndash = $ARGV =~ /\.tex(i(nfo)?)?$/ ? "--" : "-"; 240 my $ndash = ($ARGV =~ /\.tex(i(nfo)?)?$/ ? "--"
241 : $ARGV =~ /\.(\d[a-z]*|man)$/ ? "\\(en"
242 : "-");
239 243
240 $stmt =~ 244 $stmt =~
241 s/ 245 s/
242 (\d{4}) 246 (\d{4})
243 (?: 247 (?:
244 (,\ |--?) 248 (,\ |$ndash_re)
245 ((??{ 249 ((??{
246 if ($2 ne ', ') { '\d{4}'; } 250 if ($2 ne ', ') { '\d{4}'; }
247 elsif (!$3) { $1 + 1; } 251 elsif (!$3) { $1 + 1; }
@@ -252,7 +256,7 @@ if (defined $stmt_re)
252 256
253 # When it's 2, emit a single range encompassing all year numbers. 257 # When it's 2, emit a single range encompassing all year numbers.
254 $ENV{UPDATE_COPYRIGHT_USE_INTERVALS} == 2 258 $ENV{UPDATE_COPYRIGHT_USE_INTERVALS} == 2
255 and $stmt =~ s/\b(\d{4})\b.*\b(\d{4})\b/$1$ndash$2/; 259 and $stmt =~ s/(^|[^\d])(\d{4})\b.*(?:[^\d])(\d{4})\b/$1$2$ndash$3/;
256 } 260 }
257 261
258 # Format within margin. 262 # Format within margin.
diff --git a/doc/misc/texinfo.tex b/doc/misc/texinfo.tex
index a32c84197ae..b1d2999e5d7 100644
--- a/doc/misc/texinfo.tex
+++ b/doc/misc/texinfo.tex
@@ -3,7 +3,7 @@
3% Load plain if necessary, i.e., if running under initex. 3% Load plain if necessary, i.e., if running under initex.
4\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi 4\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
5% 5%
6\def\texinfoversion{2023-03-27.21} 6\def\texinfoversion{2023-07-02.10}
7% 7%
8% Copyright 1985, 1986, 1988, 1990-2023 Free Software Foundation, Inc. 8% Copyright 1985, 1986, 1988, 1990-2023 Free Software Foundation, Inc.
9% 9%
@@ -275,8 +275,7 @@
275% \topmark doesn't work for the very first chapter (after the title 275% \topmark doesn't work for the very first chapter (after the title
276% page or the contents), so we use \firstmark there -- this gets us 276% page or the contents), so we use \firstmark there -- this gets us
277% the mark with the chapter defs, unless the user sneaks in, e.g., 277% the mark with the chapter defs, unless the user sneaks in, e.g.,
278% @setcolor (or @url, or @link, etc.) between @contents and the very 278% @setcolor (or @url etc.) between @contents and the very first @chapter.
279% first @chapter.
280\def\gettopheadingmarks{% 279\def\gettopheadingmarks{%
281 \ifcase0\the\savedtopmark\fi 280 \ifcase0\the\savedtopmark\fi
282 \ifx\thischapter\empty \ifcase0\firstmark\fi \fi 281 \ifx\thischapter\empty \ifcase0\firstmark\fi \fi
@@ -4950,6 +4949,7 @@ $$%
4950 \commondummyword\inforef {}% 4949 \commondummyword\inforef {}%
4951 \commondummyword\kbd {}% 4950 \commondummyword\kbd {}%
4952 \commondummyword\key {}% 4951 \commondummyword\key {}%
4952 \commondummyword\link {}%
4953 \commondummyword\math {}% 4953 \commondummyword\math {}%
4954 \commondummyword\option {}% 4954 \commondummyword\option {}%
4955 \commondummyword\pxref {}% 4955 \commondummyword\pxref {}%
@@ -5783,7 +5783,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
5783 % below is chosen so that the gutter has the same value (well, +-<1pt) 5783 % below is chosen so that the gutter has the same value (well, +-<1pt)
5784 % as it did when we hard-coded it. 5784 % as it did when we hard-coded it.
5785 % 5785 %
5786 % We put the result in a separate register, \doublecolumhsize, so we 5786 % We put the result in a separate register, \doublecolumnhsize, so we
5787 % can restore it in \pagesofar, after \hsize itself has (potentially) 5787 % can restore it in \pagesofar, after \hsize itself has (potentially)
5788 % been clobbered. 5788 % been clobbered.
5789 % 5789 %
@@ -8180,7 +8180,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8180% Read recursive and nonrecursive macro bodies. (They're different since 8180% Read recursive and nonrecursive macro bodies. (They're different since
8181% rec and nonrec macros end differently.) 8181% rec and nonrec macros end differently.)
8182% 8182%
8183% We are in \macrobodyctxt, and the \xdef causes backslashshes in the macro 8183% We are in \macrobodyctxt, and the \xdef causes backslashes in the macro
8184% body to be transformed. 8184% body to be transformed.
8185% Set \macrobody to the body of the macro, and call \macrodef. 8185% Set \macrobody to the body of the macro, and call \macrodef.
8186% 8186%
@@ -8808,109 +8808,11 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8808\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup 8808\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup
8809 \unsepspaces 8809 \unsepspaces
8810 % 8810 %
8811 % Get args without leading/trailing spaces. 8811 \getprintedrefname{#1}{#3}{#5}%
8812 \def\printedrefname{\ignorespaces #3}%
8813 \setbox\printedrefnamebox = \hbox{\printedrefname\unskip}%
8814 %
8815 \def\infofilename{\ignorespaces #4}% 8812 \def\infofilename{\ignorespaces #4}%
8816 \setbox\infofilenamebox = \hbox{\infofilename\unskip}% 8813 \setbox\infofilenamebox = \hbox{\infofilename\unskip}%
8817 % 8814 %
8818 \def\printedmanual{\ignorespaces #5}% 8815 \startxreflink{#1}{#4}%
8819 \setbox\printedmanualbox = \hbox{\printedmanual\unskip}%
8820 %
8821 % If the printed reference name (arg #3) was not explicitly given in
8822 % the @xref, figure out what we want to use.
8823 \ifdim \wd\printedrefnamebox = 0pt
8824 % No printed node name was explicitly given.
8825 \expandafter\ifx\csname SETxref-automatic-section-title\endcsname \relax
8826 % Not auto section-title: use node name inside the square brackets.
8827 \def\printedrefname{\ignorespaces #1}%
8828 \else
8829 % Auto section-title: use chapter/section title inside
8830 % the square brackets if we have it.
8831 \ifdim \wd\printedmanualbox > 0pt
8832 % It is in another manual, so we don't have it; use node name.
8833 \def\printedrefname{\ignorespaces #1}%
8834 \else
8835 \ifhavexrefs
8836 % We (should) know the real title if we have the xref values.
8837 \def\printedrefname{\refx{#1-title}}%
8838 \else
8839 % Otherwise just copy the Info node name.
8840 \def\printedrefname{\ignorespaces #1}%
8841 \fi%
8842 \fi
8843 \fi
8844 \fi
8845 %
8846 % Make link in pdf output.
8847 \ifpdf
8848 % For pdfTeX and LuaTeX
8849 {\indexnofonts
8850 \makevalueexpandable
8851 \turnoffactive
8852 % This expands tokens, so do it after making catcode changes, so _
8853 % etc. don't get their TeX definitions. This ignores all spaces in
8854 % #4, including (wrongly) those in the middle of the filename.
8855 \getfilename{#4}%
8856 %
8857 % This (wrongly) does not take account of leading or trailing
8858 % spaces in #1, which should be ignored.
8859 \setpdfdestname{#1}%
8860 %
8861 \ifx\pdfdestname\empty
8862 \def\pdfdestname{Top}% no empty targets
8863 \fi
8864 %
8865 \leavevmode
8866 \startlink attr{/Border [0 0 0]}%
8867 \ifnum\filenamelength>0
8868 goto file{\the\filename.pdf} name{\pdfdestname}%
8869 \else
8870 goto name{\pdfmkpgn{\pdfdestname}}%
8871 \fi
8872 }%
8873 \setcolor{\linkcolor}%
8874 \else
8875 \ifx\XeTeXrevision\thisisundefined
8876 \else
8877 % For XeTeX
8878 {\indexnofonts
8879 \makevalueexpandable
8880 \turnoffactive
8881 % This expands tokens, so do it after making catcode changes, so _
8882 % etc. don't get their TeX definitions. This ignores all spaces in
8883 % #4, including (wrongly) those in the middle of the filename.
8884 \getfilename{#4}%
8885 %
8886 % This (wrongly) does not take account of leading or trailing
8887 % spaces in #1, which should be ignored.
8888 \setpdfdestname{#1}%
8889 %
8890 \ifx\pdfdestname\empty
8891 \def\pdfdestname{Top}% no empty targets
8892 \fi
8893 %
8894 \leavevmode
8895 \ifnum\filenamelength>0
8896 % With default settings,
8897 % XeTeX (xdvipdfmx) replaces link destination names with integers.
8898 % In this case, the replaced destination names of
8899 % remote PDFs are no longer known. In order to avoid a replacement,
8900 % you can use xdvipdfmx's command line option `-C 0x0010'.
8901 % If you use XeTeX 0.99996+ (TeX Live 2016+),
8902 % this command line option is no longer necessary
8903 % because we can use the `dvipdfmx:config' special.
8904 \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A
8905 << /S /GoToR /F (\the\filename.pdf) /D (\pdfdestname) >> >>}%
8906 \else
8907 \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A
8908 << /S /GoTo /D (\pdfdestname) >> >>}%
8909 \fi
8910 }%
8911 \setcolor{\linkcolor}%
8912 \fi
8913 \fi
8914 {% 8816 {%
8915 % Have to otherify everything special to allow the \csname to 8817 % Have to otherify everything special to allow the \csname to
8916 % include an _ in the xref name, etc. 8818 % include an _ in the xref name, etc.
@@ -8991,6 +8893,93 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8991 \endlink 8893 \endlink
8992\endgroup} 8894\endgroup}
8993 8895
8896% \getprintedrefname{NODE}{LABEL}{MANUAL}
8897% - set \printedrefname and \printedmanual
8898%
8899\def\getprintedrefname#1#2#3{%
8900 % Get args without leading/trailing spaces.
8901 \def\printedrefname{\ignorespaces #2}%
8902 \setbox\printedrefnamebox = \hbox{\printedrefname\unskip}%
8903 %
8904 \def\printedmanual{\ignorespaces #3}%
8905 \setbox\printedmanualbox = \hbox{\printedmanual\unskip}%
8906 %
8907 % If the printed reference name (arg #2) was not explicitly given in
8908 % the @xref, figure out what we want to use.
8909 \ifdim \wd\printedrefnamebox = 0pt
8910 % No printed node name was explicitly given.
8911 \expandafter\ifx\csname SETxref-automatic-section-title\endcsname \relax
8912 % Not auto section-title: use node name inside the square brackets.
8913 \def\printedrefname{\ignorespaces #1}%
8914 \else
8915 % Auto section-title: use chapter/section title inside
8916 % the square brackets if we have it.
8917 \ifdim \wd\printedmanualbox > 0pt
8918 % It is in another manual, so we don't have it; use node name.
8919 \def\printedrefname{\ignorespaces #1}%
8920 \else
8921 \ifhavexrefs
8922 % We (should) know the real title if we have the xref values.
8923 \def\printedrefname{\refx{#1-title}}%
8924 \else
8925 % Otherwise just copy the Info node name.
8926 \def\printedrefname{\ignorespaces #1}%
8927 \fi%
8928 \fi
8929 \fi
8930 \fi
8931}
8932
8933% \startxreflink{NODE}{FILE} - start link in pdf output.
8934\def\startxreflink#1#2{%
8935 \ifpdforxetex
8936 % For pdfTeX and LuaTeX
8937 {\indexnofonts
8938 \makevalueexpandable
8939 \turnoffactive
8940 % This expands tokens, so do it after making catcode changes, so _
8941 % etc. don't get their TeX definitions. This ignores all spaces in
8942 % #2, including (wrongly) those in the middle of the filename.
8943 \getfilename{#2}%
8944 %
8945 % This (wrongly) does not take account of leading or trailing
8946 % spaces in #1, which should be ignored.
8947 \setpdfdestname{#1}%
8948 %
8949 \ifx\pdfdestname\empty
8950 \def\pdfdestname{Top}% no empty targets
8951 \fi
8952 %
8953 \leavevmode
8954 \ifpdf
8955 \startlink attr{/Border [0 0 0]}%
8956 \ifnum\filenamelength>0
8957 goto file{\the\filename.pdf} name{\pdfdestname}%
8958 \else
8959 goto name{\pdfmkpgn{\pdfdestname}}%
8960 \fi
8961 \else % XeTeX
8962 \ifnum\filenamelength>0
8963 % With default settings,
8964 % XeTeX (xdvipdfmx) replaces link destination names with integers.
8965 % In this case, the replaced destination names of
8966 % remote PDFs are no longer known. In order to avoid a replacement,
8967 % you can use xdvipdfmx's command line option `-C 0x0010'.
8968 % If you use XeTeX 0.99996+ (TeX Live 2016+),
8969 % this command line option is no longer necessary
8970 % because we can use the `dvipdfmx:config' special.
8971 \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A
8972 << /S /GoToR /F (\the\filename.pdf) /D (\pdfdestname) >> >>}%
8973 \else
8974 \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A
8975 << /S /GoTo /D (\pdfdestname) >> >>}%
8976 \fi
8977 \fi
8978 }%
8979 \setcolor{\linkcolor}%
8980 \fi
8981}
8982
8994% can be overridden in translation files 8983% can be overridden in translation files
8995\def\putpageref#1{% 8984\def\putpageref#1{%
8996 \space\putwordpage\tie\refx{#1-pg}} 8985 \space\putwordpage\tie\refx{#1-pg}}
@@ -9028,6 +9017,21 @@ might help (with 'rm \jobname.?? \jobname.??s')%
9028% 9017%
9029\def\xrefprintnodename#1{[#1]} 9018\def\xrefprintnodename#1{[#1]}
9030 9019
9020% @link{NODENAME, LABEL, MANUAL} - create a "plain" link, with no
9021% page number. Not useful if printed on paper.
9022%
9023\def\link#1{\linkX[#1,,,]}
9024\def\linkX[#1,#2,#3,#4]{%
9025 \begingroup
9026 \unsepspaces
9027 \getprintedrefname{#1}{#2}{#3}%
9028 \startxreflink{#1}{#3}%
9029 \printedrefname
9030 \endlink
9031 \endgroup
9032}
9033
9034
9031% Things referred to by \setref. 9035% Things referred to by \setref.
9032% 9036%
9033\def\Ynothing{} 9037\def\Ynothing{}
diff --git a/lib/gnulib.mk.in b/lib/gnulib.mk.in
index a25bee25aae..0812dc80135 100644
--- a/lib/gnulib.mk.in
+++ b/lib/gnulib.mk.in
@@ -901,6 +901,10 @@ KRB4LIB = @KRB4LIB@
901KRB5LIB = @KRB5LIB@ 901KRB5LIB = @KRB5LIB@
902LCMS2_CFLAGS = @LCMS2_CFLAGS@ 902LCMS2_CFLAGS = @LCMS2_CFLAGS@
903LCMS2_LIBS = @LCMS2_LIBS@ 903LCMS2_LIBS = @LCMS2_LIBS@
904LC_COLLATE_IMPLEMENTED = @LC_COLLATE_IMPLEMENTED@
905LC_MONETARY_IMPLEMENTED = @LC_MONETARY_IMPLEMENTED@
906LC_NUMERIC_IMPLEMENTED = @LC_NUMERIC_IMPLEMENTED@
907LC_TIME_IMPLEMENTED = @LC_TIME_IMPLEMENTED@
904LDFLAGS = @LDFLAGS@ 908LDFLAGS = @LDFLAGS@
905LD_SWITCH_SYSTEM = @LD_SWITCH_SYSTEM@ 909LD_SWITCH_SYSTEM = @LD_SWITCH_SYSTEM@
906LD_SWITCH_SYSTEM_TEMACS = @LD_SWITCH_SYSTEM_TEMACS@ 910LD_SWITCH_SYSTEM_TEMACS = @LD_SWITCH_SYSTEM_TEMACS@
diff --git a/lib/limits.in.h b/lib/limits.in.h
index 1d479c3d192..e2e173eb2de 100644
--- a/lib/limits.in.h
+++ b/lib/limits.in.h
@@ -136,7 +136,7 @@
136 136
137/* Macro specified by POSIX. */ 137/* Macro specified by POSIX. */
138 138
139/* The maximal size_t value. Although it might not be of ssize_t type 139/* The maximum ssize_t value. Although it might not be of ssize_t type
140 as it should be, it's too much trouble to fix this minor detail. */ 140 as it should be, it's too much trouble to fix this minor detail. */
141#ifndef SSIZE_MAX 141#ifndef SSIZE_MAX
142# ifdef _WIN64 142# ifdef _WIN64
diff --git a/lib/regcomp.c b/lib/regcomp.c
index 89478396855..1f6a131107b 100644
--- a/lib/regcomp.c
+++ b/lib/regcomp.c
@@ -905,7 +905,7 @@ init_word_char (re_dfa_t *dfa)
905 bitset_word_t bits3 = 0x07fffffe; 905 bitset_word_t bits3 = 0x07fffffe;
906 if (BITSET_WORD_BITS == 64) 906 if (BITSET_WORD_BITS == 64)
907 { 907 {
908 /* Pacify gcc -Woverflow on 32-bit platformns. */ 908 /* Pacify gcc -Woverflow on 32-bit platforms. */
909 dfa->word_char[0] = bits1 << 31 << 1 | bits0; 909 dfa->word_char[0] = bits1 << 31 << 1 | bits0;
910 dfa->word_char[1] = bits3 << 31 << 1 | bits2; 910 dfa->word_char[1] = bits3 << 31 << 1 | bits2;
911 i = 2; 911 i = 2;
diff --git a/m4/fsusage.m4 b/m4/fsusage.m4
index 88f3ca817cb..724a863ac30 100644
--- a/m4/fsusage.m4
+++ b/m4/fsusage.m4
@@ -269,7 +269,7 @@ int check_f_blocks_size[sizeof fsd.f_blocks * CHAR_BIT <= 32 ? -1 : 1];
269 269
270# Check for SunOS statfs brokenness wrt partitions 2GB and larger. 270# Check for SunOS statfs brokenness wrt partitions 2GB and larger.
271# If <sys/vfs.h> exists and struct statfs has a member named f_spare, 271# If <sys/vfs.h> exists and struct statfs has a member named f_spare,
272# enable the work-around code in fsusage.c. 272# enable the workaround code in fsusage.c.
273AC_DEFUN([gl_STATFS_TRUNCATES], 273AC_DEFUN([gl_STATFS_TRUNCATES],
274[ 274[
275 AC_CACHE_CHECK([for statfs that truncates block counts], 275 AC_CACHE_CHECK([for statfs that truncates block counts],
diff --git a/m4/largefile.m4 b/m4/largefile.m4
index a2adb533ae6..8b051c0042b 100644
--- a/m4/largefile.m4
+++ b/m4/largefile.m4
@@ -181,13 +181,16 @@ AS_IF([test "$enable_year2038,$ac_have_year2038" = yes,no],
181# C code used to probe for large file support. 181# C code used to probe for large file support.
182m4_define([_AC_SYS_LARGEFILE_TEST_CODE], 182m4_define([_AC_SYS_LARGEFILE_TEST_CODE],
183[@%:@include <sys/types.h> 183[@%:@include <sys/types.h>
184 /* Check that off_t can represent 2**63 - 1 correctly. 184@%:@ifndef FTYPE
185 We can't simply define LARGE_OFF_T to be 9223372036854775807, 185@%:@ define FTYPE off_t
186@%:@endif
187 /* Check that FTYPE can represent 2**63 - 1 correctly.
188 We can't simply define LARGE_FTYPE to be 9223372036854775807,
186 since some C++ compilers masquerading as C compilers 189 since some C++ compilers masquerading as C compilers
187 incorrectly reject 9223372036854775807. */ 190 incorrectly reject 9223372036854775807. */
188@%:@define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) 191@%:@define LARGE_FTYPE (((FTYPE) 1 << 31 << 31) - 1 + ((FTYPE) 1 << 31 << 31))
189 int off_t_is_large[[(LARGE_OFF_T % 2147483629 == 721 192 int FTYPE_is_large[[(LARGE_FTYPE % 2147483629 == 721
190 && LARGE_OFF_T % 2147483647 == 1) 193 && LARGE_FTYPE % 2147483647 == 1)
191 ? 1 : -1]];[]dnl 194 ? 1 : -1]];[]dnl
192]) 195])
193# Defined by Autoconf 2.71 and circa 2022 Gnulib unwisely depended on it. 196# Defined by Autoconf 2.71 and circa 2022 Gnulib unwisely depended on it.
@@ -227,7 +230,13 @@ AC_DEFUN([_AC_SYS_LARGEFILE_PROBE],
227 AS_IF([test x"$ac_opt" != x"none needed"], 230 AS_IF([test x"$ac_opt" != x"none needed"],
228 [CC="$ac_save_CC $ac_opt"]) 231 [CC="$ac_save_CC $ac_opt"])
229 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_CODE])], 232 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_CODE])],
230 [ac_cv_sys_largefile_opts="$ac_opt" 233 [AS_IF([test x"$ac_opt" = x"none needed"],
234 [# GNU/Linux s390x and alpha need _FILE_OFFSET_BITS=64 for wide ino_t.
235 CC="$CC -DFTYPE=ino_t"
236 AC_COMPILE_IFELSE([], [],
237 [CC="$CC -D_FILE_OFFSET_BITS=64"
238 AC_COMPILE_IFELSE([], [ac_opt='-D_FILE_OFFSET_BITS=64'])])])
239 ac_cv_sys_largefile_opts=$ac_opt
231 ac_opt_found=yes]) 240 ac_opt_found=yes])
232 test $ac_opt_found = no || break 241 test $ac_opt_found = no || break
233 done 242 done
diff --git a/m4/locale-fr.m4 b/m4/locale-fr.m4
index 5e13f3945d2..40b13aeaa79 100644
--- a/m4/locale-fr.m4
+++ b/m4/locale-fr.m4
@@ -1,4 +1,4 @@
1# locale-fr.m4 serial 21 1# locale-fr.m4 serial 22
2dnl Copyright (C) 2003, 2005-2023 Free Software Foundation, Inc. 2dnl Copyright (C) 2003, 2005-2023 Free Software Foundation, Inc.
3dnl This file is free software; the Free Software Foundation 3dnl This file is free software; the Free Software Foundation
4dnl gives unlimited permission to copy and/or distribute it, 4dnl gives unlimited permission to copy and/or distribute it,
@@ -133,15 +133,31 @@ int main () {
133 rm -fr conftest* 133 rm -fr conftest*
134 ]) 134 ])
135 LOCALE_FR=$gt_cv_locale_fr 135 LOCALE_FR=$gt_cv_locale_fr
136 case $LOCALE_FR in #(
137 '' | *[[[:space:]\"\$\'*@<:@]]*)
138 dnl This locale name might cause trouble with sh or make.
139 AC_MSG_WARN([invalid locale "$LOCALE_FR"; assuming "none"])
140 LOCALE_FR=none;;
141 esac
136 AC_SUBST([LOCALE_FR]) 142 AC_SUBST([LOCALE_FR])
137]) 143])
138 144
139dnl Determine the name of a french locale with UTF-8 encoding. 145dnl Determine the name of a french locale with UTF-8 encoding.
140AC_DEFUN_ONCE([gt_LOCALE_FR_UTF8], 146AC_DEFUN_ONCE([gt_LOCALE_FR_UTF8],
141[ 147[
148 AC_REQUIRE([AC_CANONICAL_HOST])
142 AC_REQUIRE([AM_LANGINFO_CODESET]) 149 AC_REQUIRE([AM_LANGINFO_CODESET])
143 AC_CACHE_CHECK([for a french Unicode locale], [gt_cv_locale_fr_utf8], [ 150 AC_CACHE_CHECK([for a french Unicode locale], [gt_cv_locale_fr_utf8], [
144 AC_LANG_CONFTEST([AC_LANG_SOURCE([[ 151 case "$host_os" in
152 *-musl* | midipix*)
153 dnl On musl libc, all kinds of ll_CC.UTF-8 locales exist, even without
154 dnl any locale file on disk. But they are effectively equivalent to the
155 dnl C.UTF-8 locale, except for locale categories (such as LC_MESSSAGES)
156 dnl for which localizations (.mo files) have been installed.
157 gt_cv_locale_fr_utf8=fr_FR.UTF-8
158 ;;
159 *)
160 AC_LANG_CONFTEST([AC_LANG_SOURCE([[
145#include <locale.h> 161#include <locale.h>
146#include <time.h> 162#include <time.h>
147#if HAVE_LANGINFO_CODESET 163#if HAVE_LANGINFO_CODESET
@@ -203,51 +219,82 @@ int main () {
203#endif 219#endif
204 return 0; 220 return 0;
205} 221}
206 ]])]) 222 ]])])
207 if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then 223 if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
208 case "$host_os" in 224 case "$host_os" in
209 # Handle native Windows specially, because there setlocale() interprets 225 # Handle native Windows specially, because there setlocale() interprets
210 # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", 226 # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
211 # "fr" or "fra" as "French" or "French_France.1252", 227 # "fr" or "fra" as "French" or "French_France.1252",
212 # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", 228 # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
213 # "ja" as "Japanese" or "Japanese_Japan.932", 229 # "ja" as "Japanese" or "Japanese_Japan.932",
214 # and similar. 230 # and similar.
215 mingw*) 231 mingw*)
216 # Test for the hypothetical native Windows locale name. 232 # Test for the hypothetical native Windows locale name.
217 if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then 233 if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
218 gt_cv_locale_fr_utf8=French_France.65001 234 gt_cv_locale_fr_utf8=French_France.65001
219 else
220 # None found.
221 gt_cv_locale_fr_utf8=none
222 fi
223 ;;
224 *)
225 # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
226 # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
227 # configure script would override the LC_ALL setting. Likewise for
228 # LC_CTYPE, which is also set at the beginning of the configure script.
229 # Test for the usual locale name.
230 if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
231 gt_cv_locale_fr_utf8=fr_FR
232 else
233 # Test for the locale name with explicit encoding suffix.
234 if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
235 gt_cv_locale_fr_utf8=fr_FR.UTF-8
236 else
237 # Test for the Solaris 7 locale name.
238 if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
239 gt_cv_locale_fr_utf8=fr.UTF-8
240 else 235 else
241 # None found. 236 # None found.
242 gt_cv_locale_fr_utf8=none 237 gt_cv_locale_fr_utf8=none
243 fi 238 fi
244 fi 239 ;;
245 fi 240 *)
246 ;; 241 # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
247 esac 242 # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
248 fi 243 # configure script would override the LC_ALL setting. Likewise for
249 rm -fr conftest* 244 # LC_CTYPE, which is also set at the beginning of the configure script.
245 # Test for the usual locale name.
246 if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
247 gt_cv_locale_fr_utf8=fr_FR
248 else
249 # Test for the locale name with explicit encoding suffix.
250 if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
251 gt_cv_locale_fr_utf8=fr_FR.UTF-8
252 else
253 # Test for the Solaris 7 locale name.
254 if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
255 gt_cv_locale_fr_utf8=fr.UTF-8
256 else
257 # None found.
258 gt_cv_locale_fr_utf8=none
259 fi
260 fi
261 fi
262 ;;
263 esac
264 fi
265 rm -fr conftest*
266 ;;
267 esac
250 ]) 268 ])
251 LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8 269 LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
270 case $LOCALE_FR_UTF8 in #(
271 '' | *[[[:space:]\"\$\'*@<:@]]*)
272 dnl This locale name might cause trouble with sh or make.
273 AC_MSG_WARN([invalid locale "$LOCALE_FR_UTF8"; assuming "none"])
274 LOCALE_FR_UTF8=none;;
275 esac
252 AC_SUBST([LOCALE_FR_UTF8]) 276 AC_SUBST([LOCALE_FR_UTF8])
277
278 dnl Users of $LOCALE_FR_UTF8 need to know which of the locale categories they
279 dnl can rely on.
280 case "$host_os" in
281 *-musl* | midipix*)
282 dnl On musl libc, locale categories other than LC_CTYPE and LC_MESSAGES
283 dnl are effectively unimplemented.
284 LC_COLLATE_IMPLEMENTED=false
285 LC_NUMERIC_IMPLEMENTED=false
286 LC_TIME_IMPLEMENTED=false
287 LC_MONETARY_IMPLEMENTED=false
288 ;;
289 *)
290 LC_COLLATE_IMPLEMENTED=true
291 LC_NUMERIC_IMPLEMENTED=true
292 LC_TIME_IMPLEMENTED=true
293 LC_MONETARY_IMPLEMENTED=true
294 ;;
295 esac
296 AC_SUBST([LC_COLLATE_IMPLEMENTED])
297 AC_SUBST([LC_NUMERIC_IMPLEMENTED])
298 AC_SUBST([LC_TIME_IMPLEMENTED])
299 AC_SUBST([LC_MONETARY_IMPLEMENTED])
253]) 300])
diff --git a/m4/warnings.m4 b/m4/warnings.m4
index 1a3107f846d..9433cb523bf 100644
--- a/m4/warnings.m4
+++ b/m4/warnings.m4
@@ -1,4 +1,4 @@
1# warnings.m4 serial 18 1# warnings.m4 serial 19
2dnl Copyright (C) 2008-2023 Free Software Foundation, Inc. 2dnl Copyright (C) 2008-2023 Free Software Foundation, Inc.
3dnl This file is free software; the Free Software Foundation 3dnl This file is free software; the Free Software Foundation
4dnl gives unlimited permission to copy and/or distribute it, 4dnl gives unlimited permission to copy and/or distribute it,
@@ -81,12 +81,14 @@ AC_DEFUN([gl_UNKNOWN_WARNINGS_ARE_ERRORS_IMPL],
81# gl_WARN_ADD(OPTION, [VARIABLE = WARN_CFLAGS/WARN_CXXFLAGS], 81# gl_WARN_ADD(OPTION, [VARIABLE = WARN_CFLAGS/WARN_CXXFLAGS],
82# [PROGRAM = AC_LANG_PROGRAM()]) 82# [PROGRAM = AC_LANG_PROGRAM()])
83# ----------------------------------------------------------- 83# -----------------------------------------------------------
84# Adds parameter to WARN_CFLAGS/WARN_CXXFLAGS if the compiler supports it 84# Adds OPTION to VARIABLE (which defaults to WARN_CFLAGS or WARN_CXXFLAGS)
85# when compiling PROGRAM. For example, gl_WARN_ADD([-Wparentheses]). 85# if the compiler supports it when compiling PROGRAM.
86# 86#
87# If VARIABLE is a variable name, AC_SUBST it. 87# If VARIABLE is a variable name, AC_SUBST it.
88# 88#
89# The effects of this macro depend on the current language (_AC_LANG). 89# The effects of this macro depend on the current language (_AC_LANG).
90#
91# Example: gl_WARN_ADD([-Wparentheses]).
90AC_DEFUN([gl_WARN_ADD], 92AC_DEFUN([gl_WARN_ADD],
91[AC_REQUIRE([gl_UNKNOWN_WARNINGS_ARE_ERRORS(]_AC_LANG[)]) 93[AC_REQUIRE([gl_UNKNOWN_WARNINGS_ARE_ERRORS(]_AC_LANG[)])
92gl_COMPILER_OPTION_IF([$1], 94gl_COMPILER_OPTION_IF([$1],
@@ -123,7 +125,12 @@ AC_DEFUN([gl_CC_INHIBIT_WARNINGS],
123 ]) 125 ])
124 case "$gl_cv_cc_winhibit" in 126 case "$gl_cv_cc_winhibit" in
125 none) GL_CFLAG_INHIBIT_WARNINGS='' ;; 127 none) GL_CFLAG_INHIBIT_WARNINGS='' ;;
126 *) GL_CFLAG_INHIBIT_WARNINGS="$gl_cv_cc_winhibit" ;; 128 *)
129 GL_CFLAG_INHIBIT_WARNINGS="$gl_cv_cc_winhibit"
130 dnl If all warnings are inhibited, there's no point in having the GCC
131 dnl analyzer enabled. This saves RAM requirements and CPU consumption.
132 gl_WARN_ADD([-fno-analyzer], [GL_CFLAG_INHIBIT_WARNINGS])
133 ;;
127 esac 134 esac
128 AC_SUBST([GL_CFLAG_INHIBIT_WARNINGS]) 135 AC_SUBST([GL_CFLAG_INHIBIT_WARNINGS])
129]) 136])
@@ -150,7 +157,12 @@ AC_DEFUN([gl_CXX_INHIBIT_WARNINGS],
150 ]) 157 ])
151 case "$gl_cv_cxx_winhibit" in 158 case "$gl_cv_cxx_winhibit" in
152 none) GL_CXXFLAG_INHIBIT_WARNINGS='' ;; 159 none) GL_CXXFLAG_INHIBIT_WARNINGS='' ;;
153 *) GL_CXXFLAG_INHIBIT_WARNINGS="$gl_cv_cxx_winhibit" ;; 160 *)
161 GL_CXXFLAG_INHIBIT_WARNINGS="$gl_cv_cxx_winhibit"
162 dnl If all warnings are inhibited, there's no point in having the GCC
163 dnl analyzer enabled. This saves RAM requirements and CPU consumption.
164 gl_WARN_ADD([-fno-analyzer], [GL_CXXFLAG_INHIBIT_WARNINGS])
165 ;;
154 esac 166 esac
155 else 167 else
156 GL_CXXFLAG_INHIBIT_WARNINGS='' 168 GL_CXXFLAG_INHIBIT_WARNINGS=''