aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog11
-rw-r--r--NEWS2
-rw-r--r--README.git3
-rw-r--r--awkgram.c1
-rw-r--r--awkgram.y1
-rwxr-xr-xconfig.guess89
-rwxr-xr-xconfig.sub4
-rw-r--r--doc/ChangeLog10
-rw-r--r--doc/gawk.info952
-rw-r--r--doc/gawk.texi7
-rw-r--r--doc/gawktexi.in7
-rw-r--r--doc/texinfo.tex528
-rw-r--r--extension/build-aux/ChangeLog4
-rwxr-xr-xextension/build-aux/config.guess89
-rwxr-xr-xextension/build-aux/config.sub4
15 files changed, 836 insertions, 876 deletions
diff --git a/ChangeLog b/ChangeLog
index 6a8afe04..44178ffc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2019-06-21 Arnold D. Robbins <arnold@skeeve.com>
+
+ * config.guess, config.sub: Updated from GNULIB.
+ * awkgram.y (get_src_buf): Set buffers to zero to avoid
+ possible issues with accessing uninitialized memory.
+ Thanks to valgrind, as pointed out by Nadezhda Vyukova
+ <qniva@yandex.ru>.
+ * NEWS, README.git: Fix some typos.
+
2019-06-19 Arnold D. Robbins <arnold@skeeve.com>
* re.c (make_regexp): If do_posix, have {} in ok_to_escape.
@@ -88,7 +97,7 @@
* awk.h (errcount): Declare.
* awkgram.y (errcount): No longer static.
- * command.y (dbg_errcount): Renamed from errcount.j
+ * command.y (dbg_errcount): Renamed from errcount.
* main.c (catchsig, catchsegv): If errcount > 0, just exit,
don't abort.
diff --git a/NEWS b/NEWS
index 9846fe11..631df171 100644
--- a/NEWS
+++ b/NEWS
@@ -22,7 +22,7 @@ Changes from 5.0.0 to 5.0.1
6. Infrastructure upgrades: Bison 3.4.
-N. A number of bugs, some of them quite significant, have been fixed.
+7. A number of bugs, some of them quite significant, have been fixed.
See the ChangeLog for details.
Changes from 4.2.1 to 5.0.0
diff --git a/README.git b/README.git
index b590780d..8edf5a8a 100644
--- a/README.git
+++ b/README.git
@@ -1,10 +1,11 @@
+Thu Jun 20 11:01:04 IDT 2019
Wed Aug 23 08:07:18 IDT 2017
============================
If you are reading this, you have retrieved the gawk code base via
Git from savannah.gnu.org. This is good; gawk no longer uses CVS.
-On GNU and Unix systems, please execute use the following to build
+On GNU and Unix systems, please use the following to build
gawk after doing `git clone' or `git pull':
make distclean # if not a new clone
diff --git a/awkgram.c b/awkgram.c
index 68cee61a..061d2975 100644
--- a/awkgram.c
+++ b/awkgram.c
@@ -5682,6 +5682,7 @@ get_src_buf()
sourcefile->bufsize = l;
newfile = true;
emalloc(sourcefile->buf, char *, sourcefile->bufsize, "get_src_buf");
+ memset(sourcefile->buf, '\0', sourcefile->bufsize); // keep valgrind happy
lexptr = lexptr_begin = lexeme = sourcefile->buf;
savelen = 0;
sourceline = 1;
diff --git a/awkgram.y b/awkgram.y
index 3cbcfd31..a940ac9d 100644
--- a/awkgram.y
+++ b/awkgram.y
@@ -3185,6 +3185,7 @@ get_src_buf()
sourcefile->bufsize = l;
newfile = true;
emalloc(sourcefile->buf, char *, sourcefile->bufsize, "get_src_buf");
+ memset(sourcefile->buf, '\0', sourcefile->bufsize); // keep valgrind happy
lexptr = lexptr_begin = lexeme = sourcefile->buf;
savelen = 0;
sourceline = 1;
diff --git a/config.guess b/config.guess
index 79d1317f..41b8b854 100755
--- a/config.guess
+++ b/config.guess
@@ -2,7 +2,7 @@
# Attempt to guess a canonical system name.
# Copyright 1992-2019 Free Software Foundation, Inc.
-timestamp='2019-03-04'
+timestamp='2019-06-10'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -262,6 +262,9 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
*:SolidBSD:*:*)
echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
exit ;;
+ *:OS108:*:*)
+ echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE"
+ exit ;;
macppc:MirBSD:*:*)
echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
exit ;;
@@ -1325,38 +1328,39 @@ EOF
echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
exit ;;
*:Darwin:*:*)
- UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
- set_cc_for_build
- if test "$UNAME_PROCESSOR" = unknown ; then
- UNAME_PROCESSOR=powerpc
+ UNAME_PROCESSOR=`uname -p`
+ case $UNAME_PROCESSOR in
+ unknown) UNAME_PROCESSOR=powerpc ;;
+ esac
+ if command -v xcode-select > /dev/null 2> /dev/null && \
+ ! xcode-select --print-path > /dev/null 2> /dev/null ; then
+ # Avoid executing cc if there is no toolchain installed as
+ # cc will be a stub that puts up a graphical alert
+ # prompting the user to install developer tools.
+ CC_FOR_BUILD=no_compiler_found
+ else
+ set_cc_for_build
fi
- if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then
- if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_64BIT_ARCH >/dev/null
- then
- case $UNAME_PROCESSOR in
- i386) UNAME_PROCESSOR=x86_64 ;;
- powerpc) UNAME_PROCESSOR=powerpc64 ;;
- esac
- fi
- # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
- if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_PPC >/dev/null
- then
- UNAME_PROCESSOR=powerpc
- fi
+ if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ case $UNAME_PROCESSOR in
+ i386) UNAME_PROCESSOR=x86_64 ;;
+ powerpc) UNAME_PROCESSOR=powerpc64 ;;
+ esac
+ fi
+ # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
+ if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_PPC >/dev/null
+ then
+ UNAME_PROCESSOR=powerpc
fi
elif test "$UNAME_PROCESSOR" = i386 ; then
- # Avoid executing cc on OS X 10.9, as it ships with a stub
- # that puts up a graphical alert prompting to install
- # developer tools. Any system running Mac OS X 10.7 or
- # later (Darwin 11 and later) is required to have a 64-bit
- # processor. This is not true of the ARM version of Darwin
- # that Apple uses in portable devices.
- UNAME_PROCESSOR=x86_64
+ # uname -m returns i386 or x86_64
+ UNAME_PROCESSOR=$UNAME_MACHINE
fi
echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
exit ;;
@@ -1468,6 +1472,14 @@ cat > "$dummy.c" <<EOF
#include <sys/types.h>
#include <sys/utsname.h>
#endif
+#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
+#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
+#include <signal.h>
+#if defined(_SIZE_T_) || defined(SIGLOST)
+#include <sys/utsname.h>
+#endif
+#endif
+#endif
main ()
{
#if defined (sony)
@@ -1555,18 +1567,23 @@ main ()
printf ("vax-dec-bsd\n"); exit (0);
#endif
#else
+#if defined(_SIZE_T_) || defined(SIGLOST)
+ struct utsname un;
+ uname (&un);
+ printf ("vax-dec-ultrix%s\n", un.release); exit (0);
+#else
printf ("vax-dec-ultrix\n"); exit (0);
#endif
#endif
+#endif
#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
-#include <signal.h>
-#if defined(_SIZE_T_) /* >= ULTRIX4 */
- printf ("mips-dec-ultrix4\n"); exit (0);
+#if defined(_SIZE_T_) || defined(SIGLOST)
+ struct utsname *un;
+ uname (&un);
+ printf ("mips-dec-ultrix%s\n", un.release); exit (0);
#else
-#if defined(ULTRIX3) || defined(ultrix3) || defined(SIGLOST)
- printf ("mips-dec-ultrix3\n"); exit (0);
-#endif
+ printf ("mips-dec-ultrix\n"); exit (0);
#endif
#endif
#endif
diff --git a/config.sub b/config.sub
index f53af5a2..5b158ac4 100755
--- a/config.sub
+++ b/config.sub
@@ -2,7 +2,7 @@
# Configuration validation subroutine script.
# Copyright 1992-2019 Free Software Foundation, Inc.
-timestamp='2019-01-05'
+timestamp='2019-05-23'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -1172,7 +1172,7 @@ case $cpu-$vendor in
| asmjs \
| ba \
| be32 | be64 \
- | bfin | bs2000 \
+ | bfin | bpf | bs2000 \
| c[123]* | c30 | [cjt]90 | c4x \
| c8051 | clipper | craynv | csky | cydra \
| d10v | d30v | dlx | dsp16xx \
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 364854d9..5ea91aaf 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,13 @@
+2019-06-21 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawktexi.in (Input Exercises): Remove exercise that is
+ no longer relevant. Thanks to Mark Krauze <daburashka@ya.ru>
+ for pointing this out.
+
+2019-06-21 Arnold D. Robbins <arnold@skeeve.com>
+
+ * texinfo.tex: Updated from GNULIB.
+
2019-06-18 Arnold D. Robbins <arnold@skeeve.com>
* 5.0.1: Release tar ball made.
diff --git a/doc/gawk.info b/doc/gawk.info
index 1e8bf194..e5a52702 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -6393,12 +6393,6 @@ File: gawk.info, Node: Input Exercises, Prev: Input Summary, Up: Reading File
associated with each ballot item, and print the total votes,
including abstentions, for each item.
- 2. *note Plain Getline::, presented a program to remove C-style
- comments ('/* ... */') from the input. That program does not work
- if one comment ends on one line and another one starts later on the
- same line. That can be fixed by making one simple change. What is
- it?
-

File: gawk.info, Node: Printing, Next: Expressions, Prev: Reading Files, Up: Top
@@ -37035,478 +37029,478 @@ Node: Retrying Input278719
Node: Command-line directories279918
Node: Input Summary280824
Node: Input Exercises283996
-Node: Printing284724
-Node: Print286558
-Node: Print Examples288015
-Node: Output Separators290795
-Node: OFMT292812
-Node: Printf294168
-Node: Basic Printf294953
-Node: Control Letters296527
-Node: Format Modifiers301691
-Node: Printf Examples307706
-Node: Redirection310192
-Node: Special FD317033
-Ref: Special FD-Footnote-1320201
-Node: Special Files320275
-Node: Other Inherited Files320892
-Node: Special Network321893
-Node: Special Caveats322753
-Node: Close Files And Pipes323702
-Ref: table-close-pipe-return-values330609
-Ref: Close Files And Pipes-Footnote-1331422
-Ref: Close Files And Pipes-Footnote-2331570
-Node: Nonfatal331722
-Node: Output Summary334060
-Node: Output Exercises335282
-Node: Expressions335961
-Node: Values337149
-Node: Constants337827
-Node: Scalar Constants338518
-Ref: Scalar Constants-Footnote-1341042
-Node: Nondecimal-numbers341292
-Node: Regexp Constants344293
-Node: Using Constant Regexps344819
-Node: Standard Regexp Constants345441
-Node: Strong Regexp Constants348629
-Node: Variables351587
-Node: Using Variables352244
-Node: Assignment Options354154
-Node: Conversion356621
-Node: Strings And Numbers357145
-Ref: Strings And Numbers-Footnote-1360208
-Node: Locale influences conversions360317
-Ref: table-locale-affects363075
-Node: All Operators363693
-Node: Arithmetic Ops364322
-Node: Concatenation366828
-Ref: Concatenation-Footnote-1369675
-Node: Assignment Ops369782
-Ref: table-assign-ops374773
-Node: Increment Ops376086
-Node: Truth Values and Conditions379546
-Node: Truth Values380620
-Node: Typing and Comparison381668
-Node: Variable Typing382488
-Ref: Variable Typing-Footnote-1388951
-Ref: Variable Typing-Footnote-2389023
-Node: Comparison Operators389100
-Ref: table-relational-ops389519
-Node: POSIX String Comparison393014
-Ref: POSIX String Comparison-Footnote-1394709
-Ref: POSIX String Comparison-Footnote-2394848
-Node: Boolean Ops394932
-Ref: Boolean Ops-Footnote-1399414
-Node: Conditional Exp399506
-Node: Function Calls401242
-Node: Precedence405119
-Node: Locales408778
-Node: Expressions Summary410410
-Node: Patterns and Actions412983
-Node: Pattern Overview414103
-Node: Regexp Patterns415780
-Node: Expression Patterns416322
-Node: Ranges420103
-Node: BEGIN/END423211
-Node: Using BEGIN/END423972
-Ref: Using BEGIN/END-Footnote-1426708
-Node: I/O And BEGIN/END426814
-Node: BEGINFILE/ENDFILE429128
-Node: Empty432041
-Node: Using Shell Variables432358
-Node: Action Overview434632
-Node: Statements436957
-Node: If Statement438805
-Node: While Statement440300
-Node: Do Statement442328
-Node: For Statement443476
-Node: Switch Statement446647
-Node: Break Statement449033
-Node: Continue Statement451125
-Node: Next Statement452952
-Node: Nextfile Statement455335
-Node: Exit Statement457987
-Node: Built-in Variables460390
-Node: User-modified461523
-Node: Auto-set469290
-Ref: Auto-set-Footnote-1486097
-Ref: Auto-set-Footnote-2486303
-Node: ARGC and ARGV486359
-Node: Pattern Action Summary490572
-Node: Arrays493002
-Node: Array Basics494331
-Node: Array Intro495175
-Ref: figure-array-elements497150
-Ref: Array Intro-Footnote-1499854
-Node: Reference to Elements499982
-Node: Assigning Elements502446
-Node: Array Example502937
-Node: Scanning an Array504696
-Node: Controlling Scanning507718
-Ref: Controlling Scanning-Footnote-1513117
-Node: Numeric Array Subscripts513433
-Node: Uninitialized Subscripts515617
-Node: Delete517236
-Ref: Delete-Footnote-1519988
-Node: Multidimensional520045
-Node: Multiscanning523140
-Node: Arrays of Arrays524731
-Node: Arrays Summary529499
-Node: Functions531592
-Node: Built-in532630
-Node: Calling Built-in533711
-Node: Numeric Functions535707
-Ref: Numeric Functions-Footnote-1539735
-Ref: Numeric Functions-Footnote-2540383
-Ref: Numeric Functions-Footnote-3540431
-Node: String Functions540703
-Ref: String Functions-Footnote-1564561
-Ref: String Functions-Footnote-2564689
-Ref: String Functions-Footnote-3564937
-Node: Gory Details565024
-Ref: table-sub-escapes566815
-Ref: table-sub-proposed568334
-Ref: table-posix-sub569697
-Ref: table-gensub-escapes571238
-Ref: Gory Details-Footnote-1572061
-Node: I/O Functions572215
-Ref: table-system-return-values578683
-Ref: I/O Functions-Footnote-1580763
-Ref: I/O Functions-Footnote-2580911
-Node: Time Functions581031
-Ref: Time Functions-Footnote-1591702
-Ref: Time Functions-Footnote-2591770
-Ref: Time Functions-Footnote-3591928
-Ref: Time Functions-Footnote-4592039
-Ref: Time Functions-Footnote-5592151
-Ref: Time Functions-Footnote-6592378
-Node: Bitwise Functions592644
-Ref: table-bitwise-ops593238
-Ref: Bitwise Functions-Footnote-1599301
-Ref: Bitwise Functions-Footnote-2599474
-Node: Type Functions599665
-Node: I18N Functions602528
-Node: User-defined604179
-Node: Definition Syntax604991
-Ref: Definition Syntax-Footnote-1610678
-Node: Function Example610749
-Ref: Function Example-Footnote-1613671
-Node: Function Calling613693
-Node: Calling A Function614281
-Node: Variable Scope615239
-Node: Pass By Value/Reference618233
-Node: Function Caveats620877
-Ref: Function Caveats-Footnote-1622924
-Node: Return Statement623044
-Node: Dynamic Typing626023
-Node: Indirect Calls626953
-Ref: Indirect Calls-Footnote-1637205
-Node: Functions Summary637333
-Node: Library Functions640038
-Ref: Library Functions-Footnote-1643645
-Ref: Library Functions-Footnote-2643788
-Node: Library Names643959
-Ref: Library Names-Footnote-1647626
-Ref: Library Names-Footnote-2647849
-Node: General Functions647935
-Node: Strtonum Function649038
-Node: Assert Function652060
-Node: Round Function655386
-Node: Cliff Random Function656926
-Node: Ordinal Functions657942
-Ref: Ordinal Functions-Footnote-1661005
-Ref: Ordinal Functions-Footnote-2661257
-Node: Join Function661467
-Ref: Join Function-Footnote-1663237
-Node: Getlocaltime Function663437
-Node: Readfile Function667179
-Node: Shell Quoting669156
-Node: Data File Management670557
-Node: Filetrans Function671189
-Node: Rewind Function675285
-Node: File Checking677194
-Ref: File Checking-Footnote-1678528
-Node: Empty Files678729
-Node: Ignoring Assigns680708
-Node: Getopt Function682258
-Ref: Getopt Function-Footnote-1693727
-Node: Passwd Functions693927
-Ref: Passwd Functions-Footnote-1702766
-Node: Group Functions702854
-Ref: Group Functions-Footnote-1710752
-Node: Walking Arrays710959
-Node: Library Functions Summary713967
-Node: Library Exercises715373
-Node: Sample Programs715838
-Node: Running Examples716608
-Node: Clones717336
-Node: Cut Program718560
-Node: Egrep Program728489
-Ref: Egrep Program-Footnote-1736001
-Node: Id Program736111
-Node: Split Program739791
-Ref: Split Program-Footnote-1743249
-Node: Tee Program743378
-Node: Uniq Program746168
-Node: Wc Program753789
-Ref: Wc Program-Footnote-1758044
-Node: Miscellaneous Programs758138
-Node: Dupword Program759351
-Node: Alarm Program761381
-Node: Translate Program766236
-Ref: Translate Program-Footnote-1770801
-Node: Labels Program771071
-Ref: Labels Program-Footnote-1774422
-Node: Word Sorting774506
-Node: History Sorting778578
-Node: Extract Program780413
-Node: Simple Sed788467
-Node: Igawk Program791541
-Ref: Igawk Program-Footnote-1805872
-Ref: Igawk Program-Footnote-2806074
-Ref: Igawk Program-Footnote-3806196
-Node: Anagram Program806311
-Node: Signature Program809373
-Node: Programs Summary810620
-Node: Programs Exercises811834
-Ref: Programs Exercises-Footnote-1815963
-Node: Advanced Features816054
-Node: Nondecimal Data818044
-Node: Array Sorting819635
-Node: Controlling Array Traversal820335
-Ref: Controlling Array Traversal-Footnote-1828703
-Node: Array Sorting Functions828821
-Ref: Array Sorting Functions-Footnote-1833912
-Node: Two-way I/O834108
-Ref: Two-way I/O-Footnote-1841829
-Ref: Two-way I/O-Footnote-2842016
-Node: TCP/IP Networking842098
-Node: Profiling845216
-Node: Advanced Features Summary854231
-Node: Internationalization856075
-Node: I18N and L10N857555
-Node: Explaining gettext858242
-Ref: Explaining gettext-Footnote-1864134
-Ref: Explaining gettext-Footnote-2864319
-Node: Programmer i18n864484
-Ref: Programmer i18n-Footnote-1869433
-Node: Translator i18n869482
-Node: String Extraction870276
-Ref: String Extraction-Footnote-1871408
-Node: Printf Ordering871494
-Ref: Printf Ordering-Footnote-1874280
-Node: I18N Portability874344
-Ref: I18N Portability-Footnote-1876800
-Node: I18N Example876863
-Ref: I18N Example-Footnote-1880138
-Ref: I18N Example-Footnote-2880211
-Node: Gawk I18N880320
-Node: I18N Summary880969
-Node: Debugger882310
-Node: Debugging883310
-Node: Debugging Concepts883751
-Node: Debugging Terms885560
-Node: Awk Debugging888135
-Ref: Awk Debugging-Footnote-1889080
-Node: Sample Debugging Session889212
-Node: Debugger Invocation889746
-Node: Finding The Bug891132
-Node: List of Debugger Commands897606
-Node: Breakpoint Control898939
-Node: Debugger Execution Control902633
-Node: Viewing And Changing Data905995
-Node: Execution Stack909536
-Node: Debugger Info911173
-Node: Miscellaneous Debugger Commands915244
-Node: Readline Support920306
-Node: Limitations921202
-Node: Debugging Summary923756
-Node: Namespaces925035
-Node: Global Namespace926114
-Node: Qualified Names927512
-Node: Default Namespace928511
-Node: Changing The Namespace929252
-Node: Naming Rules930866
-Node: Internal Name Management932714
-Node: Namespace Example933756
-Node: Namespace And Features936318
-Node: Namespace Summary937753
-Node: Arbitrary Precision Arithmetic939230
-Node: Computer Arithmetic940717
-Ref: table-numeric-ranges944483
-Ref: table-floating-point-ranges944976
-Ref: Computer Arithmetic-Footnote-1945634
-Node: Math Definitions945691
-Ref: table-ieee-formats949007
-Ref: Math Definitions-Footnote-1949610
-Node: MPFR features949715
-Node: FP Math Caution951433
-Ref: FP Math Caution-Footnote-1952505
-Node: Inexactness of computations952874
-Node: Inexact representation953834
-Node: Comparing FP Values955194
-Node: Errors accumulate956435
-Node: Getting Accuracy957868
-Node: Try To Round960578
-Node: Setting precision961477
-Ref: table-predefined-precision-strings962174
-Node: Setting the rounding mode964004
-Ref: table-gawk-rounding-modes964378
-Ref: Setting the rounding mode-Footnote-1968309
-Node: Arbitrary Precision Integers968488
-Ref: Arbitrary Precision Integers-Footnote-1971663
-Node: Checking for MPFR971812
-Node: POSIX Floating Point Problems973286
-Ref: POSIX Floating Point Problems-Footnote-1977571
-Node: Floating point summary977609
-Node: Dynamic Extensions979799
-Node: Extension Intro981352
-Node: Plugin License982618
-Node: Extension Mechanism Outline983415
-Ref: figure-load-extension983854
-Ref: figure-register-new-function985419
-Ref: figure-call-new-function986511
-Node: Extension API Description988573
-Node: Extension API Functions Introduction990215
-Ref: table-api-std-headers992051
-Node: General Data Types995916
-Ref: General Data Types-Footnote-11004277
-Node: Memory Allocation Functions1004576
-Ref: Memory Allocation Functions-Footnote-11008786
-Node: Constructor Functions1008885
-Node: Registration Functions1012471
-Node: Extension Functions1013156
-Node: Exit Callback Functions1018478
-Node: Extension Version String1019728
-Node: Input Parsers1020391
-Node: Output Wrappers1033112
-Node: Two-way processors1037624
-Node: Printing Messages1039889
-Ref: Printing Messages-Footnote-11041060
-Node: Updating ERRNO1041213
-Node: Requesting Values1041952
-Ref: table-value-types-returned1042689
-Node: Accessing Parameters1043625
-Node: Symbol Table Access1044860
-Node: Symbol table by name1045372
-Ref: Symbol table by name-Footnote-11048396
-Node: Symbol table by cookie1048524
-Ref: Symbol table by cookie-Footnote-11052709
-Node: Cached values1052773
-Ref: Cached values-Footnote-11056309
-Node: Array Manipulation1056462
-Ref: Array Manipulation-Footnote-11057553
-Node: Array Data Types1057590
-Ref: Array Data Types-Footnote-11060248
-Node: Array Functions1060340
-Node: Flattening Arrays1064838
-Node: Creating Arrays1071814
-Node: Redirection API1076581
-Node: Extension API Variables1079414
-Node: Extension Versioning1080125
-Ref: gawk-api-version1080554
-Node: Extension GMP/MPFR Versioning1082285
-Node: Extension API Informational Variables1083913
-Node: Extension API Boilerplate1084986
-Node: Changes from API V11088960
-Node: Finding Extensions1090532
-Node: Extension Example1091091
-Node: Internal File Description1091889
-Node: Internal File Ops1095969
-Ref: Internal File Ops-Footnote-11107319
-Node: Using Internal File Ops1107459
-Ref: Using Internal File Ops-Footnote-11109842
-Node: Extension Samples1110116
-Node: Extension Sample File Functions1111645
-Node: Extension Sample Fnmatch1119294
-Node: Extension Sample Fork1120781
-Node: Extension Sample Inplace1121999
-Node: Extension Sample Ord1125303
-Node: Extension Sample Readdir1126139
-Ref: table-readdir-file-types1127028
-Node: Extension Sample Revout1127833
-Node: Extension Sample Rev2way1128422
-Node: Extension Sample Read write array1129162
-Node: Extension Sample Readfile1131104
-Node: Extension Sample Time1132199
-Node: Extension Sample API Tests1133547
-Node: gawkextlib1134039
-Node: Extension summary1136957
-Node: Extension Exercises1140659
-Node: Language History1141901
-Node: V7/SVR3.11143557
-Node: SVR41145709
-Node: POSIX1147143
-Node: BTL1148523
-Node: POSIX/GNU1149252
-Node: Feature History1155030
-Node: Common Extensions1171076
-Node: Ranges and Locales1172359
-Ref: Ranges and Locales-Footnote-11176975
-Ref: Ranges and Locales-Footnote-21177002
-Ref: Ranges and Locales-Footnote-31177237
-Node: Contributors1177458
-Node: History summary1183411
-Node: Installation1184791
-Node: Gawk Distribution1185735
-Node: Getting1186219
-Node: Extracting1187182
-Node: Distribution contents1188820
-Node: Unix Installation1195300
-Node: Quick Installation1195982
-Node: Shell Startup Files1198396
-Node: Additional Configuration Options1199485
-Node: Configuration Philosophy1201800
-Node: Non-Unix Installation1204169
-Node: PC Installation1204629
-Node: PC Binary Installation1205467
-Node: PC Compiling1205902
-Node: PC Using1207019
-Node: Cygwin1210572
-Node: MSYS1211671
-Node: VMS Installation1212172
-Node: VMS Compilation1212963
-Ref: VMS Compilation-Footnote-11214192
-Node: VMS Dynamic Extensions1214250
-Node: VMS Installation Details1215935
-Node: VMS Running1218188
-Node: VMS GNV1222467
-Node: VMS Old Gawk1223202
-Node: Bugs1223673
-Node: Bug address1224336
-Node: Usenet1227318
-Node: Maintainers1228322
-Node: Other Versions1229583
-Node: Installation summary1236671
-Node: Notes1237873
-Node: Compatibility Mode1238667
-Node: Additions1239449
-Node: Accessing The Source1240374
-Node: Adding Code1241811
-Node: New Ports1248030
-Node: Derived Files1252405
-Ref: Derived Files-Footnote-11258065
-Ref: Derived Files-Footnote-21258100
-Ref: Derived Files-Footnote-31258698
-Node: Future Extensions1258812
-Node: Implementation Limitations1259470
-Node: Extension Design1260653
-Node: Old Extension Problems1261797
-Ref: Old Extension Problems-Footnote-11263315
-Node: Extension New Mechanism Goals1263372
-Ref: Extension New Mechanism Goals-Footnote-11266736
-Node: Extension Other Design Decisions1266925
-Node: Extension Future Growth1269038
-Node: Notes summary1269874
-Node: Basic Concepts1271032
-Node: Basic High Level1271713
-Ref: figure-general-flow1271995
-Ref: figure-process-flow1272680
-Ref: Basic High Level-Footnote-11275981
-Node: Basic Data Typing1276166
-Node: Glossary1279494
-Node: Copying1311332
-Node: GNU Free Documentation License1348875
-Node: Index1373995
+Node: Printing284430
+Node: Print286264
+Node: Print Examples287721
+Node: Output Separators290501
+Node: OFMT292518
+Node: Printf293874
+Node: Basic Printf294659
+Node: Control Letters296233
+Node: Format Modifiers301397
+Node: Printf Examples307412
+Node: Redirection309898
+Node: Special FD316739
+Ref: Special FD-Footnote-1319907
+Node: Special Files319981
+Node: Other Inherited Files320598
+Node: Special Network321599
+Node: Special Caveats322459
+Node: Close Files And Pipes323408
+Ref: table-close-pipe-return-values330315
+Ref: Close Files And Pipes-Footnote-1331128
+Ref: Close Files And Pipes-Footnote-2331276
+Node: Nonfatal331428
+Node: Output Summary333766
+Node: Output Exercises334988
+Node: Expressions335667
+Node: Values336855
+Node: Constants337533
+Node: Scalar Constants338224
+Ref: Scalar Constants-Footnote-1340748
+Node: Nondecimal-numbers340998
+Node: Regexp Constants343999
+Node: Using Constant Regexps344525
+Node: Standard Regexp Constants345147
+Node: Strong Regexp Constants348335
+Node: Variables351293
+Node: Using Variables351950
+Node: Assignment Options353860
+Node: Conversion356327
+Node: Strings And Numbers356851
+Ref: Strings And Numbers-Footnote-1359914
+Node: Locale influences conversions360023
+Ref: table-locale-affects362781
+Node: All Operators363399
+Node: Arithmetic Ops364028
+Node: Concatenation366534
+Ref: Concatenation-Footnote-1369381
+Node: Assignment Ops369488
+Ref: table-assign-ops374479
+Node: Increment Ops375792
+Node: Truth Values and Conditions379252
+Node: Truth Values380326
+Node: Typing and Comparison381374
+Node: Variable Typing382194
+Ref: Variable Typing-Footnote-1388657
+Ref: Variable Typing-Footnote-2388729
+Node: Comparison Operators388806
+Ref: table-relational-ops389225
+Node: POSIX String Comparison392720
+Ref: POSIX String Comparison-Footnote-1394415
+Ref: POSIX String Comparison-Footnote-2394554
+Node: Boolean Ops394638
+Ref: Boolean Ops-Footnote-1399120
+Node: Conditional Exp399212
+Node: Function Calls400948
+Node: Precedence404825
+Node: Locales408484
+Node: Expressions Summary410116
+Node: Patterns and Actions412689
+Node: Pattern Overview413809
+Node: Regexp Patterns415486
+Node: Expression Patterns416028
+Node: Ranges419809
+Node: BEGIN/END422917
+Node: Using BEGIN/END423678
+Ref: Using BEGIN/END-Footnote-1426414
+Node: I/O And BEGIN/END426520
+Node: BEGINFILE/ENDFILE428834
+Node: Empty431747
+Node: Using Shell Variables432064
+Node: Action Overview434338
+Node: Statements436663
+Node: If Statement438511
+Node: While Statement440006
+Node: Do Statement442034
+Node: For Statement443182
+Node: Switch Statement446353
+Node: Break Statement448739
+Node: Continue Statement450831
+Node: Next Statement452658
+Node: Nextfile Statement455041
+Node: Exit Statement457693
+Node: Built-in Variables460096
+Node: User-modified461229
+Node: Auto-set468996
+Ref: Auto-set-Footnote-1485803
+Ref: Auto-set-Footnote-2486009
+Node: ARGC and ARGV486065
+Node: Pattern Action Summary490278
+Node: Arrays492708
+Node: Array Basics494037
+Node: Array Intro494881
+Ref: figure-array-elements496856
+Ref: Array Intro-Footnote-1499560
+Node: Reference to Elements499688
+Node: Assigning Elements502152
+Node: Array Example502643
+Node: Scanning an Array504402
+Node: Controlling Scanning507424
+Ref: Controlling Scanning-Footnote-1512823
+Node: Numeric Array Subscripts513139
+Node: Uninitialized Subscripts515323
+Node: Delete516942
+Ref: Delete-Footnote-1519694
+Node: Multidimensional519751
+Node: Multiscanning522846
+Node: Arrays of Arrays524437
+Node: Arrays Summary529205
+Node: Functions531298
+Node: Built-in532336
+Node: Calling Built-in533417
+Node: Numeric Functions535413
+Ref: Numeric Functions-Footnote-1539441
+Ref: Numeric Functions-Footnote-2540089
+Ref: Numeric Functions-Footnote-3540137
+Node: String Functions540409
+Ref: String Functions-Footnote-1564267
+Ref: String Functions-Footnote-2564395
+Ref: String Functions-Footnote-3564643
+Node: Gory Details564730
+Ref: table-sub-escapes566521
+Ref: table-sub-proposed568040
+Ref: table-posix-sub569403
+Ref: table-gensub-escapes570944
+Ref: Gory Details-Footnote-1571767
+Node: I/O Functions571921
+Ref: table-system-return-values578389
+Ref: I/O Functions-Footnote-1580469
+Ref: I/O Functions-Footnote-2580617
+Node: Time Functions580737
+Ref: Time Functions-Footnote-1591408
+Ref: Time Functions-Footnote-2591476
+Ref: Time Functions-Footnote-3591634
+Ref: Time Functions-Footnote-4591745
+Ref: Time Functions-Footnote-5591857
+Ref: Time Functions-Footnote-6592084
+Node: Bitwise Functions592350
+Ref: table-bitwise-ops592944
+Ref: Bitwise Functions-Footnote-1599007
+Ref: Bitwise Functions-Footnote-2599180
+Node: Type Functions599371
+Node: I18N Functions602234
+Node: User-defined603885
+Node: Definition Syntax604697
+Ref: Definition Syntax-Footnote-1610384
+Node: Function Example610455
+Ref: Function Example-Footnote-1613377
+Node: Function Calling613399
+Node: Calling A Function613987
+Node: Variable Scope614945
+Node: Pass By Value/Reference617939
+Node: Function Caveats620583
+Ref: Function Caveats-Footnote-1622630
+Node: Return Statement622750
+Node: Dynamic Typing625729
+Node: Indirect Calls626659
+Ref: Indirect Calls-Footnote-1636911
+Node: Functions Summary637039
+Node: Library Functions639744
+Ref: Library Functions-Footnote-1643351
+Ref: Library Functions-Footnote-2643494
+Node: Library Names643665
+Ref: Library Names-Footnote-1647332
+Ref: Library Names-Footnote-2647555
+Node: General Functions647641
+Node: Strtonum Function648744
+Node: Assert Function651766
+Node: Round Function655092
+Node: Cliff Random Function656632
+Node: Ordinal Functions657648
+Ref: Ordinal Functions-Footnote-1660711
+Ref: Ordinal Functions-Footnote-2660963
+Node: Join Function661173
+Ref: Join Function-Footnote-1662943
+Node: Getlocaltime Function663143
+Node: Readfile Function666885
+Node: Shell Quoting668862
+Node: Data File Management670263
+Node: Filetrans Function670895
+Node: Rewind Function674991
+Node: File Checking676900
+Ref: File Checking-Footnote-1678234
+Node: Empty Files678435
+Node: Ignoring Assigns680414
+Node: Getopt Function681964
+Ref: Getopt Function-Footnote-1693433
+Node: Passwd Functions693633
+Ref: Passwd Functions-Footnote-1702472
+Node: Group Functions702560
+Ref: Group Functions-Footnote-1710458
+Node: Walking Arrays710665
+Node: Library Functions Summary713673
+Node: Library Exercises715079
+Node: Sample Programs715544
+Node: Running Examples716314
+Node: Clones717042
+Node: Cut Program718266
+Node: Egrep Program728195
+Ref: Egrep Program-Footnote-1735707
+Node: Id Program735817
+Node: Split Program739497
+Ref: Split Program-Footnote-1742955
+Node: Tee Program743084
+Node: Uniq Program745874
+Node: Wc Program753495
+Ref: Wc Program-Footnote-1757750
+Node: Miscellaneous Programs757844
+Node: Dupword Program759057
+Node: Alarm Program761087
+Node: Translate Program765942
+Ref: Translate Program-Footnote-1770507
+Node: Labels Program770777
+Ref: Labels Program-Footnote-1774128
+Node: Word Sorting774212
+Node: History Sorting778284
+Node: Extract Program780119
+Node: Simple Sed788173
+Node: Igawk Program791247
+Ref: Igawk Program-Footnote-1805578
+Ref: Igawk Program-Footnote-2805780
+Ref: Igawk Program-Footnote-3805902
+Node: Anagram Program806017
+Node: Signature Program809079
+Node: Programs Summary810326
+Node: Programs Exercises811540
+Ref: Programs Exercises-Footnote-1815669
+Node: Advanced Features815760
+Node: Nondecimal Data817750
+Node: Array Sorting819341
+Node: Controlling Array Traversal820041
+Ref: Controlling Array Traversal-Footnote-1828409
+Node: Array Sorting Functions828527
+Ref: Array Sorting Functions-Footnote-1833618
+Node: Two-way I/O833814
+Ref: Two-way I/O-Footnote-1841535
+Ref: Two-way I/O-Footnote-2841722
+Node: TCP/IP Networking841804
+Node: Profiling844922
+Node: Advanced Features Summary853937
+Node: Internationalization855781
+Node: I18N and L10N857261
+Node: Explaining gettext857948
+Ref: Explaining gettext-Footnote-1863840
+Ref: Explaining gettext-Footnote-2864025
+Node: Programmer i18n864190
+Ref: Programmer i18n-Footnote-1869139
+Node: Translator i18n869188
+Node: String Extraction869982
+Ref: String Extraction-Footnote-1871114
+Node: Printf Ordering871200
+Ref: Printf Ordering-Footnote-1873986
+Node: I18N Portability874050
+Ref: I18N Portability-Footnote-1876506
+Node: I18N Example876569
+Ref: I18N Example-Footnote-1879844
+Ref: I18N Example-Footnote-2879917
+Node: Gawk I18N880026
+Node: I18N Summary880675
+Node: Debugger882016
+Node: Debugging883016
+Node: Debugging Concepts883457
+Node: Debugging Terms885266
+Node: Awk Debugging887841
+Ref: Awk Debugging-Footnote-1888786
+Node: Sample Debugging Session888918
+Node: Debugger Invocation889452
+Node: Finding The Bug890838
+Node: List of Debugger Commands897312
+Node: Breakpoint Control898645
+Node: Debugger Execution Control902339
+Node: Viewing And Changing Data905701
+Node: Execution Stack909242
+Node: Debugger Info910879
+Node: Miscellaneous Debugger Commands914950
+Node: Readline Support920012
+Node: Limitations920908
+Node: Debugging Summary923462
+Node: Namespaces924741
+Node: Global Namespace925820
+Node: Qualified Names927218
+Node: Default Namespace928217
+Node: Changing The Namespace928958
+Node: Naming Rules930572
+Node: Internal Name Management932420
+Node: Namespace Example933462
+Node: Namespace And Features936024
+Node: Namespace Summary937459
+Node: Arbitrary Precision Arithmetic938936
+Node: Computer Arithmetic940423
+Ref: table-numeric-ranges944189
+Ref: table-floating-point-ranges944682
+Ref: Computer Arithmetic-Footnote-1945340
+Node: Math Definitions945397
+Ref: table-ieee-formats948713
+Ref: Math Definitions-Footnote-1949316
+Node: MPFR features949421
+Node: FP Math Caution951139
+Ref: FP Math Caution-Footnote-1952211
+Node: Inexactness of computations952580
+Node: Inexact representation953540
+Node: Comparing FP Values954900
+Node: Errors accumulate956141
+Node: Getting Accuracy957574
+Node: Try To Round960284
+Node: Setting precision961183
+Ref: table-predefined-precision-strings961880
+Node: Setting the rounding mode963710
+Ref: table-gawk-rounding-modes964084
+Ref: Setting the rounding mode-Footnote-1968015
+Node: Arbitrary Precision Integers968194
+Ref: Arbitrary Precision Integers-Footnote-1971369
+Node: Checking for MPFR971518
+Node: POSIX Floating Point Problems972992
+Ref: POSIX Floating Point Problems-Footnote-1977277
+Node: Floating point summary977315
+Node: Dynamic Extensions979505
+Node: Extension Intro981058
+Node: Plugin License982324
+Node: Extension Mechanism Outline983121
+Ref: figure-load-extension983560
+Ref: figure-register-new-function985125
+Ref: figure-call-new-function986217
+Node: Extension API Description988279
+Node: Extension API Functions Introduction989921
+Ref: table-api-std-headers991757
+Node: General Data Types995622
+Ref: General Data Types-Footnote-11003983
+Node: Memory Allocation Functions1004282
+Ref: Memory Allocation Functions-Footnote-11008492
+Node: Constructor Functions1008591
+Node: Registration Functions1012177
+Node: Extension Functions1012862
+Node: Exit Callback Functions1018184
+Node: Extension Version String1019434
+Node: Input Parsers1020097
+Node: Output Wrappers1032818
+Node: Two-way processors1037330
+Node: Printing Messages1039595
+Ref: Printing Messages-Footnote-11040766
+Node: Updating ERRNO1040919
+Node: Requesting Values1041658
+Ref: table-value-types-returned1042395
+Node: Accessing Parameters1043331
+Node: Symbol Table Access1044566
+Node: Symbol table by name1045078
+Ref: Symbol table by name-Footnote-11048102
+Node: Symbol table by cookie1048230
+Ref: Symbol table by cookie-Footnote-11052415
+Node: Cached values1052479
+Ref: Cached values-Footnote-11056015
+Node: Array Manipulation1056168
+Ref: Array Manipulation-Footnote-11057259
+Node: Array Data Types1057296
+Ref: Array Data Types-Footnote-11059954
+Node: Array Functions1060046
+Node: Flattening Arrays1064544
+Node: Creating Arrays1071520
+Node: Redirection API1076287
+Node: Extension API Variables1079120
+Node: Extension Versioning1079831
+Ref: gawk-api-version1080260
+Node: Extension GMP/MPFR Versioning1081991
+Node: Extension API Informational Variables1083619
+Node: Extension API Boilerplate1084692
+Node: Changes from API V11088666
+Node: Finding Extensions1090238
+Node: Extension Example1090797
+Node: Internal File Description1091595
+Node: Internal File Ops1095675
+Ref: Internal File Ops-Footnote-11107025
+Node: Using Internal File Ops1107165
+Ref: Using Internal File Ops-Footnote-11109548
+Node: Extension Samples1109822
+Node: Extension Sample File Functions1111351
+Node: Extension Sample Fnmatch1119000
+Node: Extension Sample Fork1120487
+Node: Extension Sample Inplace1121705
+Node: Extension Sample Ord1125009
+Node: Extension Sample Readdir1125845
+Ref: table-readdir-file-types1126734
+Node: Extension Sample Revout1127539
+Node: Extension Sample Rev2way1128128
+Node: Extension Sample Read write array1128868
+Node: Extension Sample Readfile1130810
+Node: Extension Sample Time1131905
+Node: Extension Sample API Tests1133253
+Node: gawkextlib1133745
+Node: Extension summary1136663
+Node: Extension Exercises1140365
+Node: Language History1141607
+Node: V7/SVR3.11143263
+Node: SVR41145415
+Node: POSIX1146849
+Node: BTL1148229
+Node: POSIX/GNU1148958
+Node: Feature History1154736
+Node: Common Extensions1170782
+Node: Ranges and Locales1172065
+Ref: Ranges and Locales-Footnote-11176681
+Ref: Ranges and Locales-Footnote-21176708
+Ref: Ranges and Locales-Footnote-31176943
+Node: Contributors1177164
+Node: History summary1183117
+Node: Installation1184497
+Node: Gawk Distribution1185441
+Node: Getting1185925
+Node: Extracting1186888
+Node: Distribution contents1188526
+Node: Unix Installation1195006
+Node: Quick Installation1195688
+Node: Shell Startup Files1198102
+Node: Additional Configuration Options1199191
+Node: Configuration Philosophy1201506
+Node: Non-Unix Installation1203875
+Node: PC Installation1204335
+Node: PC Binary Installation1205173
+Node: PC Compiling1205608
+Node: PC Using1206725
+Node: Cygwin1210278
+Node: MSYS1211377
+Node: VMS Installation1211878
+Node: VMS Compilation1212669
+Ref: VMS Compilation-Footnote-11213898
+Node: VMS Dynamic Extensions1213956
+Node: VMS Installation Details1215641
+Node: VMS Running1217894
+Node: VMS GNV1222173
+Node: VMS Old Gawk1222908
+Node: Bugs1223379
+Node: Bug address1224042
+Node: Usenet1227024
+Node: Maintainers1228028
+Node: Other Versions1229289
+Node: Installation summary1236377
+Node: Notes1237579
+Node: Compatibility Mode1238373
+Node: Additions1239155
+Node: Accessing The Source1240080
+Node: Adding Code1241517
+Node: New Ports1247736
+Node: Derived Files1252111
+Ref: Derived Files-Footnote-11257771
+Ref: Derived Files-Footnote-21257806
+Ref: Derived Files-Footnote-31258404
+Node: Future Extensions1258518
+Node: Implementation Limitations1259176
+Node: Extension Design1260359
+Node: Old Extension Problems1261503
+Ref: Old Extension Problems-Footnote-11263021
+Node: Extension New Mechanism Goals1263078
+Ref: Extension New Mechanism Goals-Footnote-11266442
+Node: Extension Other Design Decisions1266631
+Node: Extension Future Growth1268744
+Node: Notes summary1269580
+Node: Basic Concepts1270738
+Node: Basic High Level1271419
+Ref: figure-general-flow1271701
+Ref: figure-process-flow1272386
+Ref: Basic High Level-Footnote-11275687
+Node: Basic Data Typing1275872
+Node: Glossary1279200
+Node: Copying1311038
+Node: GNU Free Documentation License1348581
+Node: Index1373701

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index d3f7d8dd..25fb3486 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -9306,13 +9306,6 @@ one voter's votes. Come up with a way to define which columns are
associated with each ballot item, and print the total votes,
including abstentions, for each item.
-@item
-@ref{Plain Getline}, presented a program to remove C-style
-comments (@samp{/* @dots{} */}) from the input. That program
-does not work if one comment ends on one line and another one
-starts later on the same line.
-That can be fixed by making one simple change. What is it?
-
@end enumerate
@c EXCLUDE END
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 398e35da..c60b0238 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -8904,13 +8904,6 @@ one voter's votes. Come up with a way to define which columns are
associated with each ballot item, and print the total votes,
including abstentions, for each item.
-@item
-@ref{Plain Getline}, presented a program to remove C-style
-comments (@samp{/* @dots{} */}) from the input. That program
-does not work if one comment ends on one line and another one
-starts later on the same line.
-That can be fixed by making one simple change. What is it?
-
@end enumerate
@c EXCLUDE END
diff --git a/doc/texinfo.tex b/doc/texinfo.tex
index 192284cc..ed3f0ee9 100644
--- a/doc/texinfo.tex
+++ b/doc/texinfo.tex
@@ -3,8 +3,7 @@
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
-\def\texinfoversion{2019-03-03.15}
-
+\def\texinfoversion{2019-06-01.23}
%
% Copyright 1985, 1986, 1988, 1990-2019 Free Software Foundation, Inc.
%
@@ -387,14 +386,8 @@
% take effect in \write's, yet the group defined by the \vbox ends
% before the \shipout runs.
%
- \indexdummies % don't expand commands in the output.
- \normalturnoffactive % \ in index entries must not stay \, e.g., if
- % the page break happens to be in the middle of an example.
- % We don't want .vr (or whatever) entries like this:
- % \entry{{\indexbackslash }acronym}{32}{\code {\acronym}}
- % "\acronym" won't work when it's read back in;
- % it needs to be
- % {\code {{\backslashcurfont }acronym}
+ \atdummies % don't expand commands in the output.
+ \turnoffactive
\shipout\vbox{%
% Do this early so pdf references go to the beginning of the page.
\ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi
@@ -455,11 +448,10 @@
}%
}
-% First remove any @comment, then any @c comment. Also remove a @texinfoc
-% comment (see \scanmacro for details). Pass the result on to \argcheckspaces.
+% First remove any @comment, then any @c comment. Pass the result on to
+% \argcheckspaces.
\def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm}
-\def\argremovec#1\c#2\ArgTerm{\argremovetexinfoc #1\texinfoc\ArgTerm}
-\def\argremovetexinfoc#1\texinfoc#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm}
+\def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm}
% Each occurrence of `\^^M' or `<space>\^^M' is replaced by a single space.
%
@@ -1131,6 +1123,16 @@ where each line of input produces a line of output.}
\fi
\fi
+\newif\ifpdforxetex
+\pdforxetexfalse
+\ifpdf
+ \pdforxetextrue
+\fi
+\ifx\XeTeXrevision\thisisundefined\else
+ \pdforxetextrue
+\fi
+
+
% PDF uses PostScript string constants for the names of xref targets,
% for display in the outlines, and in other places. Thus, we have to
% double any backslashes. Otherwise, a name like "\node" will be
@@ -2173,7 +2175,7 @@ end
% A few fonts for @defun names and args.
\setfont\defbf\bfshape{10}{\magstep1}{OT1}
\setfont\deftt\ttshape{10}{\magstep1}{OT1TT}
-\setfont\defsl\slshape{10}{\magstep1}{OT1TT}
+\setfont\defsl\slshape{10}{\magstep1}{OT1}
\setfont\defttsl\ttslshape{10}{\magstep1}{OT1TT}
\def\df{\let\ttfont=\deftt \let\bffont = \defbf
\let\ttslfont=\defttsl \let\slfont=\defsl \bf}
@@ -2321,7 +2323,7 @@ end
% A few fonts for @defun names and args.
\setfont\defbf\bfshape{10}{\magstephalf}{OT1}
\setfont\deftt\ttshape{10}{\magstephalf}{OT1TT}
-\setfont\defsl\slshape{10}{\magstephalf}{OT1TT}
+\setfont\defsl\slshape{10}{\magstephalf}{OT1}
\setfont\defttsl\ttslshape{10}{\magstephalf}{OT1TT}
\def\df{\let\ttfont=\deftt \let\bffont = \defbf
\let\slfont=\defsl \let\ttslfont=\defttsl \bf}
@@ -2844,7 +2846,7 @@ end
% @t, explicit typewriter.
\def\t#1{%
- {\tt \rawbackslash \plainfrenchspacing #1}%
+ {\tt \plainfrenchspacing #1}%
\null
}
@@ -2871,7 +2873,6 @@ end
% Turn off hyphenation.
\nohyphenation
%
- \rawbackslash
\plainfrenchspacing
#1%
}%
@@ -3097,9 +3098,9 @@ end
% Allow a ragged right output to aid breaking long URL's. Putting stretch in
% between characters of the URL doesn't look good.
\def\urefallowbreak{%
- \hskip 0pt plus 1fil\relax
+ \hskip 0pt plus 4 em\relax
\allowbreak
- \hskip 0pt plus -1fil\relax
+ \hskip 0pt plus -4 em\relax
}
\urefbreakstyle after
@@ -3112,7 +3113,7 @@ end
% So now @email is just like @uref, unless we are pdf.
%
%\def\email#1{\angleleft{\tt #1}\angleright}
-\ifpdf
+\ifpdforxetex
\def\email#1{\doemail#1,,\finish}
\def\doemail#1,#2,#3\finish{\begingroup
\unsepspaces
@@ -3122,18 +3123,7 @@ end
\endlink
\endgroup}
\else
- \ifx\XeTeXrevision\thisisundefined
- \let\email=\uref
- \else
- \def\email#1{\doemail#1,,\finish}
- \def\doemail#1,#2,#3\finish{\begingroup
- \unsepspaces
- \pdfurl{mailto:#1}%
- \setbox0 = \hbox{\ignorespaces #2}%
- \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi
- \endlink
- \endgroup}
- \fi
+ \let\email=\uref
\fi
% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
@@ -4667,19 +4657,6 @@ end
}
}
-% We have this subroutine so that we can handle at least some @value's
-% properly in indexes (we call \makevalueexpandable in \indexdummies).
-% The command has to be fully expandable (if the variable is set), since
-% the result winds up in the index file. This means that if the
-% variable's value contains other Texinfo commands, it's almost certain
-% it will fail (although perhaps we could fix that with sufficient work
-% to do a one-level expansion on the result, instead of complete).
-%
-% Unfortunately, this has the consequence that when _ is in the *value*
-% of an @set, it does not print properly in the roman fonts (get the cmr
-% dot accent at position 126 instead). No fix comes to mind, and it's
-% been this way since 2003 or earlier, so just ignore it.
-%
\def\expandablevalue#1{%
\expandafter\ifx\csname SET#1\endcsname\relax
{[No value for ``#1'']}%
@@ -4708,7 +4685,7 @@ end
% if possible, otherwise sort late.
\def\indexnofontsvalue#1{%
\expandafter\ifx\csname SET#1\endcsname\relax
- ZZZZZZZ
+ ZZZZZZZ%
\else
\csname SET#1\endcsname
\fi
@@ -4858,23 +4835,8 @@ end
\def\docodeindexxxx #1{\doind{\indexname}{\code{#1}}}
-% Used when writing an index entry out to an index file to prevent
-% expansion of Texinfo commands that can appear in an index entry.
-%
-\def\indexdummies{%
- \escapechar = `\\ % use backslash in output files.
- \definedummyletter\@%
- \definedummyletter\ %
- %
- % For texindex which always views { and } as separators.
- \def\{{\lbracechar{}}%
- \def\}{\rbracechar{}}%
- %
- % Do the redefinitions.
- \definedummies
-}
-
-% Used for the aux and toc files, where @ is the escape character.
+% Used for the aux, toc and index files to prevent expansion of Texinfo
+% commands.
%
\def\atdummies{%
\definedummyletter\@%
@@ -4904,8 +4866,7 @@ end
\def\definedummyletter#1{\def#1{\string#1}}%
\let\definedummyaccent\definedummyletter
-% Called from \indexdummies and \atdummies, to effectively prevent
-% the expansion of commands.
+% Called from \atdummies to prevent the expansion of commands.
%
\def\definedummies{%
%
@@ -4954,6 +4915,7 @@ end
% Assorted special characters.
\definedummyword\atchar
\definedummyword\arrow
+ \definedummyword\backslashchar
\definedummyword\bullet
\definedummyword\comma
\definedummyword\copyright
@@ -4990,6 +4952,8 @@ end
\definedummyword\sup
\definedummyword\textdegree
%
+ \definedummyword\subentry
+ %
% We want to disable all macros so that they are not expanded by \write.
\macrolist
\let\value\dummyvalue
@@ -5070,11 +5034,10 @@ end
\commondummyword\xref
}
-% This does nothing, but for a time it was recommended to use
-% \usebracesinindexestrue to be able to use braces in index entries.
-
\let\indexlbrace\relax
\let\indexrbrace\relax
+\let\indexatchar\relax
+\let\indexbackslash\relax
{\catcode`\@=0
\catcode`\\=13
@@ -5108,10 +5071,8 @@ end
}
\gdef\indexnonalnumreappear{%
- \useindexbackslash
\let-\normaldash
\let<\normalless
- \def\@{@}%
}
}
@@ -5222,8 +5183,6 @@ end
-\let\SETmarginindex=\relax % put index entries in margin (undocumented)?
-
% #1 is the index name, #2 is the entry text.
\def\doind#1#2{%
\iflinks
@@ -5255,13 +5214,6 @@ end
\fi}
\def\indexisfl{fl}
-% Output \ as {\indexbackslash}, because \ is an escape character in
-% the index files.
-\let\indexbackslash=\relax
-{\catcode`\@=0 \catcode`\\=\active
- @gdef@useindexbackslash{@def\{{@indexbackslash}}}
-}
-
% Definition for writing index entry sort key.
{
\catcode`\-=13
@@ -5273,14 +5225,31 @@ end
\xdef\indexsortkey{#1}\endgroup}
}
+\def\indexwriteseealso#1{
+ \gdef\pagenumbertext{\string\seealso{#1}}%
+}
+\def\indexwriteseeentry#1{
+ \gdef\pagenumbertext{\string\seeentry{#1}}%
+}
+
+% The default definitions
+\def\sortas#1{}%
+\def\seealso#1{\i{\putwordSeeAlso}\ #1}% for sorted index file only
+\def\putwordSeeAlso{See also}
+\def\seeentry#1{\i{\putwordSee}\ #1}% for sorted index file only
+
+
% Given index entry text like "aaa @subentry bbb @sortas{ZZZ}":
% * Set \bracedtext to "{aaa}{bbb}"
% * Set \fullindexsortkey to "aaa @subentry ZZZ"
+% * If @seealso occurs, set \pagenumbertext
%
\def\splitindexentry#1{%
\gdef\fullindexsortkey{}%
\xdef\bracedtext{}%
\def\sep{}%
+ \def\seealso##1{}%
+ \def\seeentry##1{}%
\expandafter\doindexsegment#1\subentry\finish\subentry
}
@@ -5292,7 +5261,6 @@ end
%
% Fully expand the segment, throwing away any @sortas directives, and
% trim spaces.
- \def\sortas##1{}%
\edef\trimmed{\segment}%
\edef\trimmed{\expandafter\eatspaces\expandafter{\trimmed}}%
%
@@ -5302,16 +5270,23 @@ end
% font commands turned off.
\bgroup
\let\sortas\indexwritesortas
+ \let\seealso\indexwriteseealso
+ \let\seeentry\indexwriteseeentry
\indexnofonts
% The braces around the commands are recognized by texindex.
- \def\lbracechar{{\indexlbrace}}%
- \def\rbracechar{{\indexrbrace}}%
+ \def\lbracechar{{\string\indexlbrace}}%
+ \def\rbracechar{{\string\indexrbrace}}%
\let\{=\lbracechar
\let\}=\rbracechar
+ \def\@{{\string\indexatchar}}%
+ \def\atchar##1{\@}%
+ \def\backslashchar{{\string\indexbackslash}}%
+ \uccode`\~=`\\ \uppercase{\let~\backslashchar}%
%
\let\indexsortkey\empty
+ \global\let\pagenumbertext\empty
% Execute the segment and throw away the typeset output. This executes
- % any @sortas commands in this segment.
+ % any @sortas or @seealso commands in this segment.
\setbox\dummybox = \hbox{\segment}%
\ifx\indexsortkey\empty{%
\indexnonalnumdisappear
@@ -5332,21 +5307,40 @@ end
\fi
}
\def\isfinish{\finish}%
+\newbox\dummybox % used above
\let\subentry\relax
-% Write the entry in \toks0 to the index file.
+% Use \ instead of @ in index files. To support old texi2dvi and texindex.
+% This works without changing the escape character used in the toc or aux
+% files because the index entries are fully expanded here, and \string uses
+% the current value of \escapechar.
+\def\escapeisbackslash{\escapechar=`\\}
+
+% Use \ in index files by default. texi2dvi didn't support @ as the escape
+% character (as it checked for "\entry" in the files, and not "@entry"). When
+% the new version of texi2dvi has had a chance to become more prevalent, then
+% the escape character can change back to @ again. This should be an easy
+% change to make now because both @ and \ are only used as escape characters in
+% index files, never standing for themselves.
+%
+\set txiindexescapeisbackslash
+
+% Write the entry in \indextext to the index file.
%
\def\doindwrite{%
- % Put the index entry in the margin if desired.
- \ifx\SETmarginindex\relax\else
- \insert\margin{\hbox{\vrule height8pt depth3pt width0pt \the\toks0}}%
+ \maybemarginindex
+ %
+ \atdummies
+ %
+ \expandafter\ifx\csname SETtxiindexescapeisbackslash\endcsname\relax\else
+ \escapeisbackslash
\fi
%
- % Remember, we are within a group.
- \indexdummies % Must do this here, since \bf, etc expand at this stage
- \useindexbackslash % \indexbackslash isn't defined now so it will be output
- % as is; and it will print as backslash.
+ % For texindex which always views { and } as separators.
+ \def\{{\lbracechar{}}%
+ \def\}{\rbracechar{}}%
+ \uccode`\~=`\\ \uppercase{\def~{\backslashchar{}}}%
%
% Split the entry into primary entry and any subentries, and get the index
% sort key.
@@ -5360,11 +5354,21 @@ end
%
\edef\temp{%
\write\writeto{%
- \string\entry{\fullindexsortkey}{\noexpand\folio}\bracedtext}%
+ \string\entry{\fullindexsortkey}%
+ {\ifx\pagenumbertext\empty\noexpand\folio\else\pagenumbertext\fi}%
+ \bracedtext}%
}%
\temp
}
-\newbox\dummybox % used above
+
+% Put the index entry in the margin if desired (undocumented).
+\def\maybemarginindex{%
+ \ifx\SETmarginindex\relax\else
+ \insert\margin{\hbox{\vrule height8pt depth3pt width0pt \relax\indextext}}%
+ \fi
+}
+\let\SETmarginindex=\relax
+
% Take care of unwanted page breaks/skips around a whatsit:
%
@@ -5452,9 +5456,14 @@ end
% \entry {topic}{pagelist}
% for a topic that is used without subtopics
% \primary {topic}
+% \entry {topic}{}
% for the beginning of a topic that is used with subtopics
% \secondary {subtopic}{pagelist}
% for each subtopic.
+% \secondary {subtopic}{}
+% for a subtopic with sub-subtopics
+% \tertiary {subtopic}{subsubtopic}{pagelist}
+% for each sub-subtopic.
% Define the user-accessible indexing commands
% @findex, @vindex, @kindex, @cindex.
@@ -5479,14 +5488,10 @@ end
\plainfrenchspacing
\everypar = {}% don't want the \kern\-parindent from indentation suppression.
%
- % See if the index file exists and is nonempty.
- % Change catcode of @ here so that if the index file contains
- % \initial {@}
- % as its first line, TeX doesn't complain about mismatched braces
- % (because it thinks @} is a control sequence).
- \catcode`\@ = 12
% See comment in \requireopenindexfile.
\def\indexname{#1}\ifx\indexname\indexisfl\def\indexname{f1}\fi
+ %
+ % See if the index file exists and is nonempty.
\openin 1 \jobname.\indexname s
\ifeof 1
% \enddoublecolumns gets confused if there is no text in the index,
@@ -5496,8 +5501,6 @@ end
\putwordIndexNonexistent
\typeout{No file \jobname.\indexname s.}%
\else
- \catcode`\\ = 0
- %
% If the index file exists but is empty, then \openin leaves \ifeof
% false. We have to make TeX try to read something from the file, so
% it can discover if there is anything in it.
@@ -5505,47 +5508,51 @@ end
\ifeof 1
\putwordIndexIsEmpty
\else
- % Index files are almost Texinfo source, but we use \ as the escape
- % character. It would be better to use @, but that's too big a change
- % to make right now.
- \def\indexbackslash{\ttbackslash}%
- \let\indexlbrace\{ % Likewise, set these sequences for braces
- \let\indexrbrace\} % used in the sort key.
- \begindoublecolumns
- \let\dotheinsertentrybox\dotheinsertentryboxwithpenalty
- %
- % Read input from the index file line by line.
- \loopdo
- \ifeof1 \else
- \read 1 to \nextline
- \fi
- %
- \indexinputprocessing
- \thisline
- %
- \ifeof1\else
- \let\thisline\nextline
- \repeat
- %%
- \enddoublecolumns
+ \expandafter\printindexzz\thisline\relax\relax\finish%
\fi
\fi
\closein 1
\endgroup}
-\def\loopdo#1\repeat{\def\body{#1}\loopdoxxx}
-\def\loopdoxxx{\let\next=\relax\body\let\next=\loopdoxxx\fi\next}
-\def\indexinputprocessing{%
- \ifeof1
- \let\firsttoken\relax
+% If the index file starts with a backslash, forgo reading the index
+% file altogether. If somebody upgrades texinfo.tex they may still have
+% old index files using \ as the escape character. Reading this would
+% at best lead to typesetting garbage, at worst a TeX syntax error.
+\def\printindexzz#1#2\finish{%
+ \expandafter\ifx\csname SETtxiindexescapeisbackslash\endcsname\relax
+ \uccode`\~=`\\ \uppercase{\if\noexpand~}\noexpand#1
+ \expandafter\ifx\csname SETtxiskipindexfileswithbackslash\endcsname\relax
+\errmessage{%
+ERROR: A sorted index file in an obsolete format was skipped.
+To fix this problem, please upgrade your version of 'texi2dvi'
+or 'texi2pdf' to that at <https://ftp.gnu.org/gnu/texinfo>.
+If you are using an old version of 'texindex' (part of the Texinfo
+distribution), you may also need to upgrade to a newer version (at least 6.0).
+You may be able to typeset the index if you run
+'texindex \jobname.\indexname' yourself.
+You could also try setting the 'txiindexescapeisbackslash' flag by
+running a command like
+'texi2dvi -t "@set txiindexescapeisbackslash" \jobname.texi'. If you do
+this, Texinfo will try to use index files in the old format.
+If you continue to have problems, deleting the index files and starting again
+might help (with 'rm \jobname.?? \jobname.??s')%
+}%
+ \else
+ (Skipped sorted index file in obsolete format)
+ \fi
+ \else
+ \begindoublecolumns
+ \input \jobname.\indexname s
+ \enddoublecolumns
+ \fi
\else
- \edef\act{\gdef\noexpand\firsttoken{\getfirsttoken\nextline}}%
- \act
+ \begindoublecolumns
+ \catcode`\\=0\relax
+ \catcode`\@=12\relax
+ \input \jobname.\indexname s
+ \enddoublecolumns
\fi
}
-\def\getfirsttoken#1{\expandafter\getfirsttokenx#1\endfirsttoken}
-\long\def\getfirsttokenx#1#2\endfirsttoken{\noexpand#1}
-
% These macros are used by the sorted index file itself.
% Change them to control the appearance of the index.
@@ -5554,12 +5561,19 @@ end
\catcode`\|=13 \catcode`\<=13 \catcode`\>=13 \catcode`\+=13 \catcode`\"=13
\catcode`\$=3
\gdef\initialglyphs{%
+ % special control sequences used in the index sort key
+ \let\indexlbrace\{%
+ \let\indexrbrace\}%
+ \let\indexatchar\@%
+ \def\indexbackslash{\math{\backslash}}%
+ %
% Some changes for non-alphabetic characters. Using the glyphs from the
% math fonts looks more consistent than the typewriter font used elsewhere
% for these characters.
- \def\indexbackslash{\math{\backslash}}%
- \let\\=\indexbackslash
+ \uccode`\~=`\\ \uppercase{\def~{\math{\backslash}}}
%
+ % In case @\ is used for backslash
+ \uppercase{\let\\=~}
% Can't get bold backslash so don't use bold forward slash
\catcode`\/=13
\def/{{\secrmnotbold \normalslash}}%
@@ -5619,12 +5633,6 @@ end
\def\entry{%
\begingroup
%
- % For pdfTeX and XeTeX.
- % The redefinition of \domark stops marks being added in \pdflink to
- % preserve coloured links across page boundaries. Otherwise the marks
- % would get in the way of \lastbox in \insertentrybox.
- \let\domark\relax
- %
% Start a new paragraph if necessary, so our assignments below can't
% affect previous text.
\par
@@ -5657,35 +5665,31 @@ end
\gdef\finishentry#1{%
\egroup % end box A
\dimen@ = \wd\boxA % Length of text of entry
- \global\setbox\boxA=\hbox\bgroup\unhbox\boxA
- % #1 is the page number.
- %
- % Get the width of the page numbers, and only use
- % leaders if they are present.
- \global\setbox\boxB = \hbox{#1}%
- \ifdim\wd\boxB = 0pt
- \null\nobreak\hfill\ %
- \else
- %
- \null\nobreak\indexdotfill % Have leaders before the page number.
+ \global\setbox\boxA=\hbox\bgroup
+ \unhbox\boxA
+ % #1 is the page number.
%
- \ifpdf
- \pdfgettoks#1.%
- \hskip\skip\thinshrinkable\the\toksA
+ % Get the width of the page numbers, and only use
+ % leaders if they are present.
+ \global\setbox\boxB = \hbox{#1}%
+ \ifdim\wd\boxB = 0pt
+ \null\nobreak\hfill\ %
\else
- \ifx\XeTeXrevision\thisisundefined
- \hskip\skip\thinshrinkable #1%
- \else
+ %
+ \null\nobreak\indexdotfill % Have leaders before the page number.
+ %
+ \ifpdforxetex
\pdfgettoks#1.%
\hskip\skip\thinshrinkable\the\toksA
+ \else
+ \hskip\skip\thinshrinkable #1%
\fi
\fi
- \fi
\egroup % end \boxA
\ifdim\wd\boxB = 0pt
- \global\setbox\entrybox=\vbox{\unhbox\boxA}%
- \else
- \global\setbox\entrybox=\vbox\bgroup
+ \noindent\unhbox\boxA\par
+ \nobreak
+ \else\bgroup
% We want the text of the entries to be aligned to the left, and the
% page numbers to be aligned to the right.
%
@@ -5751,55 +5755,11 @@ end
\egroup % The \vbox
\fi
\endgroup
- \dotheinsertentrybox
}}
\newskip\thinshrinkable
\skip\thinshrinkable=.15em minus .15em
-\newbox\entrybox
-\def\insertentrybox{%
- \ourunvbox\entrybox
-}
-
-% default definition
-\let\dotheinsertentrybox\insertentrybox
-
-% Use \lastbox to take apart vbox box by box, and add each sub-box
-% to the current vertical list.
-\def\ourunvbox#1{%
-\bgroup % for local binding of \delayedbox
- % Remove the last box from box #1
- \global\setbox#1=\vbox{%
- \unvbox#1%
- \unskip % remove any glue
- \unpenalty
- \global\setbox\interbox=\lastbox
- }%
- \setbox\delayedbox=\box\interbox
- \ifdim\ht#1=0pt\else
- \ourunvbox#1 % Repeat on what's left of the box
- \nobreak
- \fi
- \box\delayedbox
-\egroup
-}
-\newbox\delayedbox
-\newbox\interbox
-
-% Used from \printindex. \firsttoken should be the first token
-% after the \entry. If it's not another \entry, we are at the last
-% line of a group of index entries, so insert a penalty to discourage
-% widowed index entries.
-\def\dotheinsertentryboxwithpenalty{%
- \ifx\firsttoken\isentry
- \else
- \penalty 9000
- \fi
- \insertentrybox
-}
-\def\isentry{\entry}%
-
% Like plain.tex's \dotfill, except uses up at least 1 em.
% The filll stretch here overpowers both the fil and fill stretch to push
% the page number to the right.
@@ -5809,24 +5769,15 @@ end
\def\primary #1{\line{#1\hfil}}
-\newskip\secondaryindent \secondaryindent=0.5cm
-\def\secondary#1#2{{%
- \parfillskip=0in
- \parskip=0in
- \hangindent=1in
- \hangafter=1
- \noindent\hskip\secondaryindent\hbox{#1}\indexdotfill
- \ifpdf
- \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph.
- \else
- \ifx\XeTeXrevision\thisisundefined
- #2
- \else
- \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph.
- \fi
- \fi
- \par
-}}
+\def\secondary{\indententry{0.5cm}}
+\def\tertiary{\indententry{1cm}}
+
+\def\indententry#1#2#3{%
+ \bgroup
+ \leftskip=#1
+ \entry{#2}{#3}%
+ \egroup
+}
% Define two-column mode, which we use to typeset indexes.
% Adapted from the TeXbook, page 416, which is to say,
@@ -5844,17 +5795,6 @@ end
\output = {%
\savetopmark
%
- % Here is a possibility not foreseen in manmac: if we accumulate a
- % whole lot of material, we might end up calling this \output
- % routine twice in a row (see the doublecol-lose test, which is
- % essentially a couple of indexes with @setchapternewpage off). In
- % that case we just ship out what is in \partialpage with the normal
- % output routine. Generally, \partialpage will be empty when this
- % runs and this will be a no-op. See the indexspread.tex test case.
- \ifvoid\partialpage \else
- \onepageout{\pagecontents\partialpage}%
- \fi
- %
\global\setbox\partialpage = \vbox{%
% Unvbox the main output page.
\unvbox\PAGE
@@ -5926,7 +5866,7 @@ end
}
-% Finished with with double columns.
+% Finished with double columns.
\def\enddoublecolumns{%
% The following penalty ensures that the page builder is exercised
% _before_ we change the output routine. This is necessary in the
@@ -6134,11 +6074,9 @@ end
% @raisesections: treat @section as chapter, @subsection as section, etc.
\def\raisesections{\global\advance\secbase by -1}
-\let\up=\raisesections % original BFox name
% @lowersections: treat @chapter as section, @section as subsection, etc.
\def\lowersections{\global\advance\secbase by 1}
-\let\down=\lowersections % original BFox name
% we only have subsub.
\chardef\maxseclevel = 3
@@ -6790,13 +6728,8 @@ end
% 1 and 2 (the page numbers aren't printed), and so are the first
% two pages of the document. Thus, we'd have two destinations named
% `1', and two named `2'.
- \ifpdf
+ \ifpdforxetex
\global\pdfmakepagedesttrue
- \else
- \ifx\XeTeXrevision\thisisundefined
- \else
- \global\pdfmakepagedesttrue
- \fi
\fi
}
@@ -7159,11 +7092,7 @@ end
% @cartouche ... @end cartouche: draw rectangle w/rounded corners around
% environment contents.
-\font\circle=lcircle10
-\newdimen\circthick
-\newdimen\cartouter\newdimen\cartinner
-\newskip\normbskip\newskip\normpskip\newskip\normlskip
-\circthick=\fontdimen8\circle
+
%
\def\ctl{{\circle\char'013\hskip -6pt}}% 6pt from pl file: 1/2charwidth
\def\ctr{{\hskip 6pt\circle\char'010}}
@@ -7178,7 +7107,18 @@ end
%
\newskip\lskip\newskip\rskip
+% only require the font if @cartouche is actually used
+\def\cartouchefontdefs{%
+ \font\circle=lcircle10\relax
+ \circthick=\fontdimen8\circle
+}
+\newdimen\circthick
+\newdimen\cartouter\newdimen\cartinner
+\newskip\normbskip\newskip\normpskip\newskip\normlskip
+
+
\envdef\cartouche{%
+ \cartouchefontdefs
\ifhmode\par\fi % can't be in the midst of a paragraph.
\startsavinginserts
\lskip=\leftskip \rskip=\rightskip
@@ -8050,36 +7990,18 @@ end
}
\fi
-% alias because \c means cedilla in @tex or @math
-\let\texinfoc=\c
-
-\newcount\savedcatcodeone
-\newcount\savedcatcodetwo
-
% Used at the time of macro expansion.
% Argument is macro body with arguments substituted
\def\scanmacro#1{%
\newlinechar`\^^M
\def\xeatspaces{\eatspaces}%
%
- % Temporarily undo catcode changes of \printindex. Set catcode of @ to
- % 0 so that @-commands in macro expansions aren't printed literally when
- % formatting an index file, where \ is used as the escape character.
- \savedcatcodeone=\catcode`\@
- \savedcatcodetwo=\catcode`\\
- \catcode`\@=0
- \catcode`\\=\active
- %
% Process the macro body under the current catcode regime.
- \scantokens{#1@texinfoc}%
- %
- \catcode`\@=\savedcatcodeone
- \catcode`\\=\savedcatcodetwo
+ \scantokens{#1@comment}%
%
- % The \texinfoc is to remove the \newlinechar added by \scantokens, and
- % can be noticed by \parsearg.
- % We avoid surrounding the call to \scantokens with \bgroup and \egroup
- % to allow macros to open or close groups themselves.
+ % The \comment is to remove the \newlinechar added by \scantokens, and
+ % can be noticed by \parsearg. Note \c isn't used because this means cedilla
+ % in math mode.
}
% Used for copying and captions
@@ -8180,12 +8102,14 @@ end
\def\macroargctxt{%
\scanctxt
\catcode`\ =\active
+ \catcode`\@=\other
\catcode`\^^M=\other
\catcode`\\=\active
}
\def\macrolineargctxt{% used for whole-line arguments without braces
\scanctxt
+ \catcode`\@=\other
\catcode`\{=\other
\catcode`\}=\other
}
@@ -8749,9 +8673,29 @@ end
% also remove a trailing comma, in case of something like this:
% @node Help-Cross, , , Cross-refs
\def\donode#1 ,#2\finishnodeparse{\dodonode #1,\finishnodeparse}
-\def\dodonode#1,#2\finishnodeparse{\gdef\lastnode{#1}}
+\def\dodonode#1,#2\finishnodeparse{\gdef\lastnode{#1}\omittopnode}
+
+% Used so that the @top node doesn't have to be wrapped in an @ifnottex
+% conditional.
+% \doignore goes to more effort to skip nested conditionals but we don't need
+% that here.
+\def\omittopnode{%
+ \ifx\lastnode\wordTop
+ \expandafter\ignorenode\fi
+}
+\def\wordTop{Top}
+
+% Until the next @node or @bye command, divert output to a box that is not
+% output.
+\def\ignorenode{\setbox\dummybox\vbox\bgroup\def\node{\egroup\node}%
+\ignorenodebye
+}
+
+{\let\bye\relax
+\gdef\ignorenodebye{\let\bye\ignorenodebyedef}
+\gdef\ignorenodebyedef{\egroup(`Top' node ignored)\bye}}
+% The redefinition of \bye here is because it is declared \outer
-\let\nwnode=\node
\let\lastnode=\empty
% Write a cross-reference definition for the current node. #1 is the
@@ -9226,19 +9170,6 @@ end
\catcode`\^^]=\other
\catcode`\^^^=\other
\catcode`\^^_=\other
- % It was suggested to set the catcode of ^ to 7, which would allow ^^e4 etc.
- % in xref tags, i.e., node names. But since ^^e4 notation isn't
- % supported in the main text, it doesn't seem desirable. Furthermore,
- % that is not enough: for node names that actually contain a ^
- % character, we would end up writing a line like this: 'xrdef {'hat
- % b-title}{'hat b} and \xrdef does a \csname...\endcsname on the first
- % argument, and \hat is not an expandable control sequence. It could
- % all be worked out, but why? Either we support ^^ or we don't.
- %
- % The other change necessary for this was to define \auxhat:
- % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter
- % and then to call \auxhat in \setq.
- %
\catcode`\^=\other
%
% Special characters. Should be turned off anyway, but...
@@ -9256,14 +9187,7 @@ end
\catcode`\%=\other
\catcode`+=\other % avoid \+ for paranoia even though we've turned it off
%
- % This is to support \ in node names and titles, since the \
- % characters end up in a \csname. It's easier than
- % leaving it active and making its active definition an actual \
- % character. What I don't understand is why it works in the *value*
- % of the xrdef. Seems like it should be a catcode12 \, and that
- % should not typeset properly. But it works, so I'm moving on for
- % now. --karl, 15jan04.
- \catcode`\\=\other
+ \catcode`\\=\active
%
% @ is our escape character in .aux files, and we need braces.
\catcode`\{=1
@@ -11534,11 +11458,9 @@ directory should work if nowhere else does.}
% \backslashcurfont outputs one backslash character in current font,
% as in \char`\\.
\global\chardef\backslashcurfont=`\\
-\global\let\rawbackslashxx=\backslashcurfont % let existing .??s files work
-% \realbackslash is an actual character `\' with catcode other, and
-% \doublebackslash is two of them (for the pdf outlines).
-{\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}}
+% \realbackslash is an actual character `\' with catcode other.
+{\catcode`\\=\other @gdef@realbackslash{\}}
% In Texinfo, backslash is an active character; it prints the backslash
% in fixed width font.
@@ -11556,10 +11478,8 @@ directory should work if nowhere else does.}
@def@ttbackslash{{@tt @ifmmode @mathchar29020 @else @backslashcurfont @fi}}
@let@backslashchar = @ttbackslash % @backslashchar{} is for user documents.
-% \rawbackslash defines an active \ to do \backslashcurfont.
% \otherbackslash defines an active \ to be a literal `\' character with
-% catcode other. We switch back and forth between these.
-@gdef@rawbackslash{@let\=@backslashcurfont}
+% catcode other.
@gdef@otherbackslash{@let\=@realbackslash}
% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
@@ -11631,7 +11551,7 @@ directory should work if nowhere else does.}
@ifx\@eatinput @let\ = @ttbackslash @fi
@catcode13=5 % regular end of line
@enableemergencynewline
- @let@c=@texinfoc
+ @let@c=@comment
@let@parsearg@originalparsearg
% Also turn back on active characters that might appear in the input
% file name, in case not using a pre-dumped format.
diff --git a/extension/build-aux/ChangeLog b/extension/build-aux/ChangeLog
index f7abc792..79d602ee 100644
--- a/extension/build-aux/ChangeLog
+++ b/extension/build-aux/ChangeLog
@@ -1,3 +1,7 @@
+2019-06-21 Arnold D. Robbins <arnold@skeeve.com>
+
+ * config.guess, config.sub: Updated from GNULIB.
+
2019-06-18 Arnold D. Robbins <arnold@skeeve.com>
* 5.0.1: Release tar ball made.
diff --git a/extension/build-aux/config.guess b/extension/build-aux/config.guess
index 79d1317f..41b8b854 100755
--- a/extension/build-aux/config.guess
+++ b/extension/build-aux/config.guess
@@ -2,7 +2,7 @@
# Attempt to guess a canonical system name.
# Copyright 1992-2019 Free Software Foundation, Inc.
-timestamp='2019-03-04'
+timestamp='2019-06-10'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -262,6 +262,9 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
*:SolidBSD:*:*)
echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
exit ;;
+ *:OS108:*:*)
+ echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE"
+ exit ;;
macppc:MirBSD:*:*)
echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
exit ;;
@@ -1325,38 +1328,39 @@ EOF
echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
exit ;;
*:Darwin:*:*)
- UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
- set_cc_for_build
- if test "$UNAME_PROCESSOR" = unknown ; then
- UNAME_PROCESSOR=powerpc
+ UNAME_PROCESSOR=`uname -p`
+ case $UNAME_PROCESSOR in
+ unknown) UNAME_PROCESSOR=powerpc ;;
+ esac
+ if command -v xcode-select > /dev/null 2> /dev/null && \
+ ! xcode-select --print-path > /dev/null 2> /dev/null ; then
+ # Avoid executing cc if there is no toolchain installed as
+ # cc will be a stub that puts up a graphical alert
+ # prompting the user to install developer tools.
+ CC_FOR_BUILD=no_compiler_found
+ else
+ set_cc_for_build
fi
- if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then
- if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_64BIT_ARCH >/dev/null
- then
- case $UNAME_PROCESSOR in
- i386) UNAME_PROCESSOR=x86_64 ;;
- powerpc) UNAME_PROCESSOR=powerpc64 ;;
- esac
- fi
- # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
- if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_PPC >/dev/null
- then
- UNAME_PROCESSOR=powerpc
- fi
+ if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ case $UNAME_PROCESSOR in
+ i386) UNAME_PROCESSOR=x86_64 ;;
+ powerpc) UNAME_PROCESSOR=powerpc64 ;;
+ esac
+ fi
+ # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
+ if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_PPC >/dev/null
+ then
+ UNAME_PROCESSOR=powerpc
fi
elif test "$UNAME_PROCESSOR" = i386 ; then
- # Avoid executing cc on OS X 10.9, as it ships with a stub
- # that puts up a graphical alert prompting to install
- # developer tools. Any system running Mac OS X 10.7 or
- # later (Darwin 11 and later) is required to have a 64-bit
- # processor. This is not true of the ARM version of Darwin
- # that Apple uses in portable devices.
- UNAME_PROCESSOR=x86_64
+ # uname -m returns i386 or x86_64
+ UNAME_PROCESSOR=$UNAME_MACHINE
fi
echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
exit ;;
@@ -1468,6 +1472,14 @@ cat > "$dummy.c" <<EOF
#include <sys/types.h>
#include <sys/utsname.h>
#endif
+#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
+#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
+#include <signal.h>
+#if defined(_SIZE_T_) || defined(SIGLOST)
+#include <sys/utsname.h>
+#endif
+#endif
+#endif
main ()
{
#if defined (sony)
@@ -1555,18 +1567,23 @@ main ()
printf ("vax-dec-bsd\n"); exit (0);
#endif
#else
+#if defined(_SIZE_T_) || defined(SIGLOST)
+ struct utsname un;
+ uname (&un);
+ printf ("vax-dec-ultrix%s\n", un.release); exit (0);
+#else
printf ("vax-dec-ultrix\n"); exit (0);
#endif
#endif
+#endif
#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
-#include <signal.h>
-#if defined(_SIZE_T_) /* >= ULTRIX4 */
- printf ("mips-dec-ultrix4\n"); exit (0);
+#if defined(_SIZE_T_) || defined(SIGLOST)
+ struct utsname *un;
+ uname (&un);
+ printf ("mips-dec-ultrix%s\n", un.release); exit (0);
#else
-#if defined(ULTRIX3) || defined(ultrix3) || defined(SIGLOST)
- printf ("mips-dec-ultrix3\n"); exit (0);
-#endif
+ printf ("mips-dec-ultrix\n"); exit (0);
#endif
#endif
#endif
diff --git a/extension/build-aux/config.sub b/extension/build-aux/config.sub
index f53af5a2..5b158ac4 100755
--- a/extension/build-aux/config.sub
+++ b/extension/build-aux/config.sub
@@ -2,7 +2,7 @@
# Configuration validation subroutine script.
# Copyright 1992-2019 Free Software Foundation, Inc.
-timestamp='2019-01-05'
+timestamp='2019-05-23'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -1172,7 +1172,7 @@ case $cpu-$vendor in
| asmjs \
| ba \
| be32 | be64 \
- | bfin | bs2000 \
+ | bfin | bpf | bs2000 \
| c[123]* | c30 | [cjt]90 | c4x \
| c8051 | clipper | craynv | csky | cydra \
| d10v | d30v | dlx | dsp16xx \