aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--POSIX.STD2
-rw-r--r--awkgram.c7
-rw-r--r--awkgram.y7
-rw-r--r--doc/ChangeLog5
-rw-r--r--doc/gawk.info1096
-rw-r--r--doc/gawk.texi2
-rw-r--r--doc/gawktexi.in2
-rw-r--r--doc/texinfo.tex150
-rw-r--r--test/ChangeLog5
-rw-r--r--test/Makefile.am4
-rw-r--r--test/Makefile.in9
-rw-r--r--test/Maketests5
-rw-r--r--test/crlf.awk11
-rw-r--r--test/crlf.ok3
15 files changed, 735 insertions, 579 deletions
diff --git a/ChangeLog b/ChangeLog
index be763dd5..161c374b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2015-02-24 Arnold D. Robbins <arnold@skeeve.com>
+
+ * POSIX.STD: Update copyright year.
+ * awkgram.y (yylex): Allow \r after \\ line continuation everywhere.
+ Thanks to Scott Rush <scott.rush@honeywell.com> for the report.
+
2015-02-13 Arnold D. Robbins <arnold@skeeve.com>
* awkgram.y (yylex): Be more careful about passing true to
diff --git a/POSIX.STD b/POSIX.STD
index c48dfb42..a2368949 100644
--- a/POSIX.STD
+++ b/POSIX.STD
@@ -1,4 +1,4 @@
- Copyright (C) 1992, 1995, 1998, 2001, 2006, 2007, 2010, 2011
+ Copyright (C) 1992, 1995, 1998, 2001, 2006, 2007, 2010, 2011, 2015
Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
diff --git a/awkgram.c b/awkgram.c
index b87a0088..a205246e 100644
--- a/awkgram.c
+++ b/awkgram.c
@@ -5598,7 +5598,10 @@ yylex(void)
pushback();
yyerror(_("unterminated regexp ends with `\\' at end of file"));
goto end_regexp; /* kludge */
- } else if (c == '\n') {
+ }
+ if (c == '\r') /* allow MS-DOS files. bleah */
+ c = nextc(true);
+ if (c == '\n') {
sourceline++;
continue;
} else {
@@ -5947,6 +5950,8 @@ retry:
if ((gawk_mb_cur_max == 1 || nextc_is_1stbyte) &&
c == '\\') {
c = nextc(true);
+ if (c == '\r') /* allow MS-DOS files. bleah */
+ c = nextc(true);
if (c == '\n') {
sourceline++;
continue;
diff --git a/awkgram.y b/awkgram.y
index 7b21b39e..274b319d 100644
--- a/awkgram.y
+++ b/awkgram.y
@@ -3260,7 +3260,10 @@ yylex(void)
pushback();
yyerror(_("unterminated regexp ends with `\\' at end of file"));
goto end_regexp; /* kludge */
- } else if (c == '\n') {
+ }
+ if (c == '\r') /* allow MS-DOS files. bleah */
+ c = nextc(true);
+ if (c == '\n') {
sourceline++;
continue;
} else {
@@ -3609,6 +3612,8 @@ retry:
if ((gawk_mb_cur_max == 1 || nextc_is_1stbyte) &&
c == '\\') {
c = nextc(true);
+ if (c == '\r') /* allow MS-DOS files. bleah */
+ c = nextc(true);
if (c == '\n') {
sourceline++;
continue;
diff --git a/doc/ChangeLog b/doc/ChangeLog
index e99cc828..d423944f 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,8 @@
+2015-02-24 Arnold D. Robbins <arnold@skeeve.com>
+
+ * texinfo.tex: Update to most current version.
+ * gawktexi.in: Minor edit to match an O'Reilly fix.
+
2015-02-22 Arnold D. Robbins <arnold@skeeve.com>
* gawktexi.in: Change 'div' to 'divisor' in some examples.
diff --git a/doc/gawk.info b/doc/gawk.info
index 4a40ea6d..6cddc1ba 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -954,7 +954,7 @@ provided in *note Language History::. The language described in this
Info file is often referred to as "new `awk'." By analogy, the
original version of `awk' is referred to as "old `awk'."
- Today, on most systems, when you run the `awk' utility you get some
+ On most current systems, when you run the `awk' utility you get some
version of new `awk'.(1) If your system's standard `awk' is the old
one, you will see something like this if you try the test program:
@@ -34675,552 +34675,552 @@ Ref: Preface-Footnote-251178
Ref: Preface-Footnote-351411
Node: History51553
Node: Names53904
-Ref: Names-Footnote-154997
-Node: This Manual55143
-Ref: This Manual-Footnote-161643
-Node: Conventions61743
-Node: Manual History64080
-Ref: Manual History-Footnote-167073
-Ref: Manual History-Footnote-267114
-Node: How To Contribute67188
-Node: Acknowledgments68317
-Node: Getting Started73183
-Node: Running gawk75622
-Node: One-shot76812
-Node: Read Terminal78076
-Node: Long80107
-Node: Executable Scripts81620
-Ref: Executable Scripts-Footnote-184409
-Node: Comments84512
-Node: Quoting86994
-Node: DOS Quoting92512
-Node: Sample Data Files93187
-Node: Very Simple95782
-Node: Two Rules100681
-Node: More Complex102567
-Node: Statements/Lines105429
-Ref: Statements/Lines-Footnote-1109884
-Node: Other Features110149
-Node: When111085
-Ref: When-Footnote-1112839
-Node: Intro Summary112904
-Node: Invoking Gawk113788
-Node: Command Line115302
-Node: Options116100
-Ref: Options-Footnote-1131895
-Ref: Options-Footnote-2132124
-Node: Other Arguments132149
-Node: Naming Standard Input135097
-Node: Environment Variables136190
-Node: AWKPATH Variable136748
-Ref: AWKPATH Variable-Footnote-1140155
-Ref: AWKPATH Variable-Footnote-2140200
-Node: AWKLIBPATH Variable140460
-Node: Other Environment Variables141716
-Node: Exit Status145234
-Node: Include Files145910
-Node: Loading Shared Libraries149499
-Node: Obsolete150926
-Node: Undocumented151618
-Node: Invoking Summary151885
-Node: Regexp153548
-Node: Regexp Usage155002
-Node: Escape Sequences157039
-Node: Regexp Operators163268
-Ref: Regexp Operators-Footnote-1170678
-Ref: Regexp Operators-Footnote-2170825
-Node: Bracket Expressions170923
-Ref: table-char-classes172938
-Node: Leftmost Longest175880
-Node: Computed Regexps177182
-Node: GNU Regexp Operators180611
-Node: Case-sensitivity184283
-Ref: Case-sensitivity-Footnote-1187168
-Ref: Case-sensitivity-Footnote-2187403
-Node: Regexp Summary187511
-Node: Reading Files188978
-Node: Records191071
-Node: awk split records191804
-Node: gawk split records196733
-Ref: gawk split records-Footnote-1201272
-Node: Fields201309
-Ref: Fields-Footnote-1204087
-Node: Nonconstant Fields204173
-Ref: Nonconstant Fields-Footnote-1206411
-Node: Changing Fields206614
-Node: Field Separators212545
-Node: Default Field Splitting215249
-Node: Regexp Field Splitting216366
-Node: Single Character Fields219716
-Node: Command Line Field Separator220775
-Node: Full Line Fields223992
-Ref: Full Line Fields-Footnote-1225513
-Ref: Full Line Fields-Footnote-2225559
-Node: Field Splitting Summary225660
-Node: Constant Size227734
-Node: Splitting By Content232317
-Ref: Splitting By Content-Footnote-1236282
-Node: Multiple Line236445
-Ref: Multiple Line-Footnote-1242326
-Node: Getline242505
-Node: Plain Getline244712
-Node: Getline/Variable247352
-Node: Getline/File248501
-Node: Getline/Variable/File249886
-Ref: Getline/Variable/File-Footnote-1251489
-Node: Getline/Pipe251576
-Node: Getline/Variable/Pipe254254
-Node: Getline/Coprocess255385
-Node: Getline/Variable/Coprocess256649
-Node: Getline Notes257388
-Node: Getline Summary260182
-Ref: table-getline-variants260594
-Node: Read Timeout261423
-Ref: Read Timeout-Footnote-1265260
-Node: Command-line directories265318
-Node: Input Summary266223
-Node: Input Exercises269608
-Node: Printing270336
-Node: Print272113
-Node: Print Examples273570
-Node: Output Separators276349
-Node: OFMT278367
-Node: Printf279722
-Node: Basic Printf280507
-Node: Control Letters282079
-Node: Format Modifiers286064
-Node: Printf Examples292070
-Node: Redirection294556
-Node: Special FD301394
-Ref: Special FD-Footnote-1304560
-Node: Special Files304634
-Node: Other Inherited Files305251
-Node: Special Network306251
-Node: Special Caveats307113
-Node: Close Files And Pipes308062
-Ref: Close Files And Pipes-Footnote-1315253
-Ref: Close Files And Pipes-Footnote-2315401
-Node: Output Summary315551
-Node: Output Exercises316549
-Node: Expressions317229
-Node: Values318418
-Node: Constants319095
-Node: Scalar Constants319786
-Ref: Scalar Constants-Footnote-1320648
-Node: Nondecimal-numbers320898
-Node: Regexp Constants323908
-Node: Using Constant Regexps324434
-Node: Variables327597
-Node: Using Variables328254
-Node: Assignment Options330165
-Node: Conversion332040
-Node: Strings And Numbers332564
-Ref: Strings And Numbers-Footnote-1335629
-Node: Locale influences conversions335738
-Ref: table-locale-affects338484
-Node: All Operators339076
-Node: Arithmetic Ops339705
-Node: Concatenation342210
-Ref: Concatenation-Footnote-1345029
-Node: Assignment Ops345136
-Ref: table-assign-ops350115
-Node: Increment Ops351425
-Node: Truth Values and Conditions354856
-Node: Truth Values355939
-Node: Typing and Comparison356988
-Node: Variable Typing357804
-Node: Comparison Operators361471
-Ref: table-relational-ops361881
-Node: POSIX String Comparison365376
-Ref: POSIX String Comparison-Footnote-1366448
-Node: Boolean Ops366587
-Ref: Boolean Ops-Footnote-1371065
-Node: Conditional Exp371156
-Node: Function Calls372894
-Node: Precedence376774
-Node: Locales380434
-Node: Expressions Summary382066
-Node: Patterns and Actions384637
-Node: Pattern Overview385757
-Node: Regexp Patterns387436
-Node: Expression Patterns387979
-Node: Ranges391759
-Node: BEGIN/END394866
-Node: Using BEGIN/END395627
-Ref: Using BEGIN/END-Footnote-1398363
-Node: I/O And BEGIN/END398469
-Node: BEGINFILE/ENDFILE400784
-Node: Empty403681
-Node: Using Shell Variables403998
-Node: Action Overview406271
-Node: Statements408597
-Node: If Statement410445
-Node: While Statement411940
-Node: Do Statement413968
-Node: For Statement415116
-Node: Switch Statement418274
-Node: Break Statement420656
-Node: Continue Statement422749
-Node: Next Statement424576
-Node: Nextfile Statement426957
-Node: Exit Statement429585
-Node: Built-in Variables431996
-Node: User-modified433129
-Ref: User-modified-Footnote-1440763
-Node: Auto-set440825
-Ref: Auto-set-Footnote-1454534
-Ref: Auto-set-Footnote-2454739
-Node: ARGC and ARGV454795
-Node: Pattern Action Summary459013
-Node: Arrays461446
-Node: Array Basics462775
-Node: Array Intro463619
-Ref: figure-array-elements465553
-Ref: Array Intro-Footnote-1468173
-Node: Reference to Elements468301
-Node: Assigning Elements470763
-Node: Array Example471254
-Node: Scanning an Array473013
-Node: Controlling Scanning476033
-Ref: Controlling Scanning-Footnote-1481427
-Node: Numeric Array Subscripts481743
-Node: Uninitialized Subscripts483928
-Node: Delete485545
-Ref: Delete-Footnote-1488294
-Node: Multidimensional488351
-Node: Multiscanning491448
-Node: Arrays of Arrays493037
-Node: Arrays Summary497791
-Node: Functions499882
-Node: Built-in500921
-Node: Calling Built-in501999
-Node: Numeric Functions503994
-Ref: Numeric Functions-Footnote-1508812
-Ref: Numeric Functions-Footnote-2509169
-Ref: Numeric Functions-Footnote-3509217
-Node: String Functions509489
-Ref: String Functions-Footnote-1532990
-Ref: String Functions-Footnote-2533119
-Ref: String Functions-Footnote-3533367
-Node: Gory Details533454
-Ref: table-sub-escapes535235
-Ref: table-sub-proposed536750
-Ref: table-posix-sub538112
-Ref: table-gensub-escapes539649
-Ref: Gory Details-Footnote-1540482
-Node: I/O Functions540633
-Ref: I/O Functions-Footnote-1547869
-Node: Time Functions548016
-Ref: Time Functions-Footnote-1558525
-Ref: Time Functions-Footnote-2558593
-Ref: Time Functions-Footnote-3558751
-Ref: Time Functions-Footnote-4558862
-Ref: Time Functions-Footnote-5558974
-Ref: Time Functions-Footnote-6559201
-Node: Bitwise Functions559467
-Ref: table-bitwise-ops560029
-Ref: Bitwise Functions-Footnote-1564357
-Node: Type Functions564529
-Node: I18N Functions565681
-Node: User-defined567328
-Node: Definition Syntax568133
-Ref: Definition Syntax-Footnote-1573792
-Node: Function Example573863
-Ref: Function Example-Footnote-1576784
-Node: Function Caveats576806
-Node: Calling A Function577324
-Node: Variable Scope578282
-Node: Pass By Value/Reference581275
-Node: Return Statement584772
-Node: Dynamic Typing587751
-Node: Indirect Calls588680
-Ref: Indirect Calls-Footnote-1598545
-Node: Functions Summary598673
-Node: Library Functions601375
-Ref: Library Functions-Footnote-1604983
-Ref: Library Functions-Footnote-2605126
-Node: Library Names605297
-Ref: Library Names-Footnote-1608755
-Ref: Library Names-Footnote-2608978
-Node: General Functions609064
-Node: Strtonum Function610167
-Node: Assert Function613189
-Node: Round Function616513
-Node: Cliff Random Function618054
-Node: Ordinal Functions619070
-Ref: Ordinal Functions-Footnote-1622133
-Ref: Ordinal Functions-Footnote-2622385
-Node: Join Function622596
-Ref: Join Function-Footnote-1624366
-Node: Getlocaltime Function624566
-Node: Readfile Function628310
-Node: Shell Quoting630282
-Node: Data File Management631683
-Node: Filetrans Function632315
-Node: Rewind Function636411
-Node: File Checking637797
-Ref: File Checking-Footnote-1639130
-Node: Empty Files639331
-Node: Ignoring Assigns641310
-Node: Getopt Function642860
-Ref: Getopt Function-Footnote-1654324
-Node: Passwd Functions654524
-Ref: Passwd Functions-Footnote-1663364
-Node: Group Functions663452
-Ref: Group Functions-Footnote-1671349
-Node: Walking Arrays671554
-Node: Library Functions Summary674560
-Node: Library Exercises675962
-Node: Sample Programs677242
-Node: Running Examples678012
-Node: Clones678740
-Node: Cut Program679964
-Node: Egrep Program689684
-Ref: Egrep Program-Footnote-1697187
-Node: Id Program697297
-Node: Split Program700973
-Ref: Split Program-Footnote-1704427
-Node: Tee Program704555
-Node: Uniq Program707344
-Node: Wc Program714763
-Ref: Wc Program-Footnote-1719013
-Node: Miscellaneous Programs719107
-Node: Dupword Program720320
-Node: Alarm Program722351
-Node: Translate Program727156
-Ref: Translate Program-Footnote-1731719
-Node: Labels Program731989
-Ref: Labels Program-Footnote-1735340
-Node: Word Sorting735424
-Node: History Sorting739494
-Node: Extract Program741329
-Node: Simple Sed748853
-Node: Igawk Program751923
-Ref: Igawk Program-Footnote-1766249
-Ref: Igawk Program-Footnote-2766450
-Ref: Igawk Program-Footnote-3766572
-Node: Anagram Program766687
-Node: Signature Program769748
-Node: Programs Summary770995
-Node: Programs Exercises772216
-Ref: Programs Exercises-Footnote-1776347
-Node: Advanced Features776438
-Node: Nondecimal Data778420
-Node: Array Sorting780010
-Node: Controlling Array Traversal780710
-Ref: Controlling Array Traversal-Footnote-1789076
-Node: Array Sorting Functions789194
-Ref: Array Sorting Functions-Footnote-1793080
-Node: Two-way I/O793276
-Ref: Two-way I/O-Footnote-1798221
-Ref: Two-way I/O-Footnote-2798407
-Node: TCP/IP Networking798489
-Node: Profiling801361
-Node: Advanced Features Summary809632
-Node: Internationalization811565
-Node: I18N and L10N813045
-Node: Explaining gettext813731
-Ref: Explaining gettext-Footnote-1818756
-Ref: Explaining gettext-Footnote-2818940
-Node: Programmer i18n819105
-Ref: Programmer i18n-Footnote-1823981
-Node: Translator i18n824030
-Node: String Extraction824824
-Ref: String Extraction-Footnote-1825955
-Node: Printf Ordering826041
-Ref: Printf Ordering-Footnote-1828827
-Node: I18N Portability828891
-Ref: I18N Portability-Footnote-1831347
-Node: I18N Example831410
-Ref: I18N Example-Footnote-1834213
-Node: Gawk I18N834285
-Node: I18N Summary834929
-Node: Debugger836269
-Node: Debugging837291
-Node: Debugging Concepts837732
-Node: Debugging Terms839542
-Node: Awk Debugging842114
-Node: Sample Debugging Session843020
-Node: Debugger Invocation843554
-Node: Finding The Bug844939
-Node: List of Debugger Commands851418
-Node: Breakpoint Control852750
-Node: Debugger Execution Control856427
-Node: Viewing And Changing Data859786
-Node: Execution Stack863162
-Node: Debugger Info864797
-Node: Miscellaneous Debugger Commands868842
-Node: Readline Support873843
-Node: Limitations874737
-Node: Debugging Summary876852
-Node: Arbitrary Precision Arithmetic878026
-Node: Computer Arithmetic879442
-Ref: table-numeric-ranges883041
-Ref: Computer Arithmetic-Footnote-1883565
-Node: Math Definitions883622
-Ref: table-ieee-formats886917
-Ref: Math Definitions-Footnote-1887521
-Node: MPFR features887626
-Node: FP Math Caution889297
-Ref: FP Math Caution-Footnote-1890347
-Node: Inexactness of computations890716
-Node: Inexact representation891675
-Node: Comparing FP Values893033
-Node: Errors accumulate894115
-Node: Getting Accuracy895547
-Node: Try To Round898251
-Node: Setting precision899150
-Ref: table-predefined-precision-strings899834
-Node: Setting the rounding mode901663
-Ref: table-gawk-rounding-modes902027
-Ref: Setting the rounding mode-Footnote-1905479
-Node: Arbitrary Precision Integers905658
-Ref: Arbitrary Precision Integers-Footnote-1910556
-Node: POSIX Floating Point Problems910705
-Ref: POSIX Floating Point Problems-Footnote-1914584
-Node: Floating point summary914622
-Node: Dynamic Extensions916809
-Node: Extension Intro918361
-Node: Plugin License919626
-Node: Extension Mechanism Outline920423
-Ref: figure-load-extension920851
-Ref: figure-register-new-function922331
-Ref: figure-call-new-function923335
-Node: Extension API Description925322
-Node: Extension API Functions Introduction926772
-Node: General Data Types931593
-Ref: General Data Types-Footnote-1937493
-Node: Memory Allocation Functions937792
-Ref: Memory Allocation Functions-Footnote-1940631
-Node: Constructor Functions940730
-Node: Registration Functions942469
-Node: Extension Functions943154
-Node: Exit Callback Functions945451
-Node: Extension Version String946699
-Node: Input Parsers947362
-Node: Output Wrappers957237
-Node: Two-way processors961750
-Node: Printing Messages964013
-Ref: Printing Messages-Footnote-1965089
-Node: Updating `ERRNO'965241
-Node: Requesting Values965981
-Ref: table-value-types-returned966708
-Node: Accessing Parameters967665
-Node: Symbol Table Access968899
-Node: Symbol table by name969413
-Node: Symbol table by cookie971433
-Ref: Symbol table by cookie-Footnote-1975578
-Node: Cached values975641
-Ref: Cached values-Footnote-1979137
-Node: Array Manipulation979228
-Ref: Array Manipulation-Footnote-1980326
-Node: Array Data Types980363
-Ref: Array Data Types-Footnote-1983018
-Node: Array Functions983110
-Node: Flattening Arrays986969
-Node: Creating Arrays993871
-Node: Extension API Variables998642
-Node: Extension Versioning999278
-Node: Extension API Informational Variables1001169
-Node: Extension API Boilerplate1002234
-Node: Finding Extensions1006043
-Node: Extension Example1006603
-Node: Internal File Description1007375
-Node: Internal File Ops1011442
-Ref: Internal File Ops-Footnote-11023193
-Node: Using Internal File Ops1023333
-Ref: Using Internal File Ops-Footnote-11025716
-Node: Extension Samples1025989
-Node: Extension Sample File Functions1027517
-Node: Extension Sample Fnmatch1035198
-Node: Extension Sample Fork1036686
-Node: Extension Sample Inplace1037901
-Node: Extension Sample Ord1039577
-Node: Extension Sample Readdir1040413
-Ref: table-readdir-file-types1041290
-Node: Extension Sample Revout1042101
-Node: Extension Sample Rev2way1042690
-Node: Extension Sample Read write array1043430
-Node: Extension Sample Readfile1045370
-Node: Extension Sample Time1046465
-Node: Extension Sample API Tests1047813
-Node: gawkextlib1048304
-Node: Extension summary1050982
-Node: Extension Exercises1054671
-Node: Language History1055393
-Node: V7/SVR3.11057049
-Node: SVR41059202
-Node: POSIX1060636
-Node: BTL1062017
-Node: POSIX/GNU1062748
-Node: Feature History1068493
-Node: Common Extensions1082219
-Node: Ranges and Locales1083591
-Ref: Ranges and Locales-Footnote-11088210
-Ref: Ranges and Locales-Footnote-21088237
-Ref: Ranges and Locales-Footnote-31088472
-Node: Contributors1088693
-Node: History summary1094233
-Node: Installation1095612
-Node: Gawk Distribution1096558
-Node: Getting1097042
-Node: Extracting1097865
-Node: Distribution contents1099502
-Node: Unix Installation1105604
-Node: Quick Installation1106287
-Node: Shell Startup Files1108698
-Node: Additional Configuration Options1109777
-Node: Configuration Philosophy1111581
-Node: Non-Unix Installation1113950
-Node: PC Installation1114408
-Node: PC Binary Installation1115728
-Node: PC Compiling1117576
-Ref: PC Compiling-Footnote-11120597
-Node: PC Testing1120706
-Node: PC Using1121882
-Node: Cygwin1125997
-Node: MSYS1126767
-Node: VMS Installation1127268
-Node: VMS Compilation1128060
-Ref: VMS Compilation-Footnote-11129289
-Node: VMS Dynamic Extensions1129347
-Node: VMS Installation Details1131031
-Node: VMS Running1133282
-Node: VMS GNV1136122
-Node: VMS Old Gawk1136857
-Node: Bugs1137327
-Node: Other Versions1141216
-Node: Installation summary1147650
-Node: Notes1148709
-Node: Compatibility Mode1149574
-Node: Additions1150356
-Node: Accessing The Source1151281
-Node: Adding Code1152716
-Node: New Ports1158873
-Node: Derived Files1163355
-Ref: Derived Files-Footnote-11168830
-Ref: Derived Files-Footnote-21168864
-Ref: Derived Files-Footnote-31169460
-Node: Future Extensions1169574
-Node: Implementation Limitations1170180
-Node: Extension Design1171428
-Node: Old Extension Problems1172582
-Ref: Old Extension Problems-Footnote-11174099
-Node: Extension New Mechanism Goals1174156
-Ref: Extension New Mechanism Goals-Footnote-11177516
-Node: Extension Other Design Decisions1177705
-Node: Extension Future Growth1179813
-Node: Old Extension Mechanism1180649
-Node: Notes summary1182411
-Node: Basic Concepts1183597
-Node: Basic High Level1184278
-Ref: figure-general-flow1184550
-Ref: figure-process-flow1185149
-Ref: Basic High Level-Footnote-11188378
-Node: Basic Data Typing1188563
-Node: Glossary1191891
-Node: Copying1223820
-Node: GNU Free Documentation License1261376
-Node: Index1286512
+Ref: Names-Footnote-154998
+Node: This Manual55144
+Ref: This Manual-Footnote-161644
+Node: Conventions61744
+Node: Manual History64081
+Ref: Manual History-Footnote-167074
+Ref: Manual History-Footnote-267115
+Node: How To Contribute67189
+Node: Acknowledgments68318
+Node: Getting Started73184
+Node: Running gawk75623
+Node: One-shot76813
+Node: Read Terminal78077
+Node: Long80108
+Node: Executable Scripts81621
+Ref: Executable Scripts-Footnote-184410
+Node: Comments84513
+Node: Quoting86995
+Node: DOS Quoting92513
+Node: Sample Data Files93188
+Node: Very Simple95783
+Node: Two Rules100682
+Node: More Complex102568
+Node: Statements/Lines105430
+Ref: Statements/Lines-Footnote-1109885
+Node: Other Features110150
+Node: When111086
+Ref: When-Footnote-1112840
+Node: Intro Summary112905
+Node: Invoking Gawk113789
+Node: Command Line115303
+Node: Options116101
+Ref: Options-Footnote-1131896
+Ref: Options-Footnote-2132125
+Node: Other Arguments132150
+Node: Naming Standard Input135098
+Node: Environment Variables136191
+Node: AWKPATH Variable136749
+Ref: AWKPATH Variable-Footnote-1140156
+Ref: AWKPATH Variable-Footnote-2140201
+Node: AWKLIBPATH Variable140461
+Node: Other Environment Variables141717
+Node: Exit Status145235
+Node: Include Files145911
+Node: Loading Shared Libraries149500
+Node: Obsolete150927
+Node: Undocumented151619
+Node: Invoking Summary151886
+Node: Regexp153549
+Node: Regexp Usage155003
+Node: Escape Sequences157040
+Node: Regexp Operators163269
+Ref: Regexp Operators-Footnote-1170679
+Ref: Regexp Operators-Footnote-2170826
+Node: Bracket Expressions170924
+Ref: table-char-classes172939
+Node: Leftmost Longest175881
+Node: Computed Regexps177183
+Node: GNU Regexp Operators180612
+Node: Case-sensitivity184284
+Ref: Case-sensitivity-Footnote-1187169
+Ref: Case-sensitivity-Footnote-2187404
+Node: Regexp Summary187512
+Node: Reading Files188979
+Node: Records191072
+Node: awk split records191805
+Node: gawk split records196734
+Ref: gawk split records-Footnote-1201273
+Node: Fields201310
+Ref: Fields-Footnote-1204088
+Node: Nonconstant Fields204174
+Ref: Nonconstant Fields-Footnote-1206412
+Node: Changing Fields206615
+Node: Field Separators212546
+Node: Default Field Splitting215250
+Node: Regexp Field Splitting216367
+Node: Single Character Fields219717
+Node: Command Line Field Separator220776
+Node: Full Line Fields223993
+Ref: Full Line Fields-Footnote-1225514
+Ref: Full Line Fields-Footnote-2225560
+Node: Field Splitting Summary225661
+Node: Constant Size227735
+Node: Splitting By Content232318
+Ref: Splitting By Content-Footnote-1236283
+Node: Multiple Line236446
+Ref: Multiple Line-Footnote-1242327
+Node: Getline242506
+Node: Plain Getline244713
+Node: Getline/Variable247353
+Node: Getline/File248502
+Node: Getline/Variable/File249887
+Ref: Getline/Variable/File-Footnote-1251490
+Node: Getline/Pipe251577
+Node: Getline/Variable/Pipe254255
+Node: Getline/Coprocess255386
+Node: Getline/Variable/Coprocess256650
+Node: Getline Notes257389
+Node: Getline Summary260183
+Ref: table-getline-variants260595
+Node: Read Timeout261424
+Ref: Read Timeout-Footnote-1265261
+Node: Command-line directories265319
+Node: Input Summary266224
+Node: Input Exercises269609
+Node: Printing270337
+Node: Print272114
+Node: Print Examples273571
+Node: Output Separators276350
+Node: OFMT278368
+Node: Printf279723
+Node: Basic Printf280508
+Node: Control Letters282080
+Node: Format Modifiers286065
+Node: Printf Examples292071
+Node: Redirection294557
+Node: Special FD301395
+Ref: Special FD-Footnote-1304561
+Node: Special Files304635
+Node: Other Inherited Files305252
+Node: Special Network306252
+Node: Special Caveats307114
+Node: Close Files And Pipes308063
+Ref: Close Files And Pipes-Footnote-1315254
+Ref: Close Files And Pipes-Footnote-2315402
+Node: Output Summary315552
+Node: Output Exercises316550
+Node: Expressions317230
+Node: Values318419
+Node: Constants319096
+Node: Scalar Constants319787
+Ref: Scalar Constants-Footnote-1320649
+Node: Nondecimal-numbers320899
+Node: Regexp Constants323909
+Node: Using Constant Regexps324435
+Node: Variables327598
+Node: Using Variables328255
+Node: Assignment Options330166
+Node: Conversion332041
+Node: Strings And Numbers332565
+Ref: Strings And Numbers-Footnote-1335630
+Node: Locale influences conversions335739
+Ref: table-locale-affects338485
+Node: All Operators339077
+Node: Arithmetic Ops339706
+Node: Concatenation342211
+Ref: Concatenation-Footnote-1345030
+Node: Assignment Ops345137
+Ref: table-assign-ops350116
+Node: Increment Ops351426
+Node: Truth Values and Conditions354857
+Node: Truth Values355940
+Node: Typing and Comparison356989
+Node: Variable Typing357805
+Node: Comparison Operators361472
+Ref: table-relational-ops361882
+Node: POSIX String Comparison365377
+Ref: POSIX String Comparison-Footnote-1366449
+Node: Boolean Ops366588
+Ref: Boolean Ops-Footnote-1371066
+Node: Conditional Exp371157
+Node: Function Calls372895
+Node: Precedence376775
+Node: Locales380435
+Node: Expressions Summary382067
+Node: Patterns and Actions384638
+Node: Pattern Overview385758
+Node: Regexp Patterns387437
+Node: Expression Patterns387980
+Node: Ranges391760
+Node: BEGIN/END394867
+Node: Using BEGIN/END395628
+Ref: Using BEGIN/END-Footnote-1398364
+Node: I/O And BEGIN/END398470
+Node: BEGINFILE/ENDFILE400785
+Node: Empty403682
+Node: Using Shell Variables403999
+Node: Action Overview406272
+Node: Statements408598
+Node: If Statement410446
+Node: While Statement411941
+Node: Do Statement413969
+Node: For Statement415117
+Node: Switch Statement418275
+Node: Break Statement420657
+Node: Continue Statement422750
+Node: Next Statement424577
+Node: Nextfile Statement426958
+Node: Exit Statement429586
+Node: Built-in Variables431997
+Node: User-modified433130
+Ref: User-modified-Footnote-1440764
+Node: Auto-set440826
+Ref: Auto-set-Footnote-1454535
+Ref: Auto-set-Footnote-2454740
+Node: ARGC and ARGV454796
+Node: Pattern Action Summary459014
+Node: Arrays461447
+Node: Array Basics462776
+Node: Array Intro463620
+Ref: figure-array-elements465554
+Ref: Array Intro-Footnote-1468174
+Node: Reference to Elements468302
+Node: Assigning Elements470764
+Node: Array Example471255
+Node: Scanning an Array473014
+Node: Controlling Scanning476034
+Ref: Controlling Scanning-Footnote-1481428
+Node: Numeric Array Subscripts481744
+Node: Uninitialized Subscripts483929
+Node: Delete485546
+Ref: Delete-Footnote-1488295
+Node: Multidimensional488352
+Node: Multiscanning491449
+Node: Arrays of Arrays493038
+Node: Arrays Summary497792
+Node: Functions499883
+Node: Built-in500922
+Node: Calling Built-in502000
+Node: Numeric Functions503995
+Ref: Numeric Functions-Footnote-1508813
+Ref: Numeric Functions-Footnote-2509170
+Ref: Numeric Functions-Footnote-3509218
+Node: String Functions509490
+Ref: String Functions-Footnote-1532991
+Ref: String Functions-Footnote-2533120
+Ref: String Functions-Footnote-3533368
+Node: Gory Details533455
+Ref: table-sub-escapes535236
+Ref: table-sub-proposed536751
+Ref: table-posix-sub538113
+Ref: table-gensub-escapes539650
+Ref: Gory Details-Footnote-1540483
+Node: I/O Functions540634
+Ref: I/O Functions-Footnote-1547870
+Node: Time Functions548017
+Ref: Time Functions-Footnote-1558526
+Ref: Time Functions-Footnote-2558594
+Ref: Time Functions-Footnote-3558752
+Ref: Time Functions-Footnote-4558863
+Ref: Time Functions-Footnote-5558975
+Ref: Time Functions-Footnote-6559202
+Node: Bitwise Functions559468
+Ref: table-bitwise-ops560030
+Ref: Bitwise Functions-Footnote-1564358
+Node: Type Functions564530
+Node: I18N Functions565682
+Node: User-defined567329
+Node: Definition Syntax568134
+Ref: Definition Syntax-Footnote-1573793
+Node: Function Example573864
+Ref: Function Example-Footnote-1576785
+Node: Function Caveats576807
+Node: Calling A Function577325
+Node: Variable Scope578283
+Node: Pass By Value/Reference581276
+Node: Return Statement584773
+Node: Dynamic Typing587752
+Node: Indirect Calls588681
+Ref: Indirect Calls-Footnote-1598546
+Node: Functions Summary598674
+Node: Library Functions601376
+Ref: Library Functions-Footnote-1604984
+Ref: Library Functions-Footnote-2605127
+Node: Library Names605298
+Ref: Library Names-Footnote-1608756
+Ref: Library Names-Footnote-2608979
+Node: General Functions609065
+Node: Strtonum Function610168
+Node: Assert Function613190
+Node: Round Function616514
+Node: Cliff Random Function618055
+Node: Ordinal Functions619071
+Ref: Ordinal Functions-Footnote-1622134
+Ref: Ordinal Functions-Footnote-2622386
+Node: Join Function622597
+Ref: Join Function-Footnote-1624367
+Node: Getlocaltime Function624567
+Node: Readfile Function628311
+Node: Shell Quoting630283
+Node: Data File Management631684
+Node: Filetrans Function632316
+Node: Rewind Function636412
+Node: File Checking637798
+Ref: File Checking-Footnote-1639131
+Node: Empty Files639332
+Node: Ignoring Assigns641311
+Node: Getopt Function642861
+Ref: Getopt Function-Footnote-1654325
+Node: Passwd Functions654525
+Ref: Passwd Functions-Footnote-1663365
+Node: Group Functions663453
+Ref: Group Functions-Footnote-1671350
+Node: Walking Arrays671555
+Node: Library Functions Summary674561
+Node: Library Exercises675963
+Node: Sample Programs677243
+Node: Running Examples678013
+Node: Clones678741
+Node: Cut Program679965
+Node: Egrep Program689685
+Ref: Egrep Program-Footnote-1697188
+Node: Id Program697298
+Node: Split Program700974
+Ref: Split Program-Footnote-1704428
+Node: Tee Program704556
+Node: Uniq Program707345
+Node: Wc Program714764
+Ref: Wc Program-Footnote-1719014
+Node: Miscellaneous Programs719108
+Node: Dupword Program720321
+Node: Alarm Program722352
+Node: Translate Program727157
+Ref: Translate Program-Footnote-1731720
+Node: Labels Program731990
+Ref: Labels Program-Footnote-1735341
+Node: Word Sorting735425
+Node: History Sorting739495
+Node: Extract Program741330
+Node: Simple Sed748854
+Node: Igawk Program751924
+Ref: Igawk Program-Footnote-1766250
+Ref: Igawk Program-Footnote-2766451
+Ref: Igawk Program-Footnote-3766573
+Node: Anagram Program766688
+Node: Signature Program769749
+Node: Programs Summary770996
+Node: Programs Exercises772217
+Ref: Programs Exercises-Footnote-1776348
+Node: Advanced Features776439
+Node: Nondecimal Data778421
+Node: Array Sorting780011
+Node: Controlling Array Traversal780711
+Ref: Controlling Array Traversal-Footnote-1789077
+Node: Array Sorting Functions789195
+Ref: Array Sorting Functions-Footnote-1793081
+Node: Two-way I/O793277
+Ref: Two-way I/O-Footnote-1798222
+Ref: Two-way I/O-Footnote-2798408
+Node: TCP/IP Networking798490
+Node: Profiling801362
+Node: Advanced Features Summary809633
+Node: Internationalization811566
+Node: I18N and L10N813046
+Node: Explaining gettext813732
+Ref: Explaining gettext-Footnote-1818757
+Ref: Explaining gettext-Footnote-2818941
+Node: Programmer i18n819106
+Ref: Programmer i18n-Footnote-1823982
+Node: Translator i18n824031
+Node: String Extraction824825
+Ref: String Extraction-Footnote-1825956
+Node: Printf Ordering826042
+Ref: Printf Ordering-Footnote-1828828
+Node: I18N Portability828892
+Ref: I18N Portability-Footnote-1831348
+Node: I18N Example831411
+Ref: I18N Example-Footnote-1834214
+Node: Gawk I18N834286
+Node: I18N Summary834930
+Node: Debugger836270
+Node: Debugging837292
+Node: Debugging Concepts837733
+Node: Debugging Terms839543
+Node: Awk Debugging842115
+Node: Sample Debugging Session843021
+Node: Debugger Invocation843555
+Node: Finding The Bug844940
+Node: List of Debugger Commands851419
+Node: Breakpoint Control852751
+Node: Debugger Execution Control856428
+Node: Viewing And Changing Data859787
+Node: Execution Stack863163
+Node: Debugger Info864798
+Node: Miscellaneous Debugger Commands868843
+Node: Readline Support873844
+Node: Limitations874738
+Node: Debugging Summary876853
+Node: Arbitrary Precision Arithmetic878027
+Node: Computer Arithmetic879443
+Ref: table-numeric-ranges883042
+Ref: Computer Arithmetic-Footnote-1883566
+Node: Math Definitions883623
+Ref: table-ieee-formats886918
+Ref: Math Definitions-Footnote-1887522
+Node: MPFR features887627
+Node: FP Math Caution889298
+Ref: FP Math Caution-Footnote-1890348
+Node: Inexactness of computations890717
+Node: Inexact representation891676
+Node: Comparing FP Values893034
+Node: Errors accumulate894116
+Node: Getting Accuracy895548
+Node: Try To Round898252
+Node: Setting precision899151
+Ref: table-predefined-precision-strings899835
+Node: Setting the rounding mode901664
+Ref: table-gawk-rounding-modes902028
+Ref: Setting the rounding mode-Footnote-1905480
+Node: Arbitrary Precision Integers905659
+Ref: Arbitrary Precision Integers-Footnote-1910557
+Node: POSIX Floating Point Problems910706
+Ref: POSIX Floating Point Problems-Footnote-1914585
+Node: Floating point summary914623
+Node: Dynamic Extensions916810
+Node: Extension Intro918362
+Node: Plugin License919627
+Node: Extension Mechanism Outline920424
+Ref: figure-load-extension920852
+Ref: figure-register-new-function922332
+Ref: figure-call-new-function923336
+Node: Extension API Description925323
+Node: Extension API Functions Introduction926773
+Node: General Data Types931594
+Ref: General Data Types-Footnote-1937494
+Node: Memory Allocation Functions937793
+Ref: Memory Allocation Functions-Footnote-1940632
+Node: Constructor Functions940731
+Node: Registration Functions942470
+Node: Extension Functions943155
+Node: Exit Callback Functions945452
+Node: Extension Version String946700
+Node: Input Parsers947363
+Node: Output Wrappers957238
+Node: Two-way processors961751
+Node: Printing Messages964014
+Ref: Printing Messages-Footnote-1965090
+Node: Updating `ERRNO'965242
+Node: Requesting Values965982
+Ref: table-value-types-returned966709
+Node: Accessing Parameters967666
+Node: Symbol Table Access968900
+Node: Symbol table by name969414
+Node: Symbol table by cookie971434
+Ref: Symbol table by cookie-Footnote-1975579
+Node: Cached values975642
+Ref: Cached values-Footnote-1979138
+Node: Array Manipulation979229
+Ref: Array Manipulation-Footnote-1980327
+Node: Array Data Types980364
+Ref: Array Data Types-Footnote-1983019
+Node: Array Functions983111
+Node: Flattening Arrays986970
+Node: Creating Arrays993872
+Node: Extension API Variables998643
+Node: Extension Versioning999279
+Node: Extension API Informational Variables1001170
+Node: Extension API Boilerplate1002235
+Node: Finding Extensions1006044
+Node: Extension Example1006604
+Node: Internal File Description1007376
+Node: Internal File Ops1011443
+Ref: Internal File Ops-Footnote-11023194
+Node: Using Internal File Ops1023334
+Ref: Using Internal File Ops-Footnote-11025717
+Node: Extension Samples1025990
+Node: Extension Sample File Functions1027518
+Node: Extension Sample Fnmatch1035199
+Node: Extension Sample Fork1036687
+Node: Extension Sample Inplace1037902
+Node: Extension Sample Ord1039578
+Node: Extension Sample Readdir1040414
+Ref: table-readdir-file-types1041291
+Node: Extension Sample Revout1042102
+Node: Extension Sample Rev2way1042691
+Node: Extension Sample Read write array1043431
+Node: Extension Sample Readfile1045371
+Node: Extension Sample Time1046466
+Node: Extension Sample API Tests1047814
+Node: gawkextlib1048305
+Node: Extension summary1050983
+Node: Extension Exercises1054672
+Node: Language History1055394
+Node: V7/SVR3.11057050
+Node: SVR41059203
+Node: POSIX1060637
+Node: BTL1062018
+Node: POSIX/GNU1062749
+Node: Feature History1068494
+Node: Common Extensions1082220
+Node: Ranges and Locales1083592
+Ref: Ranges and Locales-Footnote-11088211
+Ref: Ranges and Locales-Footnote-21088238
+Ref: Ranges and Locales-Footnote-31088473
+Node: Contributors1088694
+Node: History summary1094234
+Node: Installation1095613
+Node: Gawk Distribution1096559
+Node: Getting1097043
+Node: Extracting1097866
+Node: Distribution contents1099503
+Node: Unix Installation1105605
+Node: Quick Installation1106288
+Node: Shell Startup Files1108699
+Node: Additional Configuration Options1109778
+Node: Configuration Philosophy1111582
+Node: Non-Unix Installation1113951
+Node: PC Installation1114409
+Node: PC Binary Installation1115729
+Node: PC Compiling1117577
+Ref: PC Compiling-Footnote-11120598
+Node: PC Testing1120707
+Node: PC Using1121883
+Node: Cygwin1125998
+Node: MSYS1126768
+Node: VMS Installation1127269
+Node: VMS Compilation1128061
+Ref: VMS Compilation-Footnote-11129290
+Node: VMS Dynamic Extensions1129348
+Node: VMS Installation Details1131032
+Node: VMS Running1133283
+Node: VMS GNV1136123
+Node: VMS Old Gawk1136858
+Node: Bugs1137328
+Node: Other Versions1141217
+Node: Installation summary1147651
+Node: Notes1148710
+Node: Compatibility Mode1149575
+Node: Additions1150357
+Node: Accessing The Source1151282
+Node: Adding Code1152717
+Node: New Ports1158874
+Node: Derived Files1163356
+Ref: Derived Files-Footnote-11168831
+Ref: Derived Files-Footnote-21168865
+Ref: Derived Files-Footnote-31169461
+Node: Future Extensions1169575
+Node: Implementation Limitations1170181
+Node: Extension Design1171429
+Node: Old Extension Problems1172583
+Ref: Old Extension Problems-Footnote-11174100
+Node: Extension New Mechanism Goals1174157
+Ref: Extension New Mechanism Goals-Footnote-11177517
+Node: Extension Other Design Decisions1177706
+Node: Extension Future Growth1179814
+Node: Old Extension Mechanism1180650
+Node: Notes summary1182412
+Node: Basic Concepts1183598
+Node: Basic High Level1184279
+Ref: figure-general-flow1184551
+Ref: figure-process-flow1185150
+Ref: Basic High Level-Footnote-11188379
+Node: Basic Data Typing1188564
+Node: Glossary1191892
+Node: Copying1223821
+Node: GNU Free Documentation License1261377
+Node: Index1286513

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 2d0da0cd..5d7277b9 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -1520,7 +1520,7 @@ is often referred to as ``new @command{awk}.''
By analogy, the original version of @command{awk} is
referred to as ``old @command{awk}.''
-Today, on most systems, when you run the @command{awk} utility
+On most current systems, when you run the @command{awk} utility
you get some version of new @command{awk}.@footnote{Only
Solaris systems still use an old @command{awk} for the
default @command{awk} utility. A more modern @command{awk} lives in
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index a4a64c31..303b7db8 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -1487,7 +1487,7 @@ is often referred to as ``new @command{awk}.''
By analogy, the original version of @command{awk} is
referred to as ``old @command{awk}.''
-Today, on most systems, when you run the @command{awk} utility
+On most current systems, when you run the @command{awk} utility
you get some version of new @command{awk}.@footnote{Only
Solaris systems still use an old @command{awk} for the
default @command{awk} utility. A more modern @command{awk} lives in
diff --git a/doc/texinfo.tex b/doc/texinfo.tex
index 370d4505..8236d7d2 100644
--- a/doc/texinfo.tex
+++ b/doc/texinfo.tex
@@ -3,11 +3,12 @@
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
-\def\texinfoversion{2014-12-03.16}
+\def\texinfoversion{2015-02-05.16}
%
% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-% 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.
+% 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015
+% Free Software Foundation, Inc.
%
% This texinfo.tex file is free software: you can redistribute it and/or
% modify it under the terms of the GNU General Public License as
@@ -4488,7 +4489,6 @@ end
% Called from \indexdummies and \atdummies.
%
\def\commondummies{%
- %
% \definedummyword defines \#1 as \string\#1\space, thus effectively
% preventing its expansion. This is used only for control words,
% not control letters, because the \space would be incorrect for
@@ -4565,6 +4565,7 @@ end
\definedummyword\guilsinglright
\definedummyword\lbracechar
\definedummyword\leq
+ \definedummyword\mathopsup
\definedummyword\minus
\definedummyword\ogonek
\definedummyword\pounds
@@ -4578,6 +4579,8 @@ end
\definedummyword\quotesinglbase
\definedummyword\rbracechar
\definedummyword\result
+ \definedummyword\sub
+ \definedummyword\sup
\definedummyword\textdegree
%
% We want to disable all macros so that they are not expanded by \write.
@@ -4652,6 +4655,7 @@ end
\definedummyword\samp
\definedummyword\strong
\definedummyword\tie
+ \definedummyword\U
\definedummyword\uref
\definedummyword\url
\definedummyword\var
@@ -8334,14 +8338,7 @@ end
\catcode`\\=\other
%
% Make the characters 128-255 be printing characters.
- {%
- \count1=128
- \def\loop{%
- \catcode\count1=\other
- \advance\count1 by 1
- \ifnum \count1<256 \loop \fi
- }%
- }%
+ {\setnonasciicharscatcodenonglobal\other}%
%
% @ is our escape character in .aux files, and we need braces.
\catcode`\{=1
@@ -8952,6 +8949,7 @@ directory should work if nowhere else does.}
\catcode\count255=#1\relax
\advance\count255 by 1
\repeat
+
}
% @documentencoding sets the definition of non-ASCII characters
@@ -8986,10 +8984,12 @@ directory should work if nowhere else does.}
%
\else \ifx \declaredencoding \utfeight
\setnonasciicharscatcode\active
- \utfeightchardefs
+ % since we already invoked \utfeightchardefs at the top level
+ % (below), do not re-invoke it, then our check for duplicated
+ % definitions triggers. Making non-ascii chars active is enough.
%
\else
- \message{Unknown document encoding #1, ignoring.}%
+ \message{Ignoring unknown document encoding: #1.}%
%
\fi % utfeight
\fi % latnine
@@ -8998,10 +8998,11 @@ directory should work if nowhere else does.}
\fi % ascii
}
+% emacs-page
% A message to be logged when using a character that isn't available
% the default font encoding (OT1).
%
-\def\missingcharmsg#1{\message{Character missing in OT1 encoding: #1.}}
+\def\missingcharmsg#1{\message{Character missing, sorry: #1.}}
% Take account of \c (plain) vs. \, (Texinfo) difference.
\def\cedilla#1{\ifx\c\ptexc\c{#1}\else\,{#1}\fi}
@@ -9037,12 +9038,10 @@ directory should work if nowhere else does.}
\gdef^^b4{\'{}}
\gdef^^b5{$\mu$}
\gdef^^b6{\P}
- %
- \gdef^^b7{$^.$}
+ \gdef^^b7{\ifmmode\cdot\else $\cdot$\fi}
\gdef^^b8{\cedilla\ }
\gdef^^b9{$^1$}
\gdef^^ba{\ordm}
- %
\gdef^^bb{\guillemetright}
\gdef^^bc{$1\over4$}
\gdef^^bd{$1\over2$}
@@ -9331,6 +9330,11 @@ directory should work if nowhere else does.}
\expandafter\expandafter\expandafter\expandafter
\expandafter\expandafter\expandafter
\gdef\UTFviiiTmp{#2}%
+ %
+ \expandafter\ifx\csname uni:#1\endcsname \relax \else
+ \errmessage{Internal error, already defined: #1}%
+ \fi
+ %
% define an additional control sequence for this code point.
\expandafter\globallet\csname uni:#1\endcsname \UTFviiiTmp
\endgroup}
@@ -9370,23 +9374,49 @@ directory should work if nowhere else does.}
\uppercase{\gdef\UTFviiiTmp{#2#3#4}}}
\endgroup
+% https://en.wikipedia.org/wiki/Plane_(Unicode)#Basic_M
+% U+0000..U+007F = https://en.wikipedia.org/wiki/Basic_Latin_(Unicode_block)
+% U+0080..U+00FF = https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)
+% U+0100..U+017F = https://en.wikipedia.org/wiki/Latin_Extended-A
+% U+0180..U+024F = https://en.wikipedia.org/wiki/Latin_Extended-B
+%
+% Many of our renditions are less than wonderful, and all the missing
+% characters are available somewhere. Loading the necessary fonts
+% awaits user request. We can't truly support Unicode without
+% reimplementing everything that's been done in LaTeX for many years,
+% plus probably using luatex or xetex, and who knows what else.
+% We won't be doing that here in this simple file. But we can try to at
+% least make most of the characters not bomb out.
+%
\def\utfeightchardefs{%
\DeclareUnicodeCharacter{00A0}{\tie}
\DeclareUnicodeCharacter{00A1}{\exclamdown}
\DeclareUnicodeCharacter{00A3}{\pounds}
+ \DeclareUnicodeCharacter{00A7}{\S}
\DeclareUnicodeCharacter{00A8}{\"{ }}
\DeclareUnicodeCharacter{00A9}{\copyright}
\DeclareUnicodeCharacter{00AA}{\ordf}
\DeclareUnicodeCharacter{00AB}{\guillemetleft}
+ \DeclareUnicodeCharacter{00AC}{\ifmmode\lnot\else $\lnot$\fi}
\DeclareUnicodeCharacter{00AD}{\-}
\DeclareUnicodeCharacter{00AE}{\registeredsymbol}
\DeclareUnicodeCharacter{00AF}{\={ }}
\DeclareUnicodeCharacter{00B0}{\ringaccent{ }}
+ \DeclareUnicodeCharacter{00B1}{\ifmmode\pm\else $\pm$\fi}
+ \DeclareUnicodeCharacter{00B2}{$^2$}
+ \DeclareUnicodeCharacter{00B3}{$^3$}
\DeclareUnicodeCharacter{00B4}{\'{ }}
+ \DeclareUnicodeCharacter{00B5}{$\mu$}
+ \DeclareUnicodeCharacter{00B6}{\P}
+ \DeclareUnicodeCharacter{00B7}{\ifmmode\cdot\else $\cdot$\fi}
\DeclareUnicodeCharacter{00B8}{\cedilla{ }}
+ \DeclareUnicodeCharacter{00B9}{$^1$}
\DeclareUnicodeCharacter{00BA}{\ordm}
\DeclareUnicodeCharacter{00BB}{\guillemetright}
+ \DeclareUnicodeCharacter{00BC}{$1\over4$}
+ \DeclareUnicodeCharacter{00BD}{$1\over2$}
+ \DeclareUnicodeCharacter{00BE}{$3\over4$}
\DeclareUnicodeCharacter{00BF}{\questiondown}
\DeclareUnicodeCharacter{00C0}{\`A}
@@ -9413,6 +9443,7 @@ directory should work if nowhere else does.}
\DeclareUnicodeCharacter{00D4}{\^O}
\DeclareUnicodeCharacter{00D5}{\~O}
\DeclareUnicodeCharacter{00D6}{\"O}
+ \DeclareUnicodeCharacter{00D7}{\ifmmode\times\else $\times$\fi}
\DeclareUnicodeCharacter{00D8}{\O}
\DeclareUnicodeCharacter{00D9}{\`U}
\DeclareUnicodeCharacter{00DA}{\'U}
@@ -9446,6 +9477,7 @@ directory should work if nowhere else does.}
\DeclareUnicodeCharacter{00F4}{\^o}
\DeclareUnicodeCharacter{00F5}{\~o}
\DeclareUnicodeCharacter{00F6}{\"o}
+ \DeclareUnicodeCharacter{00F7}{\ifmmode\div\else $\div$\fi}
\DeclareUnicodeCharacter{00F8}{\o}
\DeclareUnicodeCharacter{00F9}{\`u}
\DeclareUnicodeCharacter{00FA}{\'u}
@@ -9465,20 +9497,23 @@ directory should work if nowhere else does.}
\DeclareUnicodeCharacter{0107}{\'c}
\DeclareUnicodeCharacter{0108}{\^C}
\DeclareUnicodeCharacter{0109}{\^c}
- \DeclareUnicodeCharacter{0118}{\ogonek{E}}
- \DeclareUnicodeCharacter{0119}{\ogonek{e}}
\DeclareUnicodeCharacter{010A}{\dotaccent{C}}
\DeclareUnicodeCharacter{010B}{\dotaccent{c}}
\DeclareUnicodeCharacter{010C}{\v{C}}
\DeclareUnicodeCharacter{010D}{\v{c}}
\DeclareUnicodeCharacter{010E}{\v{D}}
+ \DeclareUnicodeCharacter{010F}{d'}
+ \DeclareUnicodeCharacter{0110}{\DH}
+ \DeclareUnicodeCharacter{0111}{\dh}
\DeclareUnicodeCharacter{0112}{\=E}
\DeclareUnicodeCharacter{0113}{\=e}
\DeclareUnicodeCharacter{0114}{\u{E}}
\DeclareUnicodeCharacter{0115}{\u{e}}
\DeclareUnicodeCharacter{0116}{\dotaccent{E}}
\DeclareUnicodeCharacter{0117}{\dotaccent{e}}
+ \DeclareUnicodeCharacter{0118}{\ogonek{E}}
+ \DeclareUnicodeCharacter{0119}{\ogonek{e}}
\DeclareUnicodeCharacter{011A}{\v{E}}
\DeclareUnicodeCharacter{011B}{\v{e}}
\DeclareUnicodeCharacter{011C}{\^G}
@@ -9488,14 +9523,20 @@ directory should work if nowhere else does.}
\DeclareUnicodeCharacter{0120}{\dotaccent{G}}
\DeclareUnicodeCharacter{0121}{\dotaccent{g}}
+ \DeclareUnicodeCharacter{0122}{\cedilla{G}}
+ \DeclareUnicodeCharacter{0123}{\cedilla{g}}
\DeclareUnicodeCharacter{0124}{\^H}
\DeclareUnicodeCharacter{0125}{\^h}
+ \DeclareUnicodeCharacter{0126}{\missingcharmsg{H WITH STROKE}}
+ \DeclareUnicodeCharacter{0127}{\missingcharmsg{h WITH STROKE}}
\DeclareUnicodeCharacter{0128}{\~I}
\DeclareUnicodeCharacter{0129}{\~{\dotless{i}}}
\DeclareUnicodeCharacter{012A}{\=I}
\DeclareUnicodeCharacter{012B}{\={\dotless{i}}}
\DeclareUnicodeCharacter{012C}{\u{I}}
\DeclareUnicodeCharacter{012D}{\u{\dotless{i}}}
+ \DeclareUnicodeCharacter{012E}{\ogonek{I}}
+ \DeclareUnicodeCharacter{012F}{\ogonek{i}}
\DeclareUnicodeCharacter{0130}{\dotaccent{I}}
\DeclareUnicodeCharacter{0131}{\dotless{i}}
@@ -9503,15 +9544,29 @@ directory should work if nowhere else does.}
\DeclareUnicodeCharacter{0133}{ij}
\DeclareUnicodeCharacter{0134}{\^J}
\DeclareUnicodeCharacter{0135}{\^{\dotless{j}}}
+ \DeclareUnicodeCharacter{0136}{\cedilla{K}}
+ \DeclareUnicodeCharacter{0137}{\cedilla{k}}
+ \DeclareUnicodeCharacter{0138}{\ifmmode\kappa\else $\kappa$\fi}
\DeclareUnicodeCharacter{0139}{\'L}
\DeclareUnicodeCharacter{013A}{\'l}
+ \DeclareUnicodeCharacter{013B}{\cedilla{L}}
+ \DeclareUnicodeCharacter{013C}{\cedilla{l}}
+ \DeclareUnicodeCharacter{013D}{L'}% should kern
+ \DeclareUnicodeCharacter{013E}{l'}% should kern
+ \DeclareUnicodeCharacter{013F}{L\U{00B7}}
+ \DeclareUnicodeCharacter{0140}{l\U{00B7}}
\DeclareUnicodeCharacter{0141}{\L}
\DeclareUnicodeCharacter{0142}{\l}
\DeclareUnicodeCharacter{0143}{\'N}
\DeclareUnicodeCharacter{0144}{\'n}
+ \DeclareUnicodeCharacter{0145}{\cedilla{N}}
+ \DeclareUnicodeCharacter{0146}{\cedilla{n}}
\DeclareUnicodeCharacter{0147}{\v{N}}
\DeclareUnicodeCharacter{0148}{\v{n}}
+ \DeclareUnicodeCharacter{0149}{'n}
+ \DeclareUnicodeCharacter{014A}{\missingcharmsg{ENG}}
+ \DeclareUnicodeCharacter{014B}{\missingcharmsg{eng}}
\DeclareUnicodeCharacter{014C}{\=O}
\DeclareUnicodeCharacter{014D}{\=o}
\DeclareUnicodeCharacter{014E}{\u{O}}
@@ -9523,6 +9578,8 @@ directory should work if nowhere else does.}
\DeclareUnicodeCharacter{0153}{\oe}
\DeclareUnicodeCharacter{0154}{\'R}
\DeclareUnicodeCharacter{0155}{\'r}
+ \DeclareUnicodeCharacter{0156}{\cedilla{R}}
+ \DeclareUnicodeCharacter{0157}{\cedilla{r}}
\DeclareUnicodeCharacter{0158}{\v{R}}
\DeclareUnicodeCharacter{0159}{\v{r}}
\DeclareUnicodeCharacter{015A}{\'S}
@@ -9534,10 +9591,12 @@ directory should work if nowhere else does.}
\DeclareUnicodeCharacter{0160}{\v{S}}
\DeclareUnicodeCharacter{0161}{\v{s}}
- \DeclareUnicodeCharacter{0162}{\cedilla{t}}
- \DeclareUnicodeCharacter{0163}{\cedilla{T}}
+ \DeclareUnicodeCharacter{0162}{\cedilla{T}}
+ \DeclareUnicodeCharacter{0163}{\cedilla{t}}
\DeclareUnicodeCharacter{0164}{\v{T}}
-
+ \DeclareUnicodeCharacter{0165}{\v{t}}
+ \DeclareUnicodeCharacter{0166}{\missingcharmsg{H WITH STROKE}}
+ \DeclareUnicodeCharacter{0167}{\missingcharmsg{h WITH STROKE}}
\DeclareUnicodeCharacter{0168}{\~U}
\DeclareUnicodeCharacter{0169}{\~u}
\DeclareUnicodeCharacter{016A}{\=U}
@@ -9549,6 +9608,8 @@ directory should work if nowhere else does.}
\DeclareUnicodeCharacter{0170}{\H{U}}
\DeclareUnicodeCharacter{0171}{\H{u}}
+ \DeclareUnicodeCharacter{0172}{\ogonek{U}}
+ \DeclareUnicodeCharacter{0173}{\ogonek{u}}
\DeclareUnicodeCharacter{0174}{\^W}
\DeclareUnicodeCharacter{0175}{\^w}
\DeclareUnicodeCharacter{0176}{\^Y}
@@ -9560,6 +9621,7 @@ directory should work if nowhere else does.}
\DeclareUnicodeCharacter{017C}{\dotaccent{z}}
\DeclareUnicodeCharacter{017D}{\v{Z}}
\DeclareUnicodeCharacter{017E}{\v{z}}
+ \DeclareUnicodeCharacter{017F}{\missingcharmsg{LONG S}}
\DeclareUnicodeCharacter{01C4}{D\v{Z}}
\DeclareUnicodeCharacter{01C5}{D\v{z}}
@@ -9765,12 +9827,51 @@ directory should work if nowhere else does.}
\DeclareUnicodeCharacter{2261}{\equiv}
}% end of \utfeightchardefs
-
% US-ASCII character definitions.
\def\asciichardefs{% nothing need be done
\relax
}
+% Latin1 (ISO-8859-1) character definitions.
+\def\nonasciistringdefs{%
+ \setnonasciicharscatcode\active
+ \def\defstringchar##1{\def##1{\string##1}}%
+ \defstringchar^^a0\defstringchar^^a1\defstringchar^^a2\defstringchar^^a3%
+ \defstringchar^^a4\defstringchar^^a5\defstringchar^^a6\defstringchar^^a7%
+ \defstringchar^^a8\defstringchar^^a9\defstringchar^^aa\defstringchar^^ab%
+ \defstringchar^^ac\defstringchar^^ad\defstringchar^^ae\defstringchar^^af%
+ %
+ \defstringchar^^b0\defstringchar^^b1\defstringchar^^b2\defstringchar^^b3%
+ \defstringchar^^b4\defstringchar^^b5\defstringchar^^b6\defstringchar^^b7%
+ \defstringchar^^b8\defstringchar^^b9\defstringchar^^ba\defstringchar^^bb%
+ \defstringchar^^bc\defstringchar^^bd\defstringchar^^be\defstringchar^^bf%
+ %
+ \defstringchar^^c0\defstringchar^^c1\defstringchar^^c2\defstringchar^^c3%
+ \defstringchar^^c4\defstringchar^^c5\defstringchar^^c6\defstringchar^^c7%
+ \defstringchar^^c8\defstringchar^^c9\defstringchar^^ca\defstringchar^^cb%
+ \defstringchar^^cc\defstringchar^^cd\defstringchar^^ce\defstringchar^^cf%
+ %
+ \defstringchar^^d0\defstringchar^^d1\defstringchar^^d2\defstringchar^^d3%
+ \defstringchar^^d4\defstringchar^^d5\defstringchar^^d6\defstringchar^^d7%
+ \defstringchar^^d8\defstringchar^^d9\defstringchar^^da\defstringchar^^db%
+ \defstringchar^^dc\defstringchar^^dd\defstringchar^^de\defstringchar^^df%
+ %
+ \defstringchar^^e0\defstringchar^^e1\defstringchar^^e2\defstringchar^^e3%
+ \defstringchar^^e4\defstringchar^^e5\defstringchar^^e6\defstringchar^^e7%
+ \defstringchar^^e8\defstringchar^^e9\defstringchar^^ea\defstringchar^^eb%
+ \defstringchar^^ec\defstringchar^^ed\defstringchar^^ee\defstringchar^^ef%
+ %
+ \defstringchar^^f0\defstringchar^^f1\defstringchar^^f2\defstringchar^^f3%
+ \defstringchar^^f4\defstringchar^^f5\defstringchar^^f6\defstringchar^^f7%
+ \defstringchar^^f8\defstringchar^^f9\defstringchar^^fa\defstringchar^^fb%
+ \defstringchar^^fc\defstringchar^^fd\defstringchar^^fe\defstringchar^^ff%
+}
+
+
+% define all the unicode characters we know about, for the sake of @U.
+\utfeightchardefs
+
+
% Make non-ASCII characters printable again for compatibility with
% existing Texinfo documents that may use them, even without declaring a
% document encoding.
@@ -10124,6 +10225,7 @@ directory should work if nowhere else does.}
%
{@catcode`- = @active
@gdef@normalturnoffactive{%
+ @nonasciistringdefs
@let-=@normaldash
@let"=@normaldoublequote
@let$=@normaldollar %$ font-lock fix
@@ -10192,7 +10294,7 @@ directory should work if nowhere else does.}
@c Local variables:
@c eval: (add-hook 'write-file-hooks 'time-stamp)
-@c page-delimiter: "^\\\\message"
+@c page-delimiter: "^\\\\message\\|emacs-page"
@c time-stamp-start: "def\\\\texinfoversion{"
@c time-stamp-format: "%:y-%02m-%02d.%02H"
@c time-stamp-end: "}"
diff --git a/test/ChangeLog b/test/ChangeLog
index ecbfaf0d..2a67fabc 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,8 @@
+2015-02-24 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (crlf): New test.
+ * crlf.awk, crlf.ok: New files.
+
2015-02-10 Arnold D. Robbins <arnold@skeeve.com>
* Makefile.am (profile0): New test.
diff --git a/test/Makefile.am b/test/Makefile.am
index 4f78ddb4..c55cb3a1 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -169,6 +169,8 @@ EXTRA_DIST = \
concat4.ok \
convfmt.awk \
convfmt.ok \
+ crlf.awk \
+ crlf.ok \
datanonl.awk \
datanonl.in \
datanonl.ok \
@@ -1034,7 +1036,7 @@ UNIX_TESTS = \
GAWK_EXT_TESTS = \
aadelete1 aadelete2 aarray1 aasort aasorti argtest arraysort \
backw badargs beginfile1 beginfile2 binmode1 charasbytes \
- colonwarn clos1way dbugeval delsub devfd devfd1 devfd2 dumpvars exit \
+ colonwarn clos1way crlf dbugeval delsub devfd devfd1 devfd2 dumpvars exit \
fieldwdth fpat1 fpat2 fpat3 fpatnull fsfwfs funlen \
functab1 functab2 functab3 fwtest fwtest2 fwtest3 \
genpot gensub gensub2 getlndir gnuops2 gnuops3 gnureops \
diff --git a/test/Makefile.in b/test/Makefile.in
index 30c77b97..2397a9b5 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -426,6 +426,8 @@ EXTRA_DIST = \
concat4.ok \
convfmt.awk \
convfmt.ok \
+ crlf.awk \
+ crlf.ok \
datanonl.awk \
datanonl.in \
datanonl.ok \
@@ -1290,7 +1292,7 @@ UNIX_TESTS = \
GAWK_EXT_TESTS = \
aadelete1 aadelete2 aarray1 aasort aasorti argtest arraysort \
backw badargs beginfile1 beginfile2 binmode1 charasbytes \
- colonwarn clos1way dbugeval delsub devfd devfd1 devfd2 dumpvars exit \
+ colonwarn clos1way crlf dbugeval delsub devfd devfd1 devfd2 dumpvars exit \
fieldwdth fpat1 fpat2 fpat3 fpatnull fsfwfs funlen \
functab1 functab2 functab3 fwtest fwtest2 fwtest3 \
genpot gensub gensub2 getlndir gnuops2 gnuops3 gnureops \
@@ -3443,6 +3445,11 @@ backw:
@AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+crlf:
+ @echo $@
+ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+
delsub:
@echo $@
@AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
diff --git a/test/Maketests b/test/Maketests
index f3639b0f..adf95cc5 100644
--- a/test/Maketests
+++ b/test/Maketests
@@ -962,6 +962,11 @@ backw:
@AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+crlf:
+ @echo $@
+ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+
delsub:
@echo $@
@AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
diff --git a/test/crlf.awk b/test/crlf.awk
new file mode 100644
index 00000000..79be9eb6
--- /dev/null
+++ b/test/crlf.awk
@@ -0,0 +1,11 @@
+BEGIN {
+ print \
+ "hi there"
+ print "hello \
+world"
+ if ("foo" ~ /fo\
+o/)
+ print "matches"
+ else
+ print "does not match!"
+}
diff --git a/test/crlf.ok b/test/crlf.ok
new file mode 100644
index 00000000..0ba071b5
--- /dev/null
+++ b/test/crlf.ok
@@ -0,0 +1,3 @@
+hi there
+hello world
+matches