aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/ChangeLog9
-rw-r--r--doc/gawk.info576
-rw-r--r--doc/gawk.texi37
-rw-r--r--doc/gawktexi.in25
-rw-r--r--doc/texinfo.tex163
5 files changed, 389 insertions, 421 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 292adb2b..8e94b98e 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,12 @@
+2021-01-23 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawktexi.in: A number of small fixes, thanks to
+ Antonio Columbo.
+
+ Unrelated:
+
+ * texinfo.tex: Updated via GNULIB.
+
2021-01-21 Arnold D. Robbins <arnold@skeeve.com>
* gawktexi.in (Other Versions): Add information on more
diff --git a/doc/gawk.info b/doc/gawk.info
index 89fe1ebb..12b712c6 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -18043,14 +18043,14 @@ overlap with 'gawk''s, a '--' is needed to tell 'gawk' to stop looking
for options.
Next comes the code that handles the 'egrep'-specific behavior.
-'egrep' uses the first nonoption on the command line is used. if no
-pattern is supplied with '-e'. If the pattern is empty, that means no
-pattern was supplied, so it's necessary to print an error message and
-exit. The 'awk' command-line arguments up to 'ARGV[Optind]' are
-cleared, so that 'awk' won't try to process them as files. If no files
-are specified, the standard input is used, and if multiple files are
-specified, we make sure to note this so that the file names can precede
-the matched lines in the output:
+'egrep' uses the first nonoption on the command line if no pattern is
+supplied with '-e'. If the pattern is empty, that means no pattern was
+supplied, so it's necessary to print an error message and exit. The
+'awk' command-line arguments up to 'ARGV[Optind]' are cleared, so that
+'awk' won't try to process them as files. If no files are specified,
+the standard input is used, and if multiple files are specified, we make
+sure to note this so that the file names can precede the matched lines
+in the output:
if (pattern == "")
pattern = ARGV[Optind++]
@@ -21823,16 +21823,16 @@ source code, it will appear that way in the output.

File: gawk.info, Node: Extension Philosophy, Next: Advanced Features Summary, Prev: Profiling, Up: Advanced Features
-12.6 Builtin Features vs. Extensions
-====================================
+12.6 Builtin Features versus Extensions
+=======================================
As this and subsequent major nodes show, 'gawk' has a large number of
extensions over standard 'awk' built-in to the program. These have
developed over time. More recently, the focus has moved to using the
extension mechanism (*note Dynamic Extensions::) for adding features.
This minor node discusses the "guiding philosophy" behind what should be
-added to the interpreter as a built-in feature vs. what should be done
-in extensions.
+added to the interpreter as a built-in feature versus what should be
+done in extensions.
There are several goals:
@@ -21847,9 +21847,8 @@ in extensions.
4. Extend the core interpreter only if some feature is:
A. Truly desirable.
- B. Cannot be done via (2) or (3) above.
+ B. Cannot be done via library files or loadable extensions.
C. Can be implemented without too much pain in the core.
-
Combining modules with 'awk' files is a powerful technique. Some of
the sample extensions demonstrate this.
@@ -21899,7 +21898,8 @@ File: gawk.info, Node: Advanced Features Summary, Prev: Extension Philosophy,
* You can also just "pretty-print" the program.
* New features should be developed using the extension mechansim if
- possible, and added to the core interpreter only as a last resort.
+ possible; they should be added to the core interpreter only as a
+ last resort.

File: gawk.info, Node: Internationalization, Next: Debugger, Prev: Advanced Features, Up: Top
@@ -34762,7 +34762,7 @@ Index
* .pot files: Explaining gettext. (line 31)
* / (forward slash), to enclose regular expressions: Regexp. (line 10)
* / (forward slash), /= operator: Assignment Ops. (line 129)
-* / (forward slash), /= operator, vs. /=.../ regexp constant: Assignment Ops.
+* / (forward slash), /= operator, vs. /=.../ regexp constant: Assignment Ops.
(line 149)
* / (forward slash), / operator: Precedence. (line 54)
* / (forward slash), /= operator <1>: Precedence. (line 94)
@@ -35609,7 +35609,7 @@ Index
(line 17)
* dark corner, regexp constants, /= operator and: Assignment Ops.
(line 149)
-* dark corner, /= operator vs. /=.../ regexp constant: Assignment Ops.
+* dark corner, /= operator vs. /=.../ regexp constant: Assignment Ops.
(line 149)
* dark corner, "0" is actually true: Truth Values. (line 24)
* dark corner, range patterns, line continuation and: Ranges. (line 64)
@@ -36247,7 +36247,7 @@ Index
* formatting, strings: String Functions. (line 395)
* forward slash (/), to enclose regular expressions: Regexp. (line 10)
* forward slash (/), /= operator: Assignment Ops. (line 129)
-* forward slash (/), /= operator, vs. /=.../ regexp constant: Assignment Ops.
+* forward slash (/), /= operator, vs. /=.../ regexp constant: Assignment Ops.
(line 149)
* forward slash (/), / operator: Precedence. (line 54)
* forward slash (/), /= operator <1>: Precedence. (line 94)
@@ -38399,276 +38399,276 @@ Node: Running Examples728274
Node: Clones729002
Node: Cut Program730226
Node: Egrep Program740366
-Node: Id Program749377
-Node: Split Program759324
-Ref: Split Program-Footnote-1769214
-Node: Tee Program769387
-Node: Uniq Program772177
-Node: Wc Program779765
-Node: Bytes vs. Characters780162
-Node: Using extensions781710
-Node: wc program782464
-Node: Miscellaneous Programs787329
-Node: Dupword Program788542
-Node: Alarm Program790572
-Node: Translate Program795427
-Ref: Translate Program-Footnote-1799992
-Node: Labels Program800262
-Ref: Labels Program-Footnote-1803613
-Node: Word Sorting803697
-Node: History Sorting807769
-Node: Extract Program809994
-Node: Simple Sed818048
-Node: Igawk Program821122
-Ref: Igawk Program-Footnote-1835453
-Ref: Igawk Program-Footnote-2835655
-Ref: Igawk Program-Footnote-3835777
-Node: Anagram Program835892
-Node: Signature Program838954
-Node: Programs Summary840201
-Node: Programs Exercises841415
-Ref: Programs Exercises-Footnote-1845545
-Node: Advanced Features845631
-Node: Nondecimal Data847698
-Node: Array Sorting849289
-Node: Controlling Array Traversal849989
-Ref: Controlling Array Traversal-Footnote-1858357
-Node: Array Sorting Functions858475
-Ref: Array Sorting Functions-Footnote-1863566
-Node: Two-way I/O863762
-Ref: Two-way I/O-Footnote-1871483
-Ref: Two-way I/O-Footnote-2871670
-Node: TCP/IP Networking871752
-Node: Profiling874870
-Node: Extension Philosophy884179
-Node: Advanced Features Summary885630
-Node: Internationalization887629
-Node: I18N and L10N889109
-Node: Explaining gettext889796
-Ref: Explaining gettext-Footnote-1895688
-Ref: Explaining gettext-Footnote-2895873
-Node: Programmer i18n896038
-Ref: Programmer i18n-Footnote-1900987
-Node: Translator i18n901036
-Node: String Extraction901830
-Ref: String Extraction-Footnote-1902962
-Node: Printf Ordering903048
-Ref: Printf Ordering-Footnote-1905834
-Node: I18N Portability905898
-Ref: I18N Portability-Footnote-1908354
-Node: I18N Example908417
-Ref: I18N Example-Footnote-1911692
-Ref: I18N Example-Footnote-2911765
-Node: Gawk I18N911874
-Node: I18N Summary912523
-Node: Debugger913864
-Node: Debugging914864
-Node: Debugging Concepts915305
-Node: Debugging Terms917114
-Node: Awk Debugging919689
-Ref: Awk Debugging-Footnote-1920634
-Node: Sample Debugging Session920766
-Node: Debugger Invocation921300
-Node: Finding The Bug922686
-Node: List of Debugger Commands929160
-Node: Breakpoint Control930493
-Node: Debugger Execution Control934187
-Node: Viewing And Changing Data937549
-Node: Execution Stack941090
-Node: Debugger Info942727
-Node: Miscellaneous Debugger Commands946798
-Node: Readline Support951860
-Node: Limitations952756
-Node: Debugging Summary955310
-Node: Namespaces956589
-Node: Global Namespace957700
-Node: Qualified Names959098
-Node: Default Namespace960097
-Node: Changing The Namespace960838
-Node: Naming Rules962452
-Node: Internal Name Management964300
-Node: Namespace Example965342
-Node: Namespace And Features967904
-Node: Namespace Summary969339
-Node: Arbitrary Precision Arithmetic970816
-Node: Computer Arithmetic972303
-Ref: table-numeric-ranges976069
-Ref: table-floating-point-ranges976562
-Ref: Computer Arithmetic-Footnote-1977220
-Node: Math Definitions977277
-Ref: table-ieee-formats980253
-Node: MPFR features980820
-Node: FP Math Caution982538
-Ref: FP Math Caution-Footnote-1983610
-Node: Inexactness of computations983979
-Node: Inexact representation985010
-Node: Comparing FP Values986370
-Node: Errors accumulate987611
-Node: Strange values989067
-Ref: Strange values-Footnote-1991655
-Node: Getting Accuracy991760
-Node: Try To Round994470
-Node: Setting precision995369
-Ref: table-predefined-precision-strings996066
-Node: Setting the rounding mode997896
-Ref: table-gawk-rounding-modes998270
-Ref: Setting the rounding mode-Footnote-11002201
-Node: Arbitrary Precision Integers1002380
-Ref: Arbitrary Precision Integers-Footnote-11005555
-Node: Checking for MPFR1005704
-Node: POSIX Floating Point Problems1007178
-Ref: POSIX Floating Point Problems-Footnote-11011463
-Node: Floating point summary1011501
-Node: Dynamic Extensions1013691
-Node: Extension Intro1015244
-Node: Plugin License1016510
-Node: Extension Mechanism Outline1017307
-Ref: figure-load-extension1017746
-Ref: figure-register-new-function1019311
-Ref: figure-call-new-function1020403
-Node: Extension API Description1022465
-Node: Extension API Functions Introduction1024178
-Ref: table-api-std-headers1026014
-Node: General Data Types1030263
-Ref: General Data Types-Footnote-11038893
-Node: Memory Allocation Functions1039192
-Ref: Memory Allocation Functions-Footnote-11043693
-Node: Constructor Functions1043792
-Node: API Ownership of MPFR and GMP Values1047258
-Node: Registration Functions1048571
-Node: Extension Functions1049271
-Node: Exit Callback Functions1054593
-Node: Extension Version String1055843
-Node: Input Parsers1056506
-Node: Output Wrappers1069227
-Node: Two-way processors1073739
-Node: Printing Messages1076004
-Ref: Printing Messages-Footnote-11077175
-Node: Updating ERRNO1077328
-Node: Requesting Values1078067
-Ref: table-value-types-returned1078804
-Node: Accessing Parameters1079740
-Node: Symbol Table Access1080977
-Node: Symbol table by name1081489
-Ref: Symbol table by name-Footnote-11084513
-Node: Symbol table by cookie1084641
-Ref: Symbol table by cookie-Footnote-11088826
-Node: Cached values1088890
-Ref: Cached values-Footnote-11092426
-Node: Array Manipulation1092579
-Ref: Array Manipulation-Footnote-11093670
-Node: Array Data Types1093707
-Ref: Array Data Types-Footnote-11096365
-Node: Array Functions1096457
-Node: Flattening Arrays1100955
-Node: Creating Arrays1107931
-Node: Redirection API1112698
-Node: Extension API Variables1115531
-Node: Extension Versioning1116242
-Ref: gawk-api-version1116671
-Node: Extension GMP/MPFR Versioning1118402
-Node: Extension API Informational Variables1120030
-Node: Extension API Boilerplate1121103
-Node: Changes from API V11125077
-Node: Finding Extensions1126649
-Node: Extension Example1127208
-Node: Internal File Description1128006
-Node: Internal File Ops1132086
-Ref: Internal File Ops-Footnote-11143436
-Node: Using Internal File Ops1143576
-Ref: Using Internal File Ops-Footnote-11145959
-Node: Extension Samples1146233
-Node: Extension Sample File Functions1147762
-Node: Extension Sample Fnmatch1155411
-Node: Extension Sample Fork1156898
-Node: Extension Sample Inplace1158116
-Node: Extension Sample Ord1161742
-Node: Extension Sample Readdir1162578
-Ref: table-readdir-file-types1163467
-Node: Extension Sample Revout1164534
-Node: Extension Sample Rev2way1165123
-Node: Extension Sample Read write array1165863
-Node: Extension Sample Readfile1167805
-Node: Extension Sample Time1168900
-Node: Extension Sample API Tests1170652
-Node: gawkextlib1171144
-Node: Extension summary1174062
-Node: Extension Exercises1177764
-Node: Language History1179006
-Node: V7/SVR3.11180662
-Node: SVR41182814
-Node: POSIX1184248
-Node: BTL1185629
-Node: POSIX/GNU1186358
-Node: Feature History1192136
-Node: Common Extensions1208455
-Node: Ranges and Locales1209738
-Ref: Ranges and Locales-Footnote-11214354
-Ref: Ranges and Locales-Footnote-21214381
-Ref: Ranges and Locales-Footnote-31214616
-Node: Contributors1214839
-Node: History summary1220836
-Node: Installation1222216
-Node: Gawk Distribution1223160
-Node: Getting1223644
-Node: Extracting1224607
-Node: Distribution contents1226245
-Node: Unix Installation1232725
-Node: Quick Installation1233407
-Node: Shell Startup Files1235821
-Node: Additional Configuration Options1236910
-Node: Configuration Philosophy1239225
-Node: Non-Unix Installation1241594
-Node: PC Installation1242054
-Node: PC Binary Installation1242892
-Node: PC Compiling1243327
-Node: PC Using1244444
-Node: Cygwin1247997
-Node: MSYS1249221
-Node: VMS Installation1249823
-Node: VMS Compilation1250614
-Ref: VMS Compilation-Footnote-11251843
-Node: VMS Dynamic Extensions1251901
-Node: VMS Installation Details1253586
-Node: VMS Running1255839
-Node: VMS GNV1260118
-Node: VMS Old Gawk1260853
-Node: Bugs1261324
-Node: Bug address1261987
-Node: Usenet1264969
-Node: Maintainers1265973
-Node: Other Versions1267158
-Node: Installation summary1275023
-Node: Notes1276232
-Node: Compatibility Mode1277026
-Node: Additions1277808
-Node: Accessing The Source1278733
-Node: Adding Code1280170
-Node: New Ports1286389
-Node: Derived Files1290764
-Ref: Derived Files-Footnote-11296424
-Ref: Derived Files-Footnote-21296459
-Ref: Derived Files-Footnote-31297057
-Node: Future Extensions1297171
-Node: Implementation Limitations1297829
-Node: Extension Design1299039
-Node: Old Extension Problems1300183
-Ref: Old Extension Problems-Footnote-11301701
-Node: Extension New Mechanism Goals1301758
-Ref: Extension New Mechanism Goals-Footnote-11305122
-Node: Extension Other Design Decisions1305311
-Node: Extension Future Growth1307424
-Node: Notes summary1308030
-Node: Basic Concepts1309188
-Node: Basic High Level1309869
-Ref: figure-general-flow1310151
-Ref: figure-process-flow1310836
-Ref: Basic High Level-Footnote-11314137
-Node: Basic Data Typing1314322
-Node: Glossary1317650
-Node: Copying1349535
-Node: GNU Free Documentation License1387078
-Node: Index1412198
+Node: Id Program749367
+Node: Split Program759314
+Ref: Split Program-Footnote-1769204
+Node: Tee Program769377
+Node: Uniq Program772167
+Node: Wc Program779755
+Node: Bytes vs. Characters780152
+Node: Using extensions781700
+Node: wc program782454
+Node: Miscellaneous Programs787319
+Node: Dupword Program788532
+Node: Alarm Program790562
+Node: Translate Program795417
+Ref: Translate Program-Footnote-1799982
+Node: Labels Program800252
+Ref: Labels Program-Footnote-1803603
+Node: Word Sorting803687
+Node: History Sorting807759
+Node: Extract Program809984
+Node: Simple Sed818038
+Node: Igawk Program821112
+Ref: Igawk Program-Footnote-1835443
+Ref: Igawk Program-Footnote-2835645
+Ref: Igawk Program-Footnote-3835767
+Node: Anagram Program835882
+Node: Signature Program838944
+Node: Programs Summary840191
+Node: Programs Exercises841405
+Ref: Programs Exercises-Footnote-1845535
+Node: Advanced Features845621
+Node: Nondecimal Data847688
+Node: Array Sorting849279
+Node: Controlling Array Traversal849979
+Ref: Controlling Array Traversal-Footnote-1858347
+Node: Array Sorting Functions858465
+Ref: Array Sorting Functions-Footnote-1863556
+Node: Two-way I/O863752
+Ref: Two-way I/O-Footnote-1871473
+Ref: Two-way I/O-Footnote-2871660
+Node: TCP/IP Networking871742
+Node: Profiling874860
+Node: Extension Philosophy884169
+Node: Advanced Features Summary885648
+Node: Internationalization887663
+Node: I18N and L10N889143
+Node: Explaining gettext889830
+Ref: Explaining gettext-Footnote-1895722
+Ref: Explaining gettext-Footnote-2895907
+Node: Programmer i18n896072
+Ref: Programmer i18n-Footnote-1901021
+Node: Translator i18n901070
+Node: String Extraction901864
+Ref: String Extraction-Footnote-1902996
+Node: Printf Ordering903082
+Ref: Printf Ordering-Footnote-1905868
+Node: I18N Portability905932
+Ref: I18N Portability-Footnote-1908388
+Node: I18N Example908451
+Ref: I18N Example-Footnote-1911726
+Ref: I18N Example-Footnote-2911799
+Node: Gawk I18N911908
+Node: I18N Summary912557
+Node: Debugger913898
+Node: Debugging914898
+Node: Debugging Concepts915339
+Node: Debugging Terms917148
+Node: Awk Debugging919723
+Ref: Awk Debugging-Footnote-1920668
+Node: Sample Debugging Session920800
+Node: Debugger Invocation921334
+Node: Finding The Bug922720
+Node: List of Debugger Commands929194
+Node: Breakpoint Control930527
+Node: Debugger Execution Control934221
+Node: Viewing And Changing Data937583
+Node: Execution Stack941124
+Node: Debugger Info942761
+Node: Miscellaneous Debugger Commands946832
+Node: Readline Support951894
+Node: Limitations952790
+Node: Debugging Summary955344
+Node: Namespaces956623
+Node: Global Namespace957734
+Node: Qualified Names959132
+Node: Default Namespace960131
+Node: Changing The Namespace960872
+Node: Naming Rules962486
+Node: Internal Name Management964334
+Node: Namespace Example965376
+Node: Namespace And Features967938
+Node: Namespace Summary969373
+Node: Arbitrary Precision Arithmetic970850
+Node: Computer Arithmetic972337
+Ref: table-numeric-ranges976103
+Ref: table-floating-point-ranges976596
+Ref: Computer Arithmetic-Footnote-1977254
+Node: Math Definitions977311
+Ref: table-ieee-formats980287
+Node: MPFR features980854
+Node: FP Math Caution982572
+Ref: FP Math Caution-Footnote-1983644
+Node: Inexactness of computations984013
+Node: Inexact representation985044
+Node: Comparing FP Values986404
+Node: Errors accumulate987645
+Node: Strange values989101
+Ref: Strange values-Footnote-1991689
+Node: Getting Accuracy991794
+Node: Try To Round994504
+Node: Setting precision995403
+Ref: table-predefined-precision-strings996100
+Node: Setting the rounding mode997930
+Ref: table-gawk-rounding-modes998304
+Ref: Setting the rounding mode-Footnote-11002235
+Node: Arbitrary Precision Integers1002414
+Ref: Arbitrary Precision Integers-Footnote-11005589
+Node: Checking for MPFR1005738
+Node: POSIX Floating Point Problems1007212
+Ref: POSIX Floating Point Problems-Footnote-11011497
+Node: Floating point summary1011535
+Node: Dynamic Extensions1013725
+Node: Extension Intro1015278
+Node: Plugin License1016544
+Node: Extension Mechanism Outline1017341
+Ref: figure-load-extension1017780
+Ref: figure-register-new-function1019345
+Ref: figure-call-new-function1020437
+Node: Extension API Description1022499
+Node: Extension API Functions Introduction1024212
+Ref: table-api-std-headers1026048
+Node: General Data Types1030297
+Ref: General Data Types-Footnote-11038927
+Node: Memory Allocation Functions1039226
+Ref: Memory Allocation Functions-Footnote-11043727
+Node: Constructor Functions1043826
+Node: API Ownership of MPFR and GMP Values1047292
+Node: Registration Functions1048605
+Node: Extension Functions1049305
+Node: Exit Callback Functions1054627
+Node: Extension Version String1055877
+Node: Input Parsers1056540
+Node: Output Wrappers1069261
+Node: Two-way processors1073773
+Node: Printing Messages1076038
+Ref: Printing Messages-Footnote-11077209
+Node: Updating ERRNO1077362
+Node: Requesting Values1078101
+Ref: table-value-types-returned1078838
+Node: Accessing Parameters1079774
+Node: Symbol Table Access1081011
+Node: Symbol table by name1081523
+Ref: Symbol table by name-Footnote-11084547
+Node: Symbol table by cookie1084675
+Ref: Symbol table by cookie-Footnote-11088860
+Node: Cached values1088924
+Ref: Cached values-Footnote-11092460
+Node: Array Manipulation1092613
+Ref: Array Manipulation-Footnote-11093704
+Node: Array Data Types1093741
+Ref: Array Data Types-Footnote-11096399
+Node: Array Functions1096491
+Node: Flattening Arrays1100989
+Node: Creating Arrays1107965
+Node: Redirection API1112732
+Node: Extension API Variables1115565
+Node: Extension Versioning1116276
+Ref: gawk-api-version1116705
+Node: Extension GMP/MPFR Versioning1118436
+Node: Extension API Informational Variables1120064
+Node: Extension API Boilerplate1121137
+Node: Changes from API V11125111
+Node: Finding Extensions1126683
+Node: Extension Example1127242
+Node: Internal File Description1128040
+Node: Internal File Ops1132120
+Ref: Internal File Ops-Footnote-11143470
+Node: Using Internal File Ops1143610
+Ref: Using Internal File Ops-Footnote-11145993
+Node: Extension Samples1146267
+Node: Extension Sample File Functions1147796
+Node: Extension Sample Fnmatch1155445
+Node: Extension Sample Fork1156932
+Node: Extension Sample Inplace1158150
+Node: Extension Sample Ord1161776
+Node: Extension Sample Readdir1162612
+Ref: table-readdir-file-types1163501
+Node: Extension Sample Revout1164568
+Node: Extension Sample Rev2way1165157
+Node: Extension Sample Read write array1165897
+Node: Extension Sample Readfile1167839
+Node: Extension Sample Time1168934
+Node: Extension Sample API Tests1170686
+Node: gawkextlib1171178
+Node: Extension summary1174096
+Node: Extension Exercises1177798
+Node: Language History1179040
+Node: V7/SVR3.11180696
+Node: SVR41182848
+Node: POSIX1184282
+Node: BTL1185663
+Node: POSIX/GNU1186392
+Node: Feature History1192170
+Node: Common Extensions1208489
+Node: Ranges and Locales1209772
+Ref: Ranges and Locales-Footnote-11214388
+Ref: Ranges and Locales-Footnote-21214415
+Ref: Ranges and Locales-Footnote-31214650
+Node: Contributors1214873
+Node: History summary1220870
+Node: Installation1222250
+Node: Gawk Distribution1223194
+Node: Getting1223678
+Node: Extracting1224641
+Node: Distribution contents1226279
+Node: Unix Installation1232759
+Node: Quick Installation1233441
+Node: Shell Startup Files1235855
+Node: Additional Configuration Options1236944
+Node: Configuration Philosophy1239259
+Node: Non-Unix Installation1241628
+Node: PC Installation1242088
+Node: PC Binary Installation1242926
+Node: PC Compiling1243361
+Node: PC Using1244478
+Node: Cygwin1248031
+Node: MSYS1249255
+Node: VMS Installation1249857
+Node: VMS Compilation1250648
+Ref: VMS Compilation-Footnote-11251877
+Node: VMS Dynamic Extensions1251935
+Node: VMS Installation Details1253620
+Node: VMS Running1255873
+Node: VMS GNV1260152
+Node: VMS Old Gawk1260887
+Node: Bugs1261358
+Node: Bug address1262021
+Node: Usenet1265003
+Node: Maintainers1266007
+Node: Other Versions1267192
+Node: Installation summary1275057
+Node: Notes1276266
+Node: Compatibility Mode1277060
+Node: Additions1277842
+Node: Accessing The Source1278767
+Node: Adding Code1280204
+Node: New Ports1286423
+Node: Derived Files1290798
+Ref: Derived Files-Footnote-11296458
+Ref: Derived Files-Footnote-21296493
+Ref: Derived Files-Footnote-31297091
+Node: Future Extensions1297205
+Node: Implementation Limitations1297863
+Node: Extension Design1299073
+Node: Old Extension Problems1300217
+Ref: Old Extension Problems-Footnote-11301735
+Node: Extension New Mechanism Goals1301792
+Ref: Extension New Mechanism Goals-Footnote-11305156
+Node: Extension Other Design Decisions1305345
+Node: Extension Future Growth1307458
+Node: Notes summary1308064
+Node: Basic Concepts1309222
+Node: Basic High Level1309903
+Ref: figure-general-flow1310185
+Ref: figure-process-flow1310870
+Ref: Basic High Level-Footnote-11314171
+Node: Basic Data Typing1314356
+Node: Glossary1317684
+Node: Copying1349569
+Node: GNU Free Documentation License1387112
+Node: Index1412232

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index ec8690ca..4a0fb3ae 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -12740,17 +12740,17 @@ For maximum portability, do not use the @samp{**=} operator.
@end docbook
@cindex dark corner @subentry regexp constants @subentry @code{/=} operator and
-@cindex @code{/} (forward slash) @subentry @code{/=} operator @subentry vs. @code{/=@dots{}/} regexp constant
-@cindex forward slash (@code{/}) @subentry @code{/=} operator @subentry vs. @code{/=@dots{}/} regexp constant
+@cindex @code{/} (forward slash) @subentry @code{/=} operator @subentry vs.@: @code{/=@dots{}/} regexp constant
+@cindex forward slash (@code{/}) @subentry @code{/=} operator @subentry vs.@: @code{/=@dots{}/} regexp constant
@cindex regexp constants @subentry @code{/=@dots{}/} @subentry @code{/=} operator and
@c derived from email from "Nelson H. F. Beebe" <beebe@math.utah.edu>
@c Date: Mon, 1 Sep 1997 13:38:35 -0600 (MDT)
-@cindex dark corner @subentry @code{/=} operator vs. @code{/=@dots{}/} regexp constant
-@cindex ambiguity, syntactic: @code{/=} operator vs. @code{/=@dots{}/} regexp constant
-@cindex syntactic ambiguity: @code{/=} operator vs. @code{/=@dots{}/} regexp constant
-@cindex @code{/=} operator vs. @code{/=@dots{}/} regexp constant
+@cindex dark corner @subentry @code{/=} operator vs.@: @code{/=@dots{}/} regexp constant
+@cindex ambiguity, syntactic: @code{/=} operator vs.@: @code{/=@dots{}/} regexp constant
+@cindex syntactic ambiguity: @code{/=} operator vs.@: @code{/=@dots{}/} regexp constant
+@cindex @code{/=} operator vs.@: @code{/=@dots{}/} regexp constant
There is a syntactic ambiguity between the @code{/=} assignment
operator and regexp constants whose first character is an @samp{=}.
@value{DARKCORNER}
@@ -12786,17 +12786,17 @@ and @command{mawk} also do not.
@cindex dark corner @subentry regexp constants @subentry @code{/=} operator and
-@cindex @code{/} (forward slash) @subentry @code{/=} operator @subentry vs. @code{/=@dots{}/} regexp constant
-@cindex forward slash (@code{/}) @subentry @code{/=} operator @subentry vs. @code{/=@dots{}/} regexp constant
+@cindex @code{/} (forward slash) @subentry @code{/=} operator @subentry vs.@: @code{/=@dots{}/} regexp constant
+@cindex forward slash (@code{/}) @subentry @code{/=} operator @subentry vs.@: @code{/=@dots{}/} regexp constant
@cindex regexp constants @subentry @code{/=@dots{}/} @subentry @code{/=} operator and
@c derived from email from "Nelson H. F. Beebe" <beebe@math.utah.edu>
@c Date: Mon, 1 Sep 1997 13:38:35 -0600 (MDT)
-@cindex dark corner @subentry @code{/=} operator vs. @code{/=@dots{}/} regexp constant
-@cindex ambiguity, syntactic: @code{/=} operator vs. @code{/=@dots{}/} regexp constant
-@cindex syntactic ambiguity: @code{/=} operator vs. @code{/=@dots{}/} regexp constant
-@cindex @code{/=} operator vs. @code{/=@dots{}/} regexp constant
+@cindex dark corner @subentry @code{/=} operator vs.@: @code{/=@dots{}/} regexp constant
+@cindex ambiguity, syntactic: @code{/=} operator vs.@: @code{/=@dots{}/} regexp constant
+@cindex syntactic ambiguity: @code{/=} operator vs.@: @code{/=@dots{}/} regexp constant
+@cindex @code{/=} operator vs.@: @code{/=@dots{}/} regexp constant
There is a syntactic ambiguity between the @code{/=} assignment
operator and regexp constants whose first character is an @samp{=}.
@value{DARKCORNER}
@@ -25598,7 +25598,7 @@ with @command{gawk}'s, a @option{--} is needed to tell @command{gawk}
to stop looking for options.
Next comes the code that handles the @command{egrep}-specific behavior.
-@command{egrep} uses the first nonoption on the command line is used.
+@command{egrep} uses the first nonoption on the command line
if no pattern is supplied with @option{-e}.
If the pattern is empty, that means no pattern was supplied, so it's
necessary to print an error message and exit.
@@ -30565,7 +30565,7 @@ constants; if you used an octal or hexadecimal value in your source
code, it will appear that way in the output.
@node Extension Philosophy
-@section Builtin Features vs.@: Extensions
+@section Builtin Features versus Extensions
As this and subsequent @value{CHAPTER}s show, @command{gawk} has a
large number of extensions over standard @command{awk} built-in to
@@ -30573,7 +30573,7 @@ the program. These have developed over time. More recently, the
focus has moved to using the extension mechanism (@pxref{Dynamic Extensions})
for adding features. This @value{SECTION} discusses the ``guiding philosophy''
behind what should be added to the interpreter as a built-in
-feature vs.@: what should be done in extensions.
+feature versus what should be done in extensions.
There are several goals:
@@ -30598,12 +30598,11 @@ Extend the core interpreter only if some feature is:
@item
Truly desirable.
@item
-Cannot be done via (2) or (3) above.
+Cannot be done via library files or loadable extensions.
@item
Can be implemented without too much pain in the core.
@end enumerate
@end enumerate
-
Combining modules with @command{awk} files is a powerful technique.
Some of the sample extensions demonstrate this.
@@ -30653,8 +30652,8 @@ you tune them more easily. Sending the @code{USR1} signal while profiling cause
You can also just ``pretty-print'' the program.
@item
-New features should be developed using the extension mechansim if possible, and added
-to the core interpreter only as a last resort.
+New features should be developed using the extension mechansim if possible;
+they should be added to the core interpreter only as a last resort.
@end itemize
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 4228d098..6e9930d1 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -12086,17 +12086,17 @@ For maximum portability, do not use the @samp{**=} operator.
@sidebar Syntactic Ambiguities Between @samp{/=} and Regular Expressions
@cindex dark corner @subentry regexp constants @subentry @code{/=} operator and
-@cindex @code{/} (forward slash) @subentry @code{/=} operator @subentry vs. @code{/=@dots{}/} regexp constant
-@cindex forward slash (@code{/}) @subentry @code{/=} operator @subentry vs. @code{/=@dots{}/} regexp constant
+@cindex @code{/} (forward slash) @subentry @code{/=} operator @subentry vs.@: @code{/=@dots{}/} regexp constant
+@cindex forward slash (@code{/}) @subentry @code{/=} operator @subentry vs.@: @code{/=@dots{}/} regexp constant
@cindex regexp constants @subentry @code{/=@dots{}/} @subentry @code{/=} operator and
@c derived from email from "Nelson H. F. Beebe" <beebe@math.utah.edu>
@c Date: Mon, 1 Sep 1997 13:38:35 -0600 (MDT)
-@cindex dark corner @subentry @code{/=} operator vs. @code{/=@dots{}/} regexp constant
-@cindex ambiguity, syntactic: @code{/=} operator vs. @code{/=@dots{}/} regexp constant
-@cindex syntactic ambiguity: @code{/=} operator vs. @code{/=@dots{}/} regexp constant
-@cindex @code{/=} operator vs. @code{/=@dots{}/} regexp constant
+@cindex dark corner @subentry @code{/=} operator vs.@: @code{/=@dots{}/} regexp constant
+@cindex ambiguity, syntactic: @code{/=} operator vs.@: @code{/=@dots{}/} regexp constant
+@cindex syntactic ambiguity: @code{/=} operator vs.@: @code{/=@dots{}/} regexp constant
+@cindex @code{/=} operator vs.@: @code{/=@dots{}/} regexp constant
There is a syntactic ambiguity between the @code{/=} assignment
operator and regexp constants whose first character is an @samp{=}.
@value{DARKCORNER}
@@ -24534,7 +24534,7 @@ with @command{gawk}'s, a @option{--} is needed to tell @command{gawk}
to stop looking for options.
Next comes the code that handles the @command{egrep}-specific behavior.
-@command{egrep} uses the first nonoption on the command line is used.
+@command{egrep} uses the first nonoption on the command line
if no pattern is supplied with @option{-e}.
If the pattern is empty, that means no pattern was supplied, so it's
necessary to print an error message and exit.
@@ -29501,7 +29501,7 @@ constants; if you used an octal or hexadecimal value in your source
code, it will appear that way in the output.
@node Extension Philosophy
-@section Builtin Features vs.@: Extensions
+@section Builtin Features versus Extensions
As this and subsequent @value{CHAPTER}s show, @command{gawk} has a
large number of extensions over standard @command{awk} built-in to
@@ -29509,7 +29509,7 @@ the program. These have developed over time. More recently, the
focus has moved to using the extension mechanism (@pxref{Dynamic Extensions})
for adding features. This @value{SECTION} discusses the ``guiding philosophy''
behind what should be added to the interpreter as a built-in
-feature vs.@: what should be done in extensions.
+feature versus what should be done in extensions.
There are several goals:
@@ -29534,12 +29534,11 @@ Extend the core interpreter only if some feature is:
@item
Truly desirable.
@item
-Cannot be done via (2) or (3) above.
+Cannot be done via library files or loadable extensions.
@item
Can be implemented without too much pain in the core.
@end enumerate
@end enumerate
-
Combining modules with @command{awk} files is a powerful technique.
Some of the sample extensions demonstrate this.
@@ -29589,8 +29588,8 @@ you tune them more easily. Sending the @code{USR1} signal while profiling cause
You can also just ``pretty-print'' the program.
@item
-New features should be developed using the extension mechansim if possible, and added
-to the core interpreter only as a last resort.
+New features should be developed using the extension mechansim if possible;
+they should be added to the core interpreter only as a last resort.
@end itemize
diff --git a/doc/texinfo.tex b/doc/texinfo.tex
index 3c7051d1..dac7ae3d 100644
--- a/doc/texinfo.tex
+++ b/doc/texinfo.tex
@@ -3,7 +3,7 @@
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
-\def\texinfoversion{2020-10-24.12}
+\def\texinfoversion{2020-11-25.18}
%
% Copyright 1985, 1986, 1988, 1990-2020 Free Software Foundation, Inc.
%
@@ -572,10 +572,9 @@
\fi
}
-% @end foo executes the definition of \Efoo.
-% But first, it executes a specialized version of \checkenv
-%
-\parseargdef\end{%
+
+% @end foo calls \checkenv and executes the definition of \Efoo.
+\parseargdef\end{
\if 1\csname iscond.#1\endcsname
\else
% The general wording of \badenverr may not be ideal.
@@ -2673,8 +2672,6 @@ end
\definetextfontsizexi
-\message{markup,}
-
% Check if we are currently using a typewriter font. Since all the
% Computer Modern typewriter fonts have zero interword stretch (and
% shrink), and it is reasonable to expect all typewriter fonts to have
@@ -2682,68 +2679,14 @@ end
%
\def\ifmonospace{\ifdim\fontdimen3\font=0pt }
-% Markup style infrastructure. \defmarkupstylesetup\INITMACRO will
-% define and register \INITMACRO to be called on markup style changes.
-% \INITMACRO can check \currentmarkupstyle for the innermost
-% style.
-
-\let\currentmarkupstyle\empty
-
-\def\setupmarkupstyle#1{%
- \def\currentmarkupstyle{#1}%
- \markupstylesetup
-}
-
-\let\markupstylesetup\empty
-
-\def\defmarkupstylesetup#1{%
- \expandafter\def\expandafter\markupstylesetup
- \expandafter{\markupstylesetup #1}%
- \def#1%
-}
-
-% Markup style setup for left and right quotes.
-\defmarkupstylesetup\markupsetuplq{%
- \expandafter\let\expandafter \temp
- \csname markupsetuplq\currentmarkupstyle\endcsname
- \ifx\temp\relax \markupsetuplqdefault \else \temp \fi
-}
-
-\defmarkupstylesetup\markupsetuprq{%
- \expandafter\let\expandafter \temp
- \csname markupsetuprq\currentmarkupstyle\endcsname
- \ifx\temp\relax \markupsetuprqdefault \else \temp \fi
-}
-
{
\catcode`\'=\active
\catcode`\`=\active
-\gdef\markupsetuplqdefault{\let`\lq}
-\gdef\markupsetuprqdefault{\let'\rq}
-
-\gdef\markupsetcodequoteleft{\let`\codequoteleft}
-\gdef\markupsetcodequoteright{\let'\codequoteright}
+\gdef\setcodequotes{\let`\codequoteleft \let'\codequoteright}
+\gdef\setregularquotes{\let`\lq \let'\rq}
}
-\let\markupsetuplqcode \markupsetcodequoteleft
-\let\markupsetuprqcode \markupsetcodequoteright
-%
-\let\markupsetuplqexample \markupsetcodequoteleft
-\let\markupsetuprqexample \markupsetcodequoteright
-%
-\let\markupsetuplqkbd \markupsetcodequoteleft
-\let\markupsetuprqkbd \markupsetcodequoteright
-%
-\let\markupsetuplqsamp \markupsetcodequoteleft
-\let\markupsetuprqsamp \markupsetcodequoteright
-%
-\let\markupsetuplqverb \markupsetcodequoteleft
-\let\markupsetuprqverb \markupsetcodequoteright
-%
-\let\markupsetuplqverbatim \markupsetcodequoteleft
-\let\markupsetuprqverbatim \markupsetcodequoteright
-
% Allow an option to not use regular directed right quote/apostrophe
% (char 0x27), but instead the undirected quote from cmtt (char 0x0d).
% The undirected quote is ugly, so don't make it the default, but it
@@ -2906,7 +2849,7 @@ end
}
% @samp.
-\def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}}
+\def\samp#1{{\setcodequotes\lq\tclose{#1}\rq\null}}
% @indicateurl is \samp, that is, with quotes.
\let\indicateurl=\samp
@@ -2949,8 +2892,7 @@ end
\global\let'=\rq \global\let`=\lq % default definitions
%
\global\def\code{\begingroup
- \setupmarkupstyle{code}%
- % The following should really be moved into \setupmarkupstyle handlers.
+ \setcodequotes
\catcode\dashChar=\active \catcode\underChar=\active
\ifallowcodebreaks
\let-\codedash
@@ -3104,7 +3046,7 @@ end
\urefcatcodes
%
\global\def\urefcode{\begingroup
- \setupmarkupstyle{code}%
+ \setcodequotes
\urefcatcodes
\let&\urefcodeamp
\let.\urefcodedot
@@ -3225,8 +3167,8 @@ end
\def\kbdsub#1#2#3\par{%
\def\one{#1}\def\three{#3}\def\threex{??}%
\ifx\one\xkey\ifx\threex\three \key{#2}%
- \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi
- \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi
+ \else{\tclose{\kbdfont\setcodequotes\look}}\fi
+ \else{\tclose{\kbdfont\setcodequotes\look}}\fi
}
% definition of @key that produces a lozenge. Doesn't adjust to text size.
@@ -3243,7 +3185,7 @@ end
% monospace, don't change it; that way, we respect @kbdinputstyle. But
% if it isn't monospace, then use \tt.
%
-\def\key#1{{\setupmarkupstyle{key}%
+\def\key#1{{\setregularquotes
\nohyphenation
\ifmonospace\else\tt\fi
#1}\null}
@@ -3373,16 +3315,20 @@ end
{\obeylines
\globaldefs=1
\envdef\displaymath{%
-\tex
+\tex%
\def\thisenv{\displaymath}%
+\begingroup\let\end\displaymathend%
$$%
}
-\def\Edisplaymath{$$
+\def\displaymathend{$$\endgroup\end}%
+
+\def\Edisplaymath{%
\def\thisenv{\tex}%
\end tex
}}
+
% @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}.
% Ignore unless FMTNAME == tex; then it is like @iftex and @tex,
% except specified as a normal braced arg, so no newlines to worry about.
@@ -7144,7 +7090,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
% But \@ or @@ will get a plain @ character.
\envdef\tex{%
- \setupmarkupstyle{tex}%
+ \setregularquotes
\catcode `\\=0 \catcode `\{=1 \catcode `\}=2
\catcode `\$=3 \catcode `\&=4 \catcode `\#=6
\catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie
@@ -7370,7 +7316,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
% If you want all examples etc. small: @set dispenvsize small.
% If you want even small examples the full size: @set dispenvsize nosmall.
% This affects the following displayed environments:
-% @example, @display, @format, @lisp
+% @example, @display, @format, @lisp, @verbatim
%
\def\smallword{small}
\def\nosmallword{nosmall}
@@ -7416,9 +7362,9 @@ might help (with 'rm \jobname.?? \jobname.??s')%
%
\maketwodispenvdef{lisp}{example}{%
\nonfillstart
- \tt\setupmarkupstyle{example}%
+ \tt\setcodequotes
\let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
- \gobble % eat return
+ \parsearg\gobble
}
% @display/@smalldisplay: same as @lisp except keep current font.
%
@@ -7576,7 +7522,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
\def\setupverb{%
\tt % easiest (and conventionally used) font for verbatim
\def\par{\leavevmode\endgraf}%
- \setupmarkupstyle{verb}%
+ \setcodequotes
\tabeightspaces
% Respect line breaks,
% print special symbols as themselves, and
@@ -7617,7 +7563,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
\tt % easiest (and conventionally used) font for verbatim
\def\par{\egroup\leavevmode\box\verbbox\endgraf\starttabbox}%
\tabexpand
- \setupmarkupstyle{verbatim}%
+ \setcodequotes
% Respect line breaks,
% print special symbols as themselves, and
% make each space count.
@@ -8036,7 +7982,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
% leave the code in, but it's strange for @var to lead to typewriter.
% Nowadays we recommend @code, since the difference between a ttsl hyphen
% and a tt hyphen is pretty tiny. @code also disables ?` !`.
- \def\var##1{{\setupmarkupstyle{var}\ttslanted{##1}}}%
+ \def\var##1{{\setregularquotes\ttslanted{##1}}}%
#1%
\sl\hyphenchar\font=45
}
@@ -8145,11 +8091,18 @@ might help (with 'rm \jobname.?? \jobname.??s')%
}
\fi
+\let\E=\expandafter
+
% Used at the time of macro expansion.
% Argument is macro body with arguments substituted
\def\scanmacro#1{%
\newlinechar`\^^M
- \def\xeatspaces{\eatspaces}%
+ % expand the expansion of \eatleadingcr twice to maybe remove a leading
+ % newline (and \else and \fi tokens), then call \eatspaces on the result.
+ \def\xeatspaces##1{%
+ \E\E\E\E\E\E\E\eatspaces\E\E\E\E\E\E\E{\eatleadingcr##1%
+ }}%
+ \def\xempty##1{}%
%
% Process the macro body under the current catcode regime.
\scantokens{#1@comment}%
@@ -8202,6 +8155,11 @@ might help (with 'rm \jobname.?? \jobname.??s')%
\unbrace{\gdef\trim@@@ #1 } #2@{#1}
}
+{\catcode`\^^M=\other%
+\gdef\eatleadingcr#1{\if\noexpand#1\noexpand^^M\else\E#1\fi}}%
+% Warning: this won't work for a delimited argument
+% or for an empty argument
+
% Trim a single trailing ^^M off a string.
{\catcode`\^^M=\other \catcode`\Q=3%
\gdef\eatcr #1{\eatcra #1Q^^MQ}%
@@ -8368,6 +8326,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
\let\hash\relax
% \hash is redefined to `#' later to get it into definitions
\let\xeatspaces\relax
+ \let\xempty\relax
\parsemargdefxxx#1,;,%
\ifnum\paramno<10\relax\else
\paramno0\relax
@@ -8379,9 +8338,11 @@ might help (with 'rm \jobname.?? \jobname.??s')%
\else \let\next=\parsemargdefxxx
\advance\paramno by 1
\expandafter\edef\csname macarg.\eatspaces{#1}\endcsname
- {\xeatspaces{\hash\the\paramno}}%
+ {\xeatspaces{\hash\the\paramno\noexpand\xempty{}}}%
\edef\paramlist{\paramlist\hash\the\paramno,}%
\fi\next}
+% the \xempty{} is to give \eatleadingcr an argument in the case of an
+% empty macro argument.
% \parsemacbody, \parsermacbody
%
@@ -9107,20 +9068,22 @@ might help (with 'rm \jobname.?? \jobname.??s')%
% output the `[mynode]' via the macro below so it can be overridden.
\xrefprintnodename\printedrefname
%
- % But we always want a comma and a space:
- ,\space
- %
- % output the `page 3'.
- \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
- % Add a , if xref followed by a space
- \if\space\noexpand\tokenafterxref ,%
- \else\ifx\ \tokenafterxref ,% @TAB
- \else\ifx\*\tokenafterxref ,% @*
- \else\ifx\ \tokenafterxref ,% @SPACE
- \else\ifx\
- \tokenafterxref ,% @NL
- \else\ifx\tie\tokenafterxref ,% @tie
- \fi\fi\fi\fi\fi\fi
+ \expandafter\ifx\csname SETtxiomitxrefpg\endcsname\relax
+ % But we always want a comma and a space:
+ ,\space
+ %
+ % output the `page 3'.
+ \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
+ % Add a , if xref followed by a space
+ \if\space\noexpand\tokenafterxref ,%
+ \else\ifx\ \tokenafterxref ,% @TAB
+ \else\ifx\*\tokenafterxref ,% @*
+ \else\ifx\ \tokenafterxref ,% @SPACE
+ \else\ifx\
+ \tokenafterxref ,% @NL
+ \else\ifx\tie\tokenafterxref ,% @tie
+ \fi\fi\fi\fi\fi\fi
+ \fi
\fi\fi
\fi
\endlink
@@ -9550,7 +9513,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
\def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup
\catcode`\^^M = 5 % in case we're inside an example
\normalturnoffactive % allow _ et al. in names
- \def\xprocessmacroarg{\eatspaces}% in case we are being used via a macro
+ \makevalueexpandable
% If the image is by itself, center it.
\ifvmode
\imagevmodetrue
@@ -11603,7 +11566,7 @@ directory should work if nowhere else does.}
\let> = \activegtr
\let~ = \activetilde
\let^ = \activehat
- \markupsetuplqdefault \markupsetuprqdefault
+ \setregularquotes
\let\b = \strong
\let\i = \smartitalic
% in principle, all other definitions in \tex have to be undone too.
@@ -11662,8 +11625,7 @@ directory should work if nowhere else does.}
@let|=@normalverticalbar
@let~=@normaltilde
@let\=@ttbackslash
- @markupsetuplqdefault
- @markupsetuprqdefault
+ @setregularquotes
@unsepspaces
}
}
@@ -11756,8 +11718,7 @@ directory should work if nowhere else does.}
@c Do this last of all since we use ` in the previous @catcode assignments.
@catcode`@'=@active
@catcode`@`=@active
-@markupsetuplqdefault
-@markupsetuprqdefault
+@setregularquotes
@c Local variables:
@c eval: (add-hook 'before-save-hook 'time-stamp)