[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gawk-diffs] [SCM] gawk branch, gawk-4.1-stable, updated. gawk-4.1.0-598

From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, gawk-4.1-stable, updated. gawk-4.1.0-598-gefefbfe
Date: Tue, 24 Feb 2015 20:09:25 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gawk".

The branch, gawk-4.1-stable has been updated
       via  efefbfe40342975cc0ddbd69a9b0f2635d905d3c (commit)
       via  764317bf85e5e63651486933b880a4627529d967 (commit)
       via  54445bc1d185792d6731849310a9d3c7f5c56eb5 (commit)
       via  14b63db90cddd8b437bdf4e7a4547a4c0e75768f (commit)
      from  8d95c378d502d561a6be416a67b19b247a53f48a (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------

commit efefbfe40342975cc0ddbd69a9b0f2635d905d3c
Author: Arnold D. Robbins <address@hidden>
Date:   Tue Feb 24 22:08:45 2015 +0200

    Fix line continuation with CR-LF.

diff --git a/ChangeLog b/ChangeLog
index ac0e13b..610cc4f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,8 @@
 2015-02-24         Arnold D. Robbins     <address@hidden>
        * POSIX.STD: Update copyright year.
+       * awkgram.y (yylex): Allow \r after \\ line continuation everywhere.
+       Thanks to Scott Rush <address@hidden> for the report.
 2015-02-13         Arnold D. Robbins     <address@hidden>
diff --git a/awkgram.c b/awkgram.c
index b3283eb..5376d01 100644
--- a/awkgram.c
+++ b/awkgram.c
@@ -5400,7 +5400,10 @@ yylex(void)
                                        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') {
                                } else {
@@ -5731,6 +5734,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') {
diff --git a/awkgram.y b/awkgram.y
index 0df72b4..2307c36 100644
--- a/awkgram.y
+++ b/awkgram.y
@@ -3061,7 +3061,10 @@ yylex(void)
                                        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') {
                                } else {
@@ -3392,6 +3395,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') {
diff --git a/test/ChangeLog b/test/ChangeLog
index 0d6934e..84e416b 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,8 @@
+2015-02-24         Arnold D. Robbins     <address@hidden>
+       * (crlf): New test.
+       * crlf.awk, crlf.ok: New files.
 2015-02-10         Arnold D. Robbins     <address@hidden>
        * (profile0): New test.
diff --git a/test/ b/test/
index 419265f..499c004 100644
--- a/test/
+++ b/test/
@@ -169,6 +169,8 @@ EXTRA_DIST = \
        concat4.ok \
        convfmt.awk \
        convfmt.ok \
+       crlf.awk \
+       crlf.ok \
        datanonl.awk \ \
        datanonl.ok \
@@ -1030,7 +1032,7 @@ UNIX_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/ b/test/
index 598285e..cc1ab71 100644
--- a/test/
+++ b/test/
@@ -426,6 +426,8 @@ EXTRA_DIST = \
        concat4.ok \
        convfmt.awk \
        convfmt.ok \
+       crlf.awk \
+       crlf.ok \
        datanonl.awk \ \
        datanonl.ok \
@@ -1286,7 +1288,7 @@ UNIX_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 \
@@ -3429,6 +3431,11 @@ backw:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
diff --git a/test/Maketests b/test/Maketests
index f3639b0..adf95cc 100644
--- a/test/Maketests
+++ b/test/Maketests
@@ -962,6 +962,11 @@ backw:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
diff --git a/test/crlf.awk b/test/crlf.awk
new file mode 100644
index 0000000..79be9eb
--- /dev/null
+++ b/test/crlf.awk
@@ -0,0 +1,11 @@
+       print \
+               "hi there"
+       print "hello \
+       if ("foo" ~ /fo\
+               print "matches"
+       else
+               print "does not match!"
diff --git a/test/crlf.ok b/test/crlf.ok
new file mode 100644
index 0000000..0ba071b
--- /dev/null
+++ b/test/crlf.ok
@@ -0,0 +1,3 @@
+hi there
+hello world

commit 764317bf85e5e63651486933b880a4627529d967
Author: Arnold D. Robbins <address@hidden>
Date:   Tue Feb 24 21:50:42 2015 +0200

    Minor doc edit.

diff --git a/doc/ChangeLog b/doc/ChangeLog
index 83f724c..46e57c1 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,6 +1,7 @@
 2015-02-24         Arnold D. Robbins     <address@hidden>
        * texinfo.tex: Update to most current version.
+       * Minor edit to match an O'Reilly fix.
 2015-02-22         Arnold D. Robbins     <address@hidden>
diff --git a/doc/ b/doc/
index bf85081..1b6a0a9 100644
--- a/doc/
+++ b/doc/
@@ -953,7 +953,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:
@@ -34496,551 +34496,551 @@ Ref: Preface-Footnote-251109
 Ref: Preface-Footnote-351342
 Node: History51484
 Node: Names53835
-Ref: Names-Footnote-154928
-Node: This Manual55074
-Ref: This Manual-Footnote-161574
-Node: Conventions61674
-Node: Manual History64011
-Ref: Manual History-Footnote-167004
-Ref: Manual History-Footnote-267045
-Node: How To Contribute67119
-Node: Acknowledgments68248
-Node: Getting Started73114
-Node: Running gawk75553
-Node: One-shot76743
-Node: Read Terminal78007
-Node: Long80038
-Node: Executable Scripts81551
-Ref: Executable Scripts-Footnote-184340
-Node: Comments84443
-Node: Quoting86925
-Node: DOS Quoting92443
-Node: Sample Data Files93118
-Node: Very Simple95713
-Node: Two Rules100612
-Node: More Complex102498
-Node: Statements/Lines105360
-Ref: Statements/Lines-Footnote-1109815
-Node: Other Features110080
-Node: When111016
-Ref: When-Footnote-1112770
-Node: Intro Summary112835
-Node: Invoking Gawk113719
-Node: Command Line115233
-Node: Options116031
-Ref: Options-Footnote-1131953
-Ref: Options-Footnote-2132182
-Node: Other Arguments132207
-Node: Naming Standard Input135155
-Node: Environment Variables136248
-Node: AWKPATH Variable136806
-Ref: AWKPATH Variable-Footnote-1140103
-Ref: AWKPATH Variable-Footnote-2140148
-Node: AWKLIBPATH Variable140408
-Node: Other Environment Variables141551
-Node: Exit Status145309
-Node: Include Files145985
-Node: Loading Shared Libraries149574
-Node: Obsolete151001
-Node: Undocumented151693
-Node: Invoking Summary151960
-Node: Regexp153623
-Node: Regexp Usage155077
-Node: Escape Sequences157114
-Node: Regexp Operators163124
-Ref: Regexp Operators-Footnote-1170534
-Ref: Regexp Operators-Footnote-2170681
-Node: Bracket Expressions170779
-Ref: table-char-classes172794
-Node: Leftmost Longest175736
-Node: Computed Regexps177038
-Node: GNU Regexp Operators180467
-Node: Case-sensitivity184139
-Ref: Case-sensitivity-Footnote-1187024
-Ref: Case-sensitivity-Footnote-2187259
-Node: Regexp Summary187367
-Node: Reading Files188834
-Node: Records190927
-Node: awk split records191660
-Node: gawk split records196589
-Ref: gawk split records-Footnote-1201128
-Node: Fields201165
-Ref: Fields-Footnote-1203943
-Node: Nonconstant Fields204029
-Ref: Nonconstant Fields-Footnote-1206267
-Node: Changing Fields206470
-Node: Field Separators212401
-Node: Default Field Splitting215105
-Node: Regexp Field Splitting216222
-Node: Single Character Fields219572
-Node: Command Line Field Separator220631
-Node: Full Line Fields223848
-Ref: Full Line Fields-Footnote-1225369
-Ref: Full Line Fields-Footnote-2225415
-Node: Field Splitting Summary225516
-Node: Constant Size227590
-Node: Splitting By Content232173
-Ref: Splitting By Content-Footnote-1236138
-Node: Multiple Line236301
-Ref: Multiple Line-Footnote-1242182
-Node: Getline242361
-Node: Plain Getline244568
-Node: Getline/Variable247208
-Node: Getline/File248357
-Node: Getline/Variable/File249742
-Ref: Getline/Variable/File-Footnote-1251345
-Node: Getline/Pipe251432
-Node: Getline/Variable/Pipe254110
-Node: Getline/Coprocess255241
-Node: Getline/Variable/Coprocess256505
-Node: Getline Notes257244
-Node: Getline Summary260038
-Ref: table-getline-variants260450
-Node: Read Timeout261279
-Ref: Read Timeout-Footnote-1265116
-Node: Command-line directories265174
-Node: Input Summary266079
-Node: Input Exercises269464
-Node: Printing270192
-Node: Print271969
-Node: Print Examples273426
-Node: Output Separators276205
-Node: OFMT278223
-Node: Printf279578
-Node: Basic Printf280363
-Node: Control Letters281935
-Node: Format Modifiers285920
-Node: Printf Examples291926
-Node: Redirection294412
-Node: Special FD301250
-Ref: Special FD-Footnote-1304416
-Node: Special Files304490
-Node: Other Inherited Files305107
-Node: Special Network306107
-Node: Special Caveats306969
-Node: Close Files And Pipes307918
-Ref: Close Files And Pipes-Footnote-1315109
-Ref: Close Files And Pipes-Footnote-2315257
-Node: Output Summary315407
-Node: Output Exercises316405
-Node: Expressions317085
-Node: Values318274
-Node: Constants318951
-Node: Scalar Constants319642
-Ref: Scalar Constants-Footnote-1320504
-Node: Nondecimal-numbers320754
-Node: Regexp Constants323764
-Node: Using Constant Regexps324290
-Node: Variables327453
-Node: Using Variables328110
-Node: Assignment Options330021
-Node: Conversion331896
-Node: Strings And Numbers332420
-Ref: Strings And Numbers-Footnote-1335485
-Node: Locale influences conversions335594
-Ref: table-locale-affects338340
-Node: All Operators338932
-Node: Arithmetic Ops339561
-Node: Concatenation342066
-Ref: Concatenation-Footnote-1344885
-Node: Assignment Ops344992
-Ref: table-assign-ops349971
-Node: Increment Ops351281
-Node: Truth Values and Conditions354712
-Node: Truth Values355795
-Node: Typing and Comparison356844
-Node: Variable Typing357660
-Node: Comparison Operators361327
-Ref: table-relational-ops361737
-Node: POSIX String Comparison365232
-Ref: POSIX String Comparison-Footnote-1366304
-Node: Boolean Ops366443
-Ref: Boolean Ops-Footnote-1370921
-Node: Conditional Exp371012
-Node: Function Calls372750
-Node: Precedence376630
-Node: Locales380290
-Node: Expressions Summary381922
-Node: Patterns and Actions384493
-Node: Pattern Overview385613
-Node: Regexp Patterns387292
-Node: Expression Patterns387835
-Node: Ranges391615
-Node: BEGIN/END394722
-Node: Using BEGIN/END395483
-Ref: Using BEGIN/END-Footnote-1398219
-Node: I/O And BEGIN/END398325
-Node: Empty403537
-Node: Using Shell Variables403854
-Node: Action Overview406127
-Node: Statements408453
-Node: If Statement410301
-Node: While Statement411796
-Node: Do Statement413824
-Node: For Statement414972
-Node: Switch Statement418130
-Node: Break Statement420512
-Node: Continue Statement422605
-Node: Next Statement424432
-Node: Nextfile Statement426813
-Node: Exit Statement429441
-Node: Built-in Variables431852
-Node: User-modified432985
-Ref: User-modified-Footnote-1440619
-Node: Auto-set440681
-Ref: Auto-set-Footnote-1453733
-Ref: Auto-set-Footnote-2453938
-Node: ARGC and ARGV453994
-Node: Pattern Action Summary458212
-Node: Arrays460645
-Node: Array Basics461974
-Node: Array Intro462818
-Ref: figure-array-elements464752
-Ref: Array Intro-Footnote-1467372
-Node: Reference to Elements467500
-Node: Assigning Elements469962
-Node: Array Example470453
-Node: Scanning an Array472212
-Node: Controlling Scanning475232
-Ref: Controlling Scanning-Footnote-1480626
-Node: Numeric Array Subscripts480942
-Node: Uninitialized Subscripts483127
-Node: Delete484744
-Ref: Delete-Footnote-1487493
-Node: Multidimensional487550
-Node: Multiscanning490647
-Node: Arrays of Arrays492236
-Node: Arrays Summary496990
-Node: Functions499081
-Node: Built-in500120
-Node: Calling Built-in501198
-Node: Numeric Functions503193
-Ref: Numeric Functions-Footnote-1507209
-Ref: Numeric Functions-Footnote-2507566
-Ref: Numeric Functions-Footnote-3507614
-Node: String Functions507886
-Ref: String Functions-Footnote-1531387
-Ref: String Functions-Footnote-2531516
-Ref: String Functions-Footnote-3531764
-Node: Gory Details531851
-Ref: table-sub-escapes533632
-Ref: table-sub-proposed535147
-Ref: table-posix-sub536509
-Ref: table-gensub-escapes538046
-Ref: Gory Details-Footnote-1538879
-Node: I/O Functions539030
-Ref: I/O Functions-Footnote-1546266
-Node: Time Functions546413
-Ref: Time Functions-Footnote-1556922
-Ref: Time Functions-Footnote-2556990
-Ref: Time Functions-Footnote-3557148
-Ref: Time Functions-Footnote-4557259
-Ref: Time Functions-Footnote-5557371
-Ref: Time Functions-Footnote-6557598
-Node: Bitwise Functions557864
-Ref: table-bitwise-ops558426
-Ref: Bitwise Functions-Footnote-1562754
-Node: Type Functions562926
-Node: I18N Functions564078
-Node: User-defined565725
-Node: Definition Syntax566530
-Ref: Definition Syntax-Footnote-1572189
-Node: Function Example572260
-Ref: Function Example-Footnote-1575181
-Node: Function Caveats575203
-Node: Calling A Function575721
-Node: Variable Scope576679
-Node: Pass By Value/Reference579672
-Node: Return Statement583169
-Node: Dynamic Typing586148
-Node: Indirect Calls587077
-Ref: Indirect Calls-Footnote-1596942
-Node: Functions Summary597070
-Node: Library Functions599772
-Ref: Library Functions-Footnote-1603380
-Ref: Library Functions-Footnote-2603523
-Node: Library Names603694
-Ref: Library Names-Footnote-1607152
-Ref: Library Names-Footnote-2607375
-Node: General Functions607461
-Node: Strtonum Function608564
-Node: Assert Function611586
-Node: Round Function614910
-Node: Cliff Random Function616451
-Node: Ordinal Functions617467
-Ref: Ordinal Functions-Footnote-1620530
-Ref: Ordinal Functions-Footnote-2620782
-Node: Join Function620993
-Ref: Join Function-Footnote-1622763
-Node: Getlocaltime Function622963
-Node: Readfile Function626707
-Node: Shell Quoting628679
-Node: Data File Management630080
-Node: Filetrans Function630712
-Node: Rewind Function634808
-Node: File Checking636194
-Ref: File Checking-Footnote-1637527
-Node: Empty Files637728
-Node: Ignoring Assigns639707
-Node: Getopt Function641257
-Ref: Getopt Function-Footnote-1652721
-Node: Passwd Functions652921
-Ref: Passwd Functions-Footnote-1661761
-Node: Group Functions661849
-Ref: Group Functions-Footnote-1669746
-Node: Walking Arrays669951
-Node: Library Functions Summary672957
-Node: Library Exercises674359
-Node: Sample Programs675639
-Node: Running Examples676409
-Node: Clones677137
-Node: Cut Program678361
-Node: Egrep Program688081
-Ref: Egrep Program-Footnote-1695584
-Node: Id Program695694
-Node: Split Program699370
-Ref: Split Program-Footnote-1702824
-Node: Tee Program702952
-Node: Uniq Program705741
-Node: Wc Program713160
-Ref: Wc Program-Footnote-1717410
-Node: Miscellaneous Programs717504
-Node: Dupword Program718717
-Node: Alarm Program720748
-Node: Translate Program725553
-Ref: Translate Program-Footnote-1730116
-Node: Labels Program730386
-Ref: Labels Program-Footnote-1733737
-Node: Word Sorting733821
-Node: History Sorting737891
-Node: Extract Program739726
-Node: Simple Sed747250
-Node: Igawk Program750320
-Ref: Igawk Program-Footnote-1764646
-Ref: Igawk Program-Footnote-2764847
-Ref: Igawk Program-Footnote-3764969
-Node: Anagram Program765084
-Node: Signature Program768145
-Node: Programs Summary769392
-Node: Programs Exercises770613
-Ref: Programs Exercises-Footnote-1774744
-Node: Advanced Features774835
-Node: Nondecimal Data776817
-Node: Array Sorting778407
-Node: Controlling Array Traversal779107
-Ref: Controlling Array Traversal-Footnote-1787473
-Node: Array Sorting Functions787591
-Ref: Array Sorting Functions-Footnote-1791477
-Node: Two-way I/O791673
-Ref: Two-way I/O-Footnote-1796618
-Ref: Two-way I/O-Footnote-2796804
-Node: TCP/IP Networking796886
-Node: Profiling799758
-Node: Advanced Features Summary807299
-Node: Internationalization809232
-Node: I18N and L10N810712
-Node: Explaining gettext811398
-Ref: Explaining gettext-Footnote-1816423
-Ref: Explaining gettext-Footnote-2816607
-Node: Programmer i18n816772
-Ref: Programmer i18n-Footnote-1821648
-Node: Translator i18n821697
-Node: String Extraction822491
-Ref: String Extraction-Footnote-1823622
-Node: Printf Ordering823708
-Ref: Printf Ordering-Footnote-1826494
-Node: I18N Portability826558
-Ref: I18N Portability-Footnote-1829014
-Node: I18N Example829077
-Ref: I18N Example-Footnote-1831880
-Node: Gawk I18N831952
-Node: I18N Summary832596
-Node: Debugger833936
-Node: Debugging834958
-Node: Debugging Concepts835399
-Node: Debugging Terms837209
-Node: Awk Debugging839781
-Node: Sample Debugging Session840687
-Node: Debugger Invocation841221
-Node: Finding The Bug842606
-Node: List of Debugger Commands849085
-Node: Breakpoint Control850417
-Node: Debugger Execution Control854094
-Node: Viewing And Changing Data857453
-Node: Execution Stack860829
-Node: Debugger Info862464
-Node: Miscellaneous Debugger Commands866509
-Node: Readline Support871510
-Node: Limitations872404
-Node: Debugging Summary874519
-Node: Arbitrary Precision Arithmetic875693
-Node: Computer Arithmetic877109
-Ref: table-numeric-ranges880708
-Ref: Computer Arithmetic-Footnote-1881232
-Node: Math Definitions881289
-Ref: table-ieee-formats884584
-Ref: Math Definitions-Footnote-1885188
-Node: MPFR features885293
-Node: FP Math Caution886964
-Ref: FP Math Caution-Footnote-1888014
-Node: Inexactness of computations888383
-Node: Inexact representation889342
-Node: Comparing FP Values890700
-Node: Errors accumulate891782
-Node: Getting Accuracy893214
-Node: Try To Round895918
-Node: Setting precision896817
-Ref: table-predefined-precision-strings897501
-Node: Setting the rounding mode899330
-Ref: table-gawk-rounding-modes899694
-Ref: Setting the rounding mode-Footnote-1903146
-Node: Arbitrary Precision Integers903325
-Ref: Arbitrary Precision Integers-Footnote-1906309
-Node: POSIX Floating Point Problems906458
-Ref: POSIX Floating Point Problems-Footnote-1910337
-Node: Floating point summary910375
-Node: Dynamic Extensions912562
-Node: Extension Intro914114
-Node: Plugin License915379
-Node: Extension Mechanism Outline916176
-Ref: figure-load-extension916604
-Ref: figure-register-new-function918084
-Ref: figure-call-new-function919088
-Node: Extension API Description921075
-Node: Extension API Functions Introduction922525
-Node: General Data Types927346
-Ref: General Data Types-Footnote-1933246
-Node: Memory Allocation Functions933545
-Ref: Memory Allocation Functions-Footnote-1936384
-Node: Constructor Functions936483
-Node: Registration Functions938222
-Node: Extension Functions938907
-Node: Exit Callback Functions941204
-Node: Extension Version String942452
-Node: Input Parsers943115
-Node: Output Wrappers952990
-Node: Two-way processors957503
-Node: Printing Messages959766
-Ref: Printing Messages-Footnote-1960842
-Node: Updating `ERRNO'960994
-Node: Requesting Values961734
-Ref: table-value-types-returned962461
-Node: Accessing Parameters963418
-Node: Symbol Table Access964652
-Node: Symbol table by name965166
-Node: Symbol table by cookie967186
-Ref: Symbol table by cookie-Footnote-1971331
-Node: Cached values971394
-Ref: Cached values-Footnote-1974890
-Node: Array Manipulation974981
-Ref: Array Manipulation-Footnote-1976079
-Node: Array Data Types976116
-Ref: Array Data Types-Footnote-1978771
-Node: Array Functions978863
-Node: Flattening Arrays982722
-Node: Creating Arrays989624
-Node: Extension API Variables994395
-Node: Extension Versioning995031
-Node: Extension API Informational Variables996922
-Node: Extension API Boilerplate997987
-Node: Finding Extensions1001796
-Node: Extension Example1002356
-Node: Internal File Description1003128
-Node: Internal File Ops1007195
-Ref: Internal File Ops-Footnote-11018946
-Node: Using Internal File Ops1019086
-Ref: Using Internal File Ops-Footnote-11021469
-Node: Extension Samples1021742
-Node: Extension Sample File Functions1023270
-Node: Extension Sample Fnmatch1030951
-Node: Extension Sample Fork1032439
-Node: Extension Sample Inplace1033654
-Node: Extension Sample Ord1035330
-Node: Extension Sample Readdir1036166
-Ref: table-readdir-file-types1037043
-Node: Extension Sample Revout1037854
-Node: Extension Sample Rev2way1038443
-Node: Extension Sample Read write array1039183
-Node: Extension Sample Readfile1041123
-Node: Extension Sample Time1042218
-Node: Extension Sample API Tests1043566
-Node: gawkextlib1044057
-Node: Extension summary1046735
-Node: Extension Exercises1050424
-Node: Language History1051146
-Node: V7/SVR3.11052802
-Node: SVR41054955
-Node: POSIX1056389
-Node: BTL1057770
-Node: POSIX/GNU1058501
-Node: Feature History1064022
-Node: Common Extensions1077120
-Node: Ranges and Locales1078492
-Ref: Ranges and Locales-Footnote-11083111
-Ref: Ranges and Locales-Footnote-21083138
-Ref: Ranges and Locales-Footnote-31083373
-Node: Contributors1083594
-Node: History summary1089134
-Node: Installation1090513
-Node: Gawk Distribution1091459
-Node: Getting1091943
-Node: Extracting1092766
-Node: Distribution contents1094403
-Node: Unix Installation1100157
-Node: Quick Installation1100774
-Node: Additional Configuration Options1103198
-Node: Configuration Philosophy1105001
-Node: Non-Unix Installation1107370
-Node: PC Installation1107828
-Node: PC Binary Installation1109148
-Node: PC Compiling1110996
-Ref: PC Compiling-Footnote-11114017
-Node: PC Testing1114126
-Node: PC Using1115302
-Node: Cygwin1119417
-Node: MSYS1120187
-Node: VMS Installation1120688
-Node: VMS Compilation1121480
-Ref: VMS Compilation-Footnote-11122709
-Node: VMS Dynamic Extensions1122767
-Node: VMS Installation Details1124451
-Node: VMS Running1126702
-Node: VMS GNV1129542
-Node: VMS Old Gawk1130277
-Node: Bugs1130747
-Node: Other Versions1134636
-Node: Installation summary1141070
-Node: Notes1142129
-Node: Compatibility Mode1142994
-Node: Additions1143776
-Node: Accessing The Source1144701
-Node: Adding Code1146136
-Node: New Ports1152293
-Node: Derived Files1156775
-Ref: Derived Files-Footnote-11162250
-Ref: Derived Files-Footnote-21162284
-Ref: Derived Files-Footnote-31162880
-Node: Future Extensions1162994
-Node: Implementation Limitations1163600
-Node: Extension Design1164848
-Node: Old Extension Problems1166002
-Ref: Old Extension Problems-Footnote-11167519
-Node: Extension New Mechanism Goals1167576
-Ref: Extension New Mechanism Goals-Footnote-11170936
-Node: Extension Other Design Decisions1171125
-Node: Extension Future Growth1173233
-Node: Old Extension Mechanism1174069
-Node: Notes summary1175831
-Node: Basic Concepts1177017
-Node: Basic High Level1177698
-Ref: figure-general-flow1177970
-Ref: figure-process-flow1178569
-Ref: Basic High Level-Footnote-11181798
-Node: Basic Data Typing1181983
-Node: Glossary1185311
-Node: Copying1217240
-Node: GNU Free Documentation License1254796
-Node: Index1279932
+Ref: Names-Footnote-154929
+Node: This Manual55075
+Ref: This Manual-Footnote-161575
+Node: Conventions61675
+Node: Manual History64012
+Ref: Manual History-Footnote-167005
+Ref: Manual History-Footnote-267046
+Node: How To Contribute67120
+Node: Acknowledgments68249
+Node: Getting Started73115
+Node: Running gawk75554
+Node: One-shot76744
+Node: Read Terminal78008
+Node: Long80039
+Node: Executable Scripts81552
+Ref: Executable Scripts-Footnote-184341
+Node: Comments84444
+Node: Quoting86926
+Node: DOS Quoting92444
+Node: Sample Data Files93119
+Node: Very Simple95714
+Node: Two Rules100613
+Node: More Complex102499
+Node: Statements/Lines105361
+Ref: Statements/Lines-Footnote-1109816
+Node: Other Features110081
+Node: When111017
+Ref: When-Footnote-1112771
+Node: Intro Summary112836
+Node: Invoking Gawk113720
+Node: Command Line115234
+Node: Options116032
+Ref: Options-Footnote-1131954
+Ref: Options-Footnote-2132183
+Node: Other Arguments132208
+Node: Naming Standard Input135156
+Node: Environment Variables136249
+Node: AWKPATH Variable136807
+Ref: AWKPATH Variable-Footnote-1140104
+Ref: AWKPATH Variable-Footnote-2140149
+Node: AWKLIBPATH Variable140409
+Node: Other Environment Variables141552
+Node: Exit Status145310
+Node: Include Files145986
+Node: Loading Shared Libraries149575
+Node: Obsolete151002
+Node: Undocumented151694
+Node: Invoking Summary151961
+Node: Regexp153624
+Node: Regexp Usage155078
+Node: Escape Sequences157115
+Node: Regexp Operators163125
+Ref: Regexp Operators-Footnote-1170535
+Ref: Regexp Operators-Footnote-2170682
+Node: Bracket Expressions170780
+Ref: table-char-classes172795
+Node: Leftmost Longest175737
+Node: Computed Regexps177039
+Node: GNU Regexp Operators180468
+Node: Case-sensitivity184140
+Ref: Case-sensitivity-Footnote-1187025
+Ref: Case-sensitivity-Footnote-2187260
+Node: Regexp Summary187368
+Node: Reading Files188835
+Node: Records190928
+Node: awk split records191661
+Node: gawk split records196590
+Ref: gawk split records-Footnote-1201129
+Node: Fields201166
+Ref: Fields-Footnote-1203944
+Node: Nonconstant Fields204030
+Ref: Nonconstant Fields-Footnote-1206268
+Node: Changing Fields206471
+Node: Field Separators212402
+Node: Default Field Splitting215106
+Node: Regexp Field Splitting216223
+Node: Single Character Fields219573
+Node: Command Line Field Separator220632
+Node: Full Line Fields223849
+Ref: Full Line Fields-Footnote-1225370
+Ref: Full Line Fields-Footnote-2225416
+Node: Field Splitting Summary225517
+Node: Constant Size227591
+Node: Splitting By Content232174
+Ref: Splitting By Content-Footnote-1236139
+Node: Multiple Line236302
+Ref: Multiple Line-Footnote-1242183
+Node: Getline242362
+Node: Plain Getline244569
+Node: Getline/Variable247209
+Node: Getline/File248358
+Node: Getline/Variable/File249743
+Ref: Getline/Variable/File-Footnote-1251346
+Node: Getline/Pipe251433
+Node: Getline/Variable/Pipe254111
+Node: Getline/Coprocess255242
+Node: Getline/Variable/Coprocess256506
+Node: Getline Notes257245
+Node: Getline Summary260039
+Ref: table-getline-variants260451
+Node: Read Timeout261280
+Ref: Read Timeout-Footnote-1265117
+Node: Command-line directories265175
+Node: Input Summary266080
+Node: Input Exercises269465
+Node: Printing270193
+Node: Print271970
+Node: Print Examples273427
+Node: Output Separators276206
+Node: OFMT278224
+Node: Printf279579
+Node: Basic Printf280364
+Node: Control Letters281936
+Node: Format Modifiers285921
+Node: Printf Examples291927
+Node: Redirection294413
+Node: Special FD301251
+Ref: Special FD-Footnote-1304417
+Node: Special Files304491
+Node: Other Inherited Files305108
+Node: Special Network306108
+Node: Special Caveats306970
+Node: Close Files And Pipes307919
+Ref: Close Files And Pipes-Footnote-1315110
+Ref: Close Files And Pipes-Footnote-2315258
+Node: Output Summary315408
+Node: Output Exercises316406
+Node: Expressions317086
+Node: Values318275
+Node: Constants318952
+Node: Scalar Constants319643
+Ref: Scalar Constants-Footnote-1320505
+Node: Nondecimal-numbers320755
+Node: Regexp Constants323765
+Node: Using Constant Regexps324291
+Node: Variables327454
+Node: Using Variables328111
+Node: Assignment Options330022
+Node: Conversion331897
+Node: Strings And Numbers332421
+Ref: Strings And Numbers-Footnote-1335486
+Node: Locale influences conversions335595
+Ref: table-locale-affects338341
+Node: All Operators338933
+Node: Arithmetic Ops339562
+Node: Concatenation342067
+Ref: Concatenation-Footnote-1344886
+Node: Assignment Ops344993
+Ref: table-assign-ops349972
+Node: Increment Ops351282
+Node: Truth Values and Conditions354713
+Node: Truth Values355796
+Node: Typing and Comparison356845
+Node: Variable Typing357661
+Node: Comparison Operators361328
+Ref: table-relational-ops361738
+Node: POSIX String Comparison365233
+Ref: POSIX String Comparison-Footnote-1366305
+Node: Boolean Ops366444
+Ref: Boolean Ops-Footnote-1370922
+Node: Conditional Exp371013
+Node: Function Calls372751
+Node: Precedence376631
+Node: Locales380291
+Node: Expressions Summary381923
+Node: Patterns and Actions384494
+Node: Pattern Overview385614
+Node: Regexp Patterns387293
+Node: Expression Patterns387836
+Node: Ranges391616
+Node: BEGIN/END394723
+Node: Using BEGIN/END395484
+Ref: Using BEGIN/END-Footnote-1398220
+Node: I/O And BEGIN/END398326
+Node: Empty403538
+Node: Using Shell Variables403855
+Node: Action Overview406128
+Node: Statements408454
+Node: If Statement410302
+Node: While Statement411797
+Node: Do Statement413825
+Node: For Statement414973
+Node: Switch Statement418131
+Node: Break Statement420513
+Node: Continue Statement422606
+Node: Next Statement424433
+Node: Nextfile Statement426814
+Node: Exit Statement429442
+Node: Built-in Variables431853
+Node: User-modified432986
+Ref: User-modified-Footnote-1440620
+Node: Auto-set440682
+Ref: Auto-set-Footnote-1453734
+Ref: Auto-set-Footnote-2453939
+Node: ARGC and ARGV453995
+Node: Pattern Action Summary458213
+Node: Arrays460646
+Node: Array Basics461975
+Node: Array Intro462819
+Ref: figure-array-elements464753
+Ref: Array Intro-Footnote-1467373
+Node: Reference to Elements467501
+Node: Assigning Elements469963
+Node: Array Example470454
+Node: Scanning an Array472213
+Node: Controlling Scanning475233
+Ref: Controlling Scanning-Footnote-1480627
+Node: Numeric Array Subscripts480943
+Node: Uninitialized Subscripts483128
+Node: Delete484745
+Ref: Delete-Footnote-1487494
+Node: Multidimensional487551
+Node: Multiscanning490648
+Node: Arrays of Arrays492237
+Node: Arrays Summary496991
+Node: Functions499082
+Node: Built-in500121
+Node: Calling Built-in501199
+Node: Numeric Functions503194
+Ref: Numeric Functions-Footnote-1507210
+Ref: Numeric Functions-Footnote-2507567
+Ref: Numeric Functions-Footnote-3507615
+Node: String Functions507887
+Ref: String Functions-Footnote-1531388
+Ref: String Functions-Footnote-2531517
+Ref: String Functions-Footnote-3531765
+Node: Gory Details531852
+Ref: table-sub-escapes533633
+Ref: table-sub-proposed535148
+Ref: table-posix-sub536510
+Ref: table-gensub-escapes538047
+Ref: Gory Details-Footnote-1538880
+Node: I/O Functions539031
+Ref: I/O Functions-Footnote-1546267
+Node: Time Functions546414
+Ref: Time Functions-Footnote-1556923
+Ref: Time Functions-Footnote-2556991
+Ref: Time Functions-Footnote-3557149
+Ref: Time Functions-Footnote-4557260
+Ref: Time Functions-Footnote-5557372
+Ref: Time Functions-Footnote-6557599
+Node: Bitwise Functions557865
+Ref: table-bitwise-ops558427
+Ref: Bitwise Functions-Footnote-1562755
+Node: Type Functions562927
+Node: I18N Functions564079
+Node: User-defined565726
+Node: Definition Syntax566531
+Ref: Definition Syntax-Footnote-1572190
+Node: Function Example572261
+Ref: Function Example-Footnote-1575182
+Node: Function Caveats575204
+Node: Calling A Function575722
+Node: Variable Scope576680
+Node: Pass By Value/Reference579673
+Node: Return Statement583170
+Node: Dynamic Typing586149
+Node: Indirect Calls587078
+Ref: Indirect Calls-Footnote-1596943
+Node: Functions Summary597071
+Node: Library Functions599773
+Ref: Library Functions-Footnote-1603381
+Ref: Library Functions-Footnote-2603524
+Node: Library Names603695
+Ref: Library Names-Footnote-1607153
+Ref: Library Names-Footnote-2607376
+Node: General Functions607462
+Node: Strtonum Function608565
+Node: Assert Function611587
+Node: Round Function614911
+Node: Cliff Random Function616452
+Node: Ordinal Functions617468
+Ref: Ordinal Functions-Footnote-1620531
+Ref: Ordinal Functions-Footnote-2620783
+Node: Join Function620994
+Ref: Join Function-Footnote-1622764
+Node: Getlocaltime Function622964
+Node: Readfile Function626708
+Node: Shell Quoting628680
+Node: Data File Management630081
+Node: Filetrans Function630713
+Node: Rewind Function634809
+Node: File Checking636195
+Ref: File Checking-Footnote-1637528
+Node: Empty Files637729
+Node: Ignoring Assigns639708
+Node: Getopt Function641258
+Ref: Getopt Function-Footnote-1652722
+Node: Passwd Functions652922
+Ref: Passwd Functions-Footnote-1661762
+Node: Group Functions661850
+Ref: Group Functions-Footnote-1669747
+Node: Walking Arrays669952
+Node: Library Functions Summary672958
+Node: Library Exercises674360
+Node: Sample Programs675640
+Node: Running Examples676410
+Node: Clones677138
+Node: Cut Program678362
+Node: Egrep Program688082
+Ref: Egrep Program-Footnote-1695585
+Node: Id Program695695
+Node: Split Program699371
+Ref: Split Program-Footnote-1702825
+Node: Tee Program702953
+Node: Uniq Program705742
+Node: Wc Program713161
+Ref: Wc Program-Footnote-1717411
+Node: Miscellaneous Programs717505
+Node: Dupword Program718718
+Node: Alarm Program720749
+Node: Translate Program725554
+Ref: Translate Program-Footnote-1730117
+Node: Labels Program730387
+Ref: Labels Program-Footnote-1733738
+Node: Word Sorting733822
+Node: History Sorting737892
+Node: Extract Program739727
+Node: Simple Sed747251
+Node: Igawk Program750321
+Ref: Igawk Program-Footnote-1764647
+Ref: Igawk Program-Footnote-2764848
+Ref: Igawk Program-Footnote-3764970
+Node: Anagram Program765085
+Node: Signature Program768146
+Node: Programs Summary769393
+Node: Programs Exercises770614
+Ref: Programs Exercises-Footnote-1774745
+Node: Advanced Features774836
+Node: Nondecimal Data776818
+Node: Array Sorting778408
+Node: Controlling Array Traversal779108
+Ref: Controlling Array Traversal-Footnote-1787474
+Node: Array Sorting Functions787592
+Ref: Array Sorting Functions-Footnote-1791478
+Node: Two-way I/O791674
+Ref: Two-way I/O-Footnote-1796619
+Ref: Two-way I/O-Footnote-2796805
+Node: TCP/IP Networking796887
+Node: Profiling799759
+Node: Advanced Features Summary807300
+Node: Internationalization809233
+Node: I18N and L10N810713
+Node: Explaining gettext811399
+Ref: Explaining gettext-Footnote-1816424
+Ref: Explaining gettext-Footnote-2816608
+Node: Programmer i18n816773
+Ref: Programmer i18n-Footnote-1821649
+Node: Translator i18n821698
+Node: String Extraction822492
+Ref: String Extraction-Footnote-1823623
+Node: Printf Ordering823709
+Ref: Printf Ordering-Footnote-1826495
+Node: I18N Portability826559
+Ref: I18N Portability-Footnote-1829015
+Node: I18N Example829078
+Ref: I18N Example-Footnote-1831881
+Node: Gawk I18N831953
+Node: I18N Summary832597
+Node: Debugger833937
+Node: Debugging834959
+Node: Debugging Concepts835400
+Node: Debugging Terms837210
+Node: Awk Debugging839782
+Node: Sample Debugging Session840688
+Node: Debugger Invocation841222
+Node: Finding The Bug842607
+Node: List of Debugger Commands849086
+Node: Breakpoint Control850418
+Node: Debugger Execution Control854095
+Node: Viewing And Changing Data857454
+Node: Execution Stack860830
+Node: Debugger Info862465
+Node: Miscellaneous Debugger Commands866510
+Node: Readline Support871511
+Node: Limitations872405
+Node: Debugging Summary874520
+Node: Arbitrary Precision Arithmetic875694
+Node: Computer Arithmetic877110
+Ref: table-numeric-ranges880709
+Ref: Computer Arithmetic-Footnote-1881233
+Node: Math Definitions881290
+Ref: table-ieee-formats884585
+Ref: Math Definitions-Footnote-1885189
+Node: MPFR features885294
+Node: FP Math Caution886965
+Ref: FP Math Caution-Footnote-1888015
+Node: Inexactness of computations888384
+Node: Inexact representation889343
+Node: Comparing FP Values890701
+Node: Errors accumulate891783
+Node: Getting Accuracy893215
+Node: Try To Round895919
+Node: Setting precision896818
+Ref: table-predefined-precision-strings897502
+Node: Setting the rounding mode899331
+Ref: table-gawk-rounding-modes899695
+Ref: Setting the rounding mode-Footnote-1903147
+Node: Arbitrary Precision Integers903326
+Ref: Arbitrary Precision Integers-Footnote-1906310
+Node: POSIX Floating Point Problems906459
+Ref: POSIX Floating Point Problems-Footnote-1910338
+Node: Floating point summary910376
+Node: Dynamic Extensions912563
+Node: Extension Intro914115
+Node: Plugin License915380
+Node: Extension Mechanism Outline916177
+Ref: figure-load-extension916605
+Ref: figure-register-new-function918085
+Ref: figure-call-new-function919089
+Node: Extension API Description921076
+Node: Extension API Functions Introduction922526
+Node: General Data Types927347
+Ref: General Data Types-Footnote-1933247
+Node: Memory Allocation Functions933546
+Ref: Memory Allocation Functions-Footnote-1936385
+Node: Constructor Functions936484
+Node: Registration Functions938223
+Node: Extension Functions938908
+Node: Exit Callback Functions941205
+Node: Extension Version String942453
+Node: Input Parsers943116
+Node: Output Wrappers952991
+Node: Two-way processors957504
+Node: Printing Messages959767
+Ref: Printing Messages-Footnote-1960843
+Node: Updating `ERRNO'960995
+Node: Requesting Values961735
+Ref: table-value-types-returned962462
+Node: Accessing Parameters963419
+Node: Symbol Table Access964653
+Node: Symbol table by name965167
+Node: Symbol table by cookie967187
+Ref: Symbol table by cookie-Footnote-1971332
+Node: Cached values971395
+Ref: Cached values-Footnote-1974891
+Node: Array Manipulation974982
+Ref: Array Manipulation-Footnote-1976080
+Node: Array Data Types976117
+Ref: Array Data Types-Footnote-1978772
+Node: Array Functions978864
+Node: Flattening Arrays982723
+Node: Creating Arrays989625
+Node: Extension API Variables994396
+Node: Extension Versioning995032
+Node: Extension API Informational Variables996923
+Node: Extension API Boilerplate997988
+Node: Finding Extensions1001797
+Node: Extension Example1002357
+Node: Internal File Description1003129
+Node: Internal File Ops1007196
+Ref: Internal File Ops-Footnote-11018947
+Node: Using Internal File Ops1019087
+Ref: Using Internal File Ops-Footnote-11021470
+Node: Extension Samples1021743
+Node: Extension Sample File Functions1023271
+Node: Extension Sample Fnmatch1030952
+Node: Extension Sample Fork1032440
+Node: Extension Sample Inplace1033655
+Node: Extension Sample Ord1035331
+Node: Extension Sample Readdir1036167
+Ref: table-readdir-file-types1037044
+Node: Extension Sample Revout1037855
+Node: Extension Sample Rev2way1038444
+Node: Extension Sample Read write array1039184
+Node: Extension Sample Readfile1041124
+Node: Extension Sample Time1042219
+Node: Extension Sample API Tests1043567
+Node: gawkextlib1044058
+Node: Extension summary1046736
+Node: Extension Exercises1050425
+Node: Language History1051147
+Node: V7/SVR3.11052803
+Node: SVR41054956
+Node: POSIX1056390
+Node: BTL1057771
+Node: POSIX/GNU1058502
+Node: Feature History1064023
+Node: Common Extensions1077121
+Node: Ranges and Locales1078493
+Ref: Ranges and Locales-Footnote-11083112
+Ref: Ranges and Locales-Footnote-21083139
+Ref: Ranges and Locales-Footnote-31083374
+Node: Contributors1083595
+Node: History summary1089135
+Node: Installation1090514
+Node: Gawk Distribution1091460
+Node: Getting1091944
+Node: Extracting1092767
+Node: Distribution contents1094404
+Node: Unix Installation1100158
+Node: Quick Installation1100775
+Node: Additional Configuration Options1103199
+Node: Configuration Philosophy1105002
+Node: Non-Unix Installation1107371
+Node: PC Installation1107829
+Node: PC Binary Installation1109149
+Node: PC Compiling1110997
+Ref: PC Compiling-Footnote-11114018
+Node: PC Testing1114127
+Node: PC Using1115303
+Node: Cygwin1119418
+Node: MSYS1120188
+Node: VMS Installation1120689
+Node: VMS Compilation1121481
+Ref: VMS Compilation-Footnote-11122710
+Node: VMS Dynamic Extensions1122768
+Node: VMS Installation Details1124452
+Node: VMS Running1126703
+Node: VMS GNV1129543
+Node: VMS Old Gawk1130278
+Node: Bugs1130748
+Node: Other Versions1134637
+Node: Installation summary1141071
+Node: Notes1142130
+Node: Compatibility Mode1142995
+Node: Additions1143777
+Node: Accessing The Source1144702
+Node: Adding Code1146137
+Node: New Ports1152294
+Node: Derived Files1156776
+Ref: Derived Files-Footnote-11162251
+Ref: Derived Files-Footnote-21162285
+Ref: Derived Files-Footnote-31162881
+Node: Future Extensions1162995
+Node: Implementation Limitations1163601
+Node: Extension Design1164849
+Node: Old Extension Problems1166003
+Ref: Old Extension Problems-Footnote-11167520
+Node: Extension New Mechanism Goals1167577
+Ref: Extension New Mechanism Goals-Footnote-11170937
+Node: Extension Other Design Decisions1171126
+Node: Extension Future Growth1173234
+Node: Old Extension Mechanism1174070
+Node: Notes summary1175832
+Node: Basic Concepts1177018
+Node: Basic High Level1177699
+Ref: figure-general-flow1177971
+Ref: figure-process-flow1178570
+Ref: Basic High Level-Footnote-11181799
+Node: Basic Data Typing1181984
+Node: Glossary1185312
+Node: Copying1217241
+Node: GNU Free Documentation License1254797
+Node: Index1279933
 End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index e951db1..e5b39dd 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -1519,7 +1519,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 @address@hidden
 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/ b/doc/
index 3319bf3..723de56 100644
--- a/doc/
+++ b/doc/
@@ -1486,7 +1486,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 @address@hidden
 Solaris systems still use an old @command{awk} for the
 default @command{awk} utility. A more modern @command{awk} lives in

commit 54445bc1d185792d6731849310a9d3c7f5c56eb5
Author: Arnold D. Robbins <address@hidden>
Date:   Tue Feb 24 21:49:17 2015 +0200

    Update copyright in POSIX.STD.

diff --git a/ChangeLog b/ChangeLog
index 18e7e90..ac0e13b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2015-02-24         Arnold D. Robbins     <address@hidden>
+       * POSIX.STD: Update copyright year.
 2015-02-13         Arnold D. Robbins     <address@hidden>
        * awkgram.y (yylex): Be more careful about passing true to
diff --git a/POSIX.STD b/POSIX.STD
index c48dfb4..a236894 100644
@@ -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,

commit 14b63db90cddd8b437bdf4e7a4547a4c0e75768f
Author: Arnold D. Robbins <address@hidden>
Date:   Tue Feb 24 21:48:01 2015 +0200

    Update texinfo.tex.

diff --git a/doc/ChangeLog b/doc/ChangeLog
index 9e1da9a..83f724c 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,7 @@
+2015-02-24         Arnold D. Robbins     <address@hidden>
+       * texinfo.tex: Update to most current version.
 2015-02-22         Arnold D. Robbins     <address@hidden>
        * Change 'div' to 'divisor' in some examples.
diff --git a/doc/texinfo.tex b/doc/texinfo.tex
index 370d450..8236d7d 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
 % 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.
-  %
   % \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\mathopsup
@@ -4578,6 +4579,8 @@ end
+  \definedummyword\sub
+  \definedummyword\sup
   % We want to disable all macros so that they are not expanded by \write.
@@ -4652,6 +4655,7 @@ end
+  \definedummyword\U
@@ -8334,14 +8338,7 @@ end
   % 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.
@@ -8952,6 +8949,7 @@ directory should work if nowhere else does.}
       \advance\count255 by 1
 % @documentencoding sets the definition of non-ASCII characters
@@ -8986,10 +8984,12 @@ directory should work if nowhere else does.}
   \else \ifx \declaredencoding \utfeight
-     \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.
-    \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.
@@ -9037,12 +9038,10 @@ directory should work if nowhere else does.}
-  %
-  \gdef^^b7{$^.$}
+  \gdef^^b7{\ifmmode\cdot\else $\cdot$\fi}
   \gdef^^b8{\cedilla\ }
-  %
@@ -9331,6 +9330,11 @@ directory should work if nowhere else does.}
+      % 
+      \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
@@ -9370,23 +9374,49 @@ directory should work if nowhere else does.}
+% U+0000..U+007F =
+% U+0080..U+00FF =
+% U+0100..U+017F =
+% U+0180..U+024F =
+% 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.
+  \DeclareUnicodeCharacter{00A7}{\S}
   \DeclareUnicodeCharacter{00A8}{\"{ }}
+  \DeclareUnicodeCharacter{00AC}{\ifmmode\lnot\else $\lnot$\fi}
   \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{00BC}{$1\over4$}
+  \DeclareUnicodeCharacter{00BD}{$1\over2$}
+  \DeclareUnicodeCharacter{00BE}{$3\over4$}
@@ -9413,6 +9443,7 @@ directory should work if nowhere else does.}
+  \DeclareUnicodeCharacter{00D7}{\ifmmode\times\else $\times$\fi}
@@ -9446,6 +9477,7 @@ directory should work if nowhere else does.}
+  \DeclareUnicodeCharacter{00F7}{\ifmmode\div\else $\div$\fi}
@@ -9465,20 +9497,23 @@ directory should work if nowhere else does.}
-  \DeclareUnicodeCharacter{0118}{\ogonek{E}}
-  \DeclareUnicodeCharacter{0119}{\ogonek{e}}
+  \DeclareUnicodeCharacter{010F}{d'}
+  \DeclareUnicodeCharacter{0110}{\DH}
+  \DeclareUnicodeCharacter{0111}{\dh}
+  \DeclareUnicodeCharacter{0118}{\ogonek{E}}
+  \DeclareUnicodeCharacter{0119}{\ogonek{e}}
@@ -9488,14 +9523,20 @@ directory should work if nowhere else does.}
+  \DeclareUnicodeCharacter{0122}{\cedilla{G}}
+  \DeclareUnicodeCharacter{0123}{\cedilla{g}}
+  \DeclareUnicodeCharacter{0126}{\missingcharmsg{H WITH STROKE}}
+  \DeclareUnicodeCharacter{0127}{\missingcharmsg{h WITH STROKE}}
+  \DeclareUnicodeCharacter{012E}{\ogonek{I}}
+  \DeclareUnicodeCharacter{012F}{\ogonek{i}}
@@ -9503,15 +9544,29 @@ directory should work if nowhere else does.}
+  \DeclareUnicodeCharacter{0136}{\cedilla{K}}
+  \DeclareUnicodeCharacter{0137}{\cedilla{k}}
+  \DeclareUnicodeCharacter{0138}{\ifmmode\kappa\else $\kappa$\fi}  
+  \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{0145}{\cedilla{N}}
+  \DeclareUnicodeCharacter{0146}{\cedilla{n}}
+  \DeclareUnicodeCharacter{0149}{'n}
+  \DeclareUnicodeCharacter{014A}{\missingcharmsg{ENG}}
+  \DeclareUnicodeCharacter{014B}{\missingcharmsg{eng}}
@@ -9523,6 +9578,8 @@ directory should work if nowhere else does.}
+  \DeclareUnicodeCharacter{0156}{\cedilla{R}}
+  \DeclareUnicodeCharacter{0157}{\cedilla{r}}
@@ -9534,10 +9591,12 @@ directory should work if nowhere else does.}
-  \DeclareUnicodeCharacter{0162}{\cedilla{t}}
-  \DeclareUnicodeCharacter{0163}{\cedilla{T}}
+  \DeclareUnicodeCharacter{0162}{\cedilla{T}}
+  \DeclareUnicodeCharacter{0163}{\cedilla{t}}
+  \DeclareUnicodeCharacter{0165}{\v{t}}
+  \DeclareUnicodeCharacter{0166}{\missingcharmsg{H WITH STROKE}}
+  \DeclareUnicodeCharacter{0167}{\missingcharmsg{h WITH STROKE}}
@@ -9549,6 +9608,8 @@ directory should work if nowhere else does.}
+  \DeclareUnicodeCharacter{0172}{\ogonek{U}}
+  \DeclareUnicodeCharacter{0173}{\ogonek{u}}
@@ -9560,6 +9621,7 @@ directory should work if nowhere else does.}
+  \DeclareUnicodeCharacter{017F}{\missingcharmsg{LONG S}}
@@ -9765,12 +9827,51 @@ directory should work if nowhere else does.}
 }% end of \utfeightchardefs
 % US-ASCII character definitions.
 \def\asciichardefs{% nothing need be done
+% Latin1 (ISO-8859-1) character definitions.
+  \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.
 % 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.}
 address@hidden = @active
+   @nonasciistringdefs
    @address@hidden %$ 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)
address@hidden page-delimiter: "^\\\\message"
address@hidden page-delimiter: "^\\\\message\\|emacs-page"
 @c time-stamp-start: "def\\\\texinfoversion{"
 @c time-stamp-format: "%:y-%02m-%02d.%02H"
 @c time-stamp-end: "}"


Summary of changes:
 ChangeLog        |    6 +
 POSIX.STD        |    2 +-
 awkgram.c        |    7 +-
 awkgram.y        |    7 +-
 doc/ChangeLog    |    5 +
 doc/    | 1094 +++++++++++++++++++++++++++---------------------------
 doc/gawk.texi    |    2 +-
 doc/  |    2 +-
 doc/texinfo.tex  |  150 +++++++--
 test/ChangeLog   |    5 +
 test/ |    4 +-
 test/ |    9 +-
 test/Maketests   |    5 +
 test/crlf.awk    |   11 +
 test/crlf.ok     |    3 +
 15 files changed, 734 insertions(+), 578 deletions(-)
 create mode 100644 test/crlf.awk
 create mode 100644 test/crlf.ok


reply via email to

[Prev in Thread] Current Thread [Next in Thread]