gawk-diffs
[Top][All Lists]
Advanced

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

[gawk-diffs] [SCM] gawk branch, select, updated. gawk-4.1.0-1224-ga31a42


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, select, updated. gawk-4.1.0-1224-ga31a424
Date: Fri, 20 Mar 2015 15:23:15 +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, select has been updated
       via  a31a42403b841ef05ca9143a431c8b6f1021a958 (commit)
       via  480aca31c7772dafeb1b97cd7a768bca2f49d3c7 (commit)
       via  925f9363c4b0a5bb9375298afcdcf404efb32587 (commit)
       via  e0c1194c4348e7adf99802461d45e3dd1bd192ff (commit)
       via  cd2ff61aaf4938092517880ad7655828d99a3cb9 (commit)
       via  cffd09247c1681fbf3d5cad5253b3199704f83e7 (commit)
       via  1b047a42077ca58eeeaa93e0561c0b589350702b (commit)
       via  822d727b719ad486bb5eca0f064c69047a424bf5 (commit)
       via  93a817e1d94bf7227391b131b6df2d1f3e5176cc (commit)
       via  36bf73d7bacb7e38598ce194315dce896a2847a3 (commit)
       via  8c76e6abfa7857da0ecb64cc545b5cbea2a0ca68 (commit)
       via  b6c957dae27d5f10393572391c75c51c85a3a68c (commit)
       via  6965b92f1bc3d5aca7a39d31cc6a7e5fd0e0c1a9 (commit)
       via  dae49acd6f32a875fed4781f33a926f8013c69b4 (commit)
       via  f001d6b9b3e53b3148d2cfe39746ccea90b8fdeb (commit)
       via  6237311c0af460dd0ff5cf2ed4f935a33386375c (commit)
       via  b108a3ba2ab12dd7274589c6fe09c882df02827c (commit)
       via  116c2da32b8a0dd2ab36e273d980696a1db1109b (commit)
       via  4e3f36b3b90aad7c5f392cd493ec10dbad567ce8 (commit)
       via  b8ba9836e05eb96daeed9614f045f5b81a826730 (commit)
       via  9b995ad21b921a502c7c94b3c591735e4f713728 (commit)
       via  8954618d1958e26389519e7322e01ca8caafdf66 (commit)
       via  db6a69baecd9b7a98e6de31eec2e20477130d8ef (commit)
       via  9fa41fc2c183d5920d64e6f34f8a6bb325188443 (commit)
       via  f70c3912a36e8d2ca4e63d0e1d7491f580b5c9f2 (commit)
       via  d8fd5725c32a6aa76eb8438adc0c912e6ad2696b (commit)
       via  2d70e84851f48e1e4091583ea98f7437d4e080ed (commit)
       via  73fe58f8ed3ba97f703d3e516d0f502a6aa5b907 (commit)
       via  06ff159e6744b18a3c15d95f9100b050cd169269 (commit)
       via  64854e87c6b07ddc8d7a687decefaf5ae3a5c9fb (commit)
       via  9adb80ce25def725ddd98d63f62e35a27e04c570 (commit)
       via  765d3a443f5121f148d47ec813069e1257212d5e (commit)
       via  1752d5ee472ce827ee66ea38c33085123575a033 (commit)
       via  9322ab27e20be82722b2db73f74447f2b35c6502 (commit)
       via  33c16c16e6d33118075b196e16b33b342ee462d3 (commit)
       via  dde4cb3f47a675095230fa849995b74e4a38b966 (commit)
       via  78dc6b1d4a6215144a76abc3d384c202a7949c5b (commit)
       via  f2e925905fe241c1723a6597a923dc5f3ebe56bf (commit)
       via  663ba79bb871c41250c605709782be2cfaf27640 (commit)
       via  dba3b902a0b7a4761829541c06466fd6d76c468b (commit)
       via  63cb20557ab9a74eee573d102a753ed34fc0ed59 (commit)
       via  efefbfe40342975cc0ddbd69a9b0f2635d905d3c (commit)
       via  764317bf85e5e63651486933b880a4627529d967 (commit)
       via  54445bc1d185792d6731849310a9d3c7f5c56eb5 (commit)
       via  14b63db90cddd8b437bdf4e7a4547a4c0e75768f (commit)
       via  7804a8c64aa29563134259bb7cb7429046fbd5f7 (commit)
       via  8d95c378d502d561a6be416a67b19b247a53f48a (commit)
       via  6b35b85a86de1bc9d2c7e3b0818baefba933205c (commit)
       via  4c4c0d3820bfc6ac3dce47a51e26ee2a9b593466 (commit)
       via  1da41261fba4cd03a32362d44c8634f599ae64db (commit)
       via  c116a3b0b2b2731fe44372b1c3aa6535717b4dc1 (commit)
       via  19e83a019f11d7ad1a199b7c6842f6184b59755b (commit)
       via  1e593610891a14187d0f44bec56520dfa118a95b (commit)
       via  64c5b3da1b7ebe73fcfb4edd9450382ccf1159fb (commit)
       via  ad2954e3ccd8da60e0d0ce707489071f030cbc59 (commit)
       via  cde238397af273f91deeaadf7e87713fbcb8ffbb (commit)
       via  1d4fd43cb95fed18c9885ba5b30b28eb1f8f713b (commit)
       via  b6061d8bf983dd69909a39f1d323934ee3de8166 (commit)
       via  dea37a9bcb88cf1ba65c7ad5c439425352a01f40 (commit)
       via  7620bc316c7e5bfd18f19c8e2fb09637d9eb8dee (commit)
       via  378e213c953d6482ae4d92a69b526cdeaef1f26f (commit)
       via  f2c0bdf60b053c28d6cde7faf1b014e5b7f7deaf (commit)
       via  2f49027b6d6b1f03ae07c5cd9625b072465079bd (commit)
       via  b3dcca92ca8160c07dad32617339fc5d3c636425 (commit)
       via  6782216a8b5464bb82e6c155a511841123a763c7 (commit)
       via  9478ffc5b7ae6988bb109a7be9189ed02f3720e8 (commit)
       via  e59b2439f336e943a5eb7bd6a9926dc18dd974d8 (commit)
       via  be9670d331c9b70a056f17c030faa8b71d58f675 (commit)
       via  f2e05556f6962e41556c4abb0acc900c82acc672 (commit)
       via  ceac2ed9713ea3be2d18c4dd0606f97bbee6953a (commit)
       via  1f6b16d2d233ecc7f99ea2460098d8eeec382942 (commit)
       via  7f9f66525d7d82816eba352efdf58497373a47bf (commit)
       via  0e38201f5879cc91c90876b2b9b219a308e3a2d2 (commit)
       via  34c33ee0f9d3863f9ef381e499e396c9f447a941 (commit)
       via  2f9c84e82632cbce017a6d342acb3dede5e59e12 (commit)
       via  7306300f662a4fd4adc28e60db6aa0201ec1f5b2 (commit)
       via  efbd4b724d239fa3c2d2929dc50e4bb4703489b9 (commit)
       via  cb4dfe29b4d374925d3bb9aed48cadf8070afc92 (commit)
       via  840a7fd39249c6680e74dd72d1ba0c55174a4996 (commit)
       via  71b7aa032ee4b1679b3475edd0c3442cb85f4a3a (commit)
       via  871e6f0348f8e6ee82a9ddcfcf8f88f4c818e4ae (commit)
       via  0acf419f9452f9f8133214742818d379ef779244 (commit)
       via  1e1bfd963b8b3a1381247d6ddb5734f10b0ed837 (commit)
       via  38162ad82080f1dd6f347fe2bc4e83478a7dc9c4 (commit)
       via  73ae20aa7f21d31907f19d9a47fe00b717fc4d7a (commit)
       via  1736b4db53dc60f1e7a9659dc201e0562d43aa02 (commit)
       via  98c6780098e577324c7642362a689c0d7dbe056d (commit)
       via  fa249bd82dfd16f4589ba2595db08ad13ba01ce7 (commit)
       via  1e4b9e300f6bfb84e3187ba2085723d44af9c50f (commit)
       via  6b63c37981ec6e0fc29d83f396acaa473172083f (commit)
       via  6a4160dab42fb7e952b0b91a99eedd4bb6bb1d67 (commit)
       via  4903b6de82f1ac1318b86fe27e71fea17bbaa9fc (commit)
       via  ec0a8d6c8ed3855b440aeb90b92088115212fb78 (commit)
       via  15a1d8d213380bd99b5dfe7f4cafcd6dedb8f0dc (commit)
       via  5909f454e470d5a1de2aea2451e69455bfb398ad (commit)
       via  d6e200568261f51fd007895516da1a06851d4481 (commit)
       via  15fba5cef614e836b6ed35543b8e7ae49f52a450 (commit)
       via  27fa47040717ac1b917a083eaac0c8468b4640f4 (commit)
       via  dcaab6dd8a28be8885ccc508c49b962a61ab09fe (commit)
      from  2473b938036dfdd32ff47833ea032a80a6fa5659 (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 -----------------------------------------------------------------
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=a31a42403b841ef05ca9143a431c8b6f1021a958

commit a31a42403b841ef05ca9143a431c8b6f1021a958
Merge: 2473b93 480aca3
Author: Arnold D. Robbins <address@hidden>
Date:   Fri Mar 20 17:19:15 2015 +0200

    Merge branch 'master' into select

diff --cc awk.h
index 0bf1d98,7a44c1d..101e586
--- a/awk.h
+++ b/awk.h
@@@ -1482,8 -1482,7 +1482,8 @@@ extern void register_two_way_processor(
  extern void set_FNR(void);
  extern void set_NR(void);
  
- extern struct redirect *redirect(NODE *redir_exp, int redirtype, int *errflg);
- extern struct redirect *redirect_string(const char *redir_exp_str, size_t 
redir_exp_len, int not_string_flag, int redirtype, int *errflg, int extfd);
+ extern struct redirect *redirect(NODE *redir_exp, int redirtype, int *errflg, 
bool failure_fatal);
++extern struct redirect *redirect_string(const char *redir_exp_str, size_t 
redir_exp_len, bool not_string_flag, int redirtype, int *errflg, int extfd, 
bool failure_fatal);
  extern NODE *do_close(int nargs);
  extern int flush_io(void);
  extern int close_io(bool *stdio_problem);
diff --cc doc/ChangeLog
index 9b7d31d,92e95a0..56b2d7f
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@@ -40,27 -131,13 +131,32 @@@
  2015-01-19         Arnold D. Robbins     <address@hidden>
  
        * gawkinet.texi: Fix capitalization in document title.
-       * gawktexi.in: Here we again: Starting on more O'Reilly fixes.
+       * gawktexi.in: Here we go again: Starting on more O'Reilly fixes.
+ 
+ 2014-12-27         Arnold D. Robbins     <address@hidden>
+ 
+       * gawktexi.in: Add info that nonfatal I/O works with stdout and
+       stderr.  Revise version info and what was added when.
  
 +2015-01-05         Andrew J. Schorr     <address@hidden>
 +
 +      * gawktexi.in: Improve get_file documentation.
 +
 +2015-01-05         Andrew J. Schorr     <address@hidden>
 +
 +      * gawktexi.in: Replace "Retrying I/O" with "Retrying Input", since this
 +      feature pertains to input, not output.
 +
 +2015-01-04         Andrew J. Schorr     <address@hidden>
 +
 +      * gawktexi.in: Document the get_file API function.
 +
 +2015-01-04         Andrew J. Schorr     <address@hidden>
 +
 +      * gawk.1: Document new features PROCINFO["errno"] and
 +      PROCINFO["input", "RETRY"], and new getline return value of -2.
 +      * gawktexi.in: Ditto.
 +
  2014-12-26         Antonio Giovanni Colombo   <address@hidden>
  
        * gawktexi.in (Glossary): Really sort the items.
diff --cc doc/gawk.info
index 15f5d97,3e12596..95788ec
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@@ -23005,12 -23030,9 +23079,12 @@@ operations
  
          - Clearing an array
  
-         - Flattening an array for easy C style looping over all its
+         - Flattening an array for easy C-style looping over all its
            indices and elements
  
 +   * Accessing and manipulating redirections.
 +
 +
     Some points about using the API:
  
     * The following types, macros, and/or functions are referenced in
@@@ -32771,9 -32777,9 +32894,9 @@@ Inde
  * differences in awk and gawk, strings:  Scalar Constants.    (line  20)
  * differences in awk and gawk, strings, storing: gawk split records.
                                                                (line  77)
 -* differences in awk and gawk, SYMTAB variable: Auto-set.     (line 283)
 +* differences in awk and gawk, SYMTAB variable: Auto-set.     (line 296)
  * differences in awk and gawk, TEXTDOMAIN variable: User-modified.
-                                                               (line 152)
+                                                               (line 151)
  * differences in awk and gawk, trunc-mod operation: Arithmetic Ops.
                                                                (line  66)
  * directories, command-line:             Command-line directories.
@@@ -33261,8 -33267,8 +33384,8 @@@
  * gawk, source code, obtaining:          Getting.             (line   6)
  * gawk, splitting fields and:            Constant Size.       (line  87)
  * gawk, string-translation functions:    I18N Functions.      (line   6)
 -* gawk, SYMTAB array in:                 Auto-set.            (line 283)
 +* gawk, SYMTAB array in:                 Auto-set.            (line 296)
- * gawk, TEXTDOMAIN variable in:          User-modified.       (line 152)
+ * gawk, TEXTDOMAIN variable in:          User-modified.       (line 151)
  * gawk, timestamps:                      Time Functions.      (line   6)
  * gawk, uses for:                        Preface.             (line  34)
  * gawk, versions of, information about, printing: Options.    (line 300)
@@@ -34177,10 -34182,10 +34300,10 @@@
  * right shift:                           Bitwise Functions.   (line  53)
  * right shift, bitwise:                  Bitwise Functions.   (line  32)
  * Ritchie, Dennis:                       Basic Data Typing.   (line  54)
 -* RLENGTH variable:                      Auto-set.            (line 266)
 +* RLENGTH variable:                      Auto-set.            (line 279)
  * RLENGTH variable, match() function and: String Functions.   (line 228)
  * Robbins, Arnold <1>:                   Future Extensions.   (line   6)
- * Robbins, Arnold <2>:                   Bugs.                (line  70)
+ * Robbins, Arnold <2>:                   Bugs.                (line  71)
  * Robbins, Arnold <3>:                   Contributors.        (line 144)
  * Robbins, Arnold <4>:                   General Data Types.  (line   6)
  * Robbins, Arnold <5>:                   Alarm Program.       (line   6)
@@@ -34742,562 -34747,561 +34865,563 @@@
  
  Tag Table:
  Node: Top1204
- Node: Foreword342385
- Node: Foreword446829
- Node: Preface48360
- Ref: Preface-Footnote-151231
- Ref: Preface-Footnote-251338
- Ref: Preface-Footnote-351571
- Node: History51713
- Node: Names54064
- Ref: Names-Footnote-155157
- Node: This Manual55303
- Ref: This Manual-Footnote-161803
- Node: Conventions61903
- Node: Manual History64240
- Ref: Manual History-Footnote-167233
- Ref: Manual History-Footnote-267274
- Node: How To Contribute67348
- Node: Acknowledgments68477
- Node: Getting Started73294
- Node: Running gawk75733
- Node: One-shot76923
- Node: Read Terminal78187
- Node: Long80218
- Node: Executable Scripts81731
- Ref: Executable Scripts-Footnote-184520
- Node: Comments84623
- Node: Quoting87105
- Node: DOS Quoting92623
- Node: Sample Data Files93298
- Node: Very Simple95893
- Node: Two Rules100792
- Node: More Complex102678
- Node: Statements/Lines105540
- Ref: Statements/Lines-Footnote-1109995
- Node: Other Features110260
- Node: When111196
- Ref: When-Footnote-1112950
- Node: Intro Summary113015
- Node: Invoking Gawk113899
- Node: Command Line115413
- Node: Options116211
- Ref: Options-Footnote-1132006
- Ref: Options-Footnote-2132235
- Node: Other Arguments132260
- Node: Naming Standard Input135208
- Node: Environment Variables136301
- Node: AWKPATH Variable136859
- Ref: AWKPATH Variable-Footnote-1140266
- Ref: AWKPATH Variable-Footnote-2140311
- Node: AWKLIBPATH Variable140571
- Node: Other Environment Variables141827
- Node: Exit Status145345
- Node: Include Files146021
- Node: Loading Shared Libraries149610
- Node: Obsolete151037
- Node: Undocumented151729
- Node: Invoking Summary151996
- Node: Regexp153659
- Node: Regexp Usage155113
- Node: Escape Sequences157150
- Node: Regexp Operators163390
- Ref: Regexp Operators-Footnote-1170800
- Ref: Regexp Operators-Footnote-2170947
- Node: Bracket Expressions171045
- Ref: table-char-classes173060
- Node: Leftmost Longest176002
- Node: Computed Regexps177304
- Node: GNU Regexp Operators180733
- Node: Case-sensitivity184405
- Ref: Case-sensitivity-Footnote-1187290
- Ref: Case-sensitivity-Footnote-2187525
- Node: Regexp Summary187633
- Node: Reading Files189100
- Node: Records191262
- Node: awk split records191995
- Node: gawk split records196924
- Ref: gawk split records-Footnote-1201463
- Node: Fields201500
- Ref: Fields-Footnote-1204278
- Node: Nonconstant Fields204364
- Ref: Nonconstant Fields-Footnote-1206602
- Node: Changing Fields206805
- Node: Field Separators212736
- Node: Default Field Splitting215440
- Node: Regexp Field Splitting216557
- Node: Single Character Fields219907
- Node: Command Line Field Separator220966
- Node: Full Line Fields224183
- Ref: Full Line Fields-Footnote-1225704
- Ref: Full Line Fields-Footnote-2225750
- Node: Field Splitting Summary225851
- Node: Constant Size227925
- Node: Splitting By Content232508
- Ref: Splitting By Content-Footnote-1236473
- Node: Multiple Line236636
- Ref: Multiple Line-Footnote-1242517
- Node: Getline242696
- Node: Plain Getline245175
- Node: Getline/Variable247815
- Node: Getline/File248964
- Node: Getline/Variable/File250349
- Ref: Getline/Variable/File-Footnote-1251952
- Node: Getline/Pipe252039
- Node: Getline/Variable/Pipe254717
- Node: Getline/Coprocess255848
- Node: Getline/Variable/Coprocess257112
- Node: Getline Notes257851
- Node: Getline Summary260645
- Ref: table-getline-variants261057
- Node: Read Timeout261886
- Ref: Read Timeout-Footnote-1265789
- Node: Retrying Input265847
- Node: Command-line directories267042
- Node: Input Summary267949
- Node: Input Exercises271334
- Node: Printing272062
- Node: Print273839
- Node: Print Examples275296
- Node: Output Separators278075
- Node: OFMT280093
- Node: Printf281448
- Node: Basic Printf282233
- Node: Control Letters283805
- Node: Format Modifiers287790
- Node: Printf Examples293800
- Node: Redirection296286
- Node: Special FD303124
- Ref: Special FD-Footnote-1306290
- Node: Special Files306364
- Node: Other Inherited Files306981
- Node: Special Network307981
- Node: Special Caveats308843
- Node: Close Files And Pipes309792
- Ref: Close Files And Pipes-Footnote-1316983
- Ref: Close Files And Pipes-Footnote-2317131
- Node: Output Summary317281
- Node: Output Exercises318279
- Node: Expressions318959
- Node: Values320148
- Node: Constants320825
- Node: Scalar Constants321516
- Ref: Scalar Constants-Footnote-1322378
- Node: Nondecimal-numbers322628
- Node: Regexp Constants325638
- Node: Using Constant Regexps326164
- Node: Variables329327
- Node: Using Variables329984
- Node: Assignment Options331895
- Node: Conversion333770
- Node: Strings And Numbers334294
- Ref: Strings And Numbers-Footnote-1337359
- Node: Locale influences conversions337468
- Ref: table-locale-affects340214
- Node: All Operators340806
- Node: Arithmetic Ops341435
- Node: Concatenation343940
- Ref: Concatenation-Footnote-1346759
- Node: Assignment Ops346866
- Ref: table-assign-ops351845
- Node: Increment Ops353155
- Node: Truth Values and Conditions356586
- Node: Truth Values357669
- Node: Typing and Comparison358718
- Node: Variable Typing359534
- Node: Comparison Operators363201
- Ref: table-relational-ops363611
- Node: POSIX String Comparison367106
- Ref: POSIX String Comparison-Footnote-1368178
- Node: Boolean Ops368317
- Ref: Boolean Ops-Footnote-1372795
- Node: Conditional Exp372886
- Node: Function Calls374624
- Node: Precedence378504
- Node: Locales382164
- Node: Expressions Summary383796
- Node: Patterns and Actions386367
- Node: Pattern Overview387487
- Node: Regexp Patterns389166
- Node: Expression Patterns389709
- Node: Ranges393418
- Node: BEGIN/END396525
- Node: Using BEGIN/END397286
- Ref: Using BEGIN/END-Footnote-1400022
- Node: I/O And BEGIN/END400128
- Node: BEGINFILE/ENDFILE402443
- Node: Empty405340
- Node: Using Shell Variables405657
- Node: Action Overview407930
- Node: Statements410256
- Node: If Statement412104
- Node: While Statement413599
- Node: Do Statement415627
- Node: For Statement416775
- Node: Switch Statement419933
- Node: Break Statement422315
- Node: Continue Statement424356
- Node: Next Statement426183
- Node: Nextfile Statement428564
- Node: Exit Statement431192
- Node: Built-in Variables433603
- Node: User-modified434736
- Ref: User-modified-Footnote-1442439
- Node: Auto-set442501
- Ref: Auto-set-Footnote-1456734
- Ref: Auto-set-Footnote-2456939
- Node: ARGC and ARGV456995
- Node: Pattern Action Summary461213
- Node: Arrays463646
- Node: Array Basics464975
- Node: Array Intro465819
- Ref: figure-array-elements467753
- Ref: Array Intro-Footnote-1470373
- Node: Reference to Elements470501
- Node: Assigning Elements472963
- Node: Array Example473454
- Node: Scanning an Array475213
- Node: Controlling Scanning478233
- Ref: Controlling Scanning-Footnote-1483627
- Node: Numeric Array Subscripts483943
- Node: Uninitialized Subscripts486128
- Node: Delete487745
- Ref: Delete-Footnote-1490494
- Node: Multidimensional490551
- Node: Multiscanning493648
- Node: Arrays of Arrays495237
- Node: Arrays Summary499991
- Node: Functions502082
- Node: Built-in503121
- Node: Calling Built-in504199
- Node: Numeric Functions506194
- Ref: Numeric Functions-Footnote-1511012
- Ref: Numeric Functions-Footnote-2511369
- Ref: Numeric Functions-Footnote-3511417
- Node: String Functions511689
- Ref: String Functions-Footnote-1535190
- Ref: String Functions-Footnote-2535319
- Ref: String Functions-Footnote-3535567
- Node: Gory Details535654
- Ref: table-sub-escapes537435
- Ref: table-sub-proposed538950
- Ref: table-posix-sub540312
- Ref: table-gensub-escapes541849
- Ref: Gory Details-Footnote-1542682
- Node: I/O Functions542833
- Ref: I/O Functions-Footnote-1550069
- Node: Time Functions550216
- Ref: Time Functions-Footnote-1560725
- Ref: Time Functions-Footnote-2560793
- Ref: Time Functions-Footnote-3560951
- Ref: Time Functions-Footnote-4561062
- Ref: Time Functions-Footnote-5561174
- Ref: Time Functions-Footnote-6561401
- Node: Bitwise Functions561667
- Ref: table-bitwise-ops562229
- Ref: Bitwise Functions-Footnote-1566541
- Node: Type Functions566713
- Node: I18N Functions567864
- Node: User-defined569509
- Node: Definition Syntax570314
- Ref: Definition Syntax-Footnote-1575946
- Node: Function Example576017
- Ref: Function Example-Footnote-1578936
- Node: Function Caveats578958
- Node: Calling A Function579476
- Node: Variable Scope580434
- Node: Pass By Value/Reference583422
- Node: Return Statement586917
- Node: Dynamic Typing589898
- Node: Indirect Calls590827
- Ref: Indirect Calls-Footnote-1602129
- Node: Functions Summary602257
- Node: Library Functions604959
- Ref: Library Functions-Footnote-1608568
- Ref: Library Functions-Footnote-2608711
- Node: Library Names608882
- Ref: Library Names-Footnote-1612336
- Ref: Library Names-Footnote-2612559
- Node: General Functions612645
- Node: Strtonum Function613748
- Node: Assert Function616770
- Node: Round Function620094
- Node: Cliff Random Function621635
- Node: Ordinal Functions622651
- Ref: Ordinal Functions-Footnote-1625714
- Ref: Ordinal Functions-Footnote-2625966
- Node: Join Function626177
- Ref: Join Function-Footnote-1627946
- Node: Getlocaltime Function628146
- Node: Readfile Function631890
- Node: Shell Quoting633860
- Node: Data File Management635261
- Node: Filetrans Function635893
- Node: Rewind Function639949
- Node: File Checking641336
- Ref: File Checking-Footnote-1642668
- Node: Empty Files642869
- Node: Ignoring Assigns644848
- Node: Getopt Function646399
- Ref: Getopt Function-Footnote-1657861
- Node: Passwd Functions658061
- Ref: Passwd Functions-Footnote-1666898
- Node: Group Functions666986
- Ref: Group Functions-Footnote-1674880
- Node: Walking Arrays675093
- Node: Library Functions Summary676696
- Node: Library Exercises678097
- Node: Sample Programs679377
- Node: Running Examples680147
- Node: Clones680875
- Node: Cut Program682099
- Node: Egrep Program691818
- Ref: Egrep Program-Footnote-1699316
- Node: Id Program699426
- Node: Split Program703071
- Ref: Split Program-Footnote-1706519
- Node: Tee Program706647
- Node: Uniq Program709436
- Node: Wc Program716855
- Ref: Wc Program-Footnote-1721105
- Node: Miscellaneous Programs721199
- Node: Dupword Program722412
- Node: Alarm Program724443
- Node: Translate Program729247
- Ref: Translate Program-Footnote-1733812
- Node: Labels Program734082
- Ref: Labels Program-Footnote-1737433
- Node: Word Sorting737517
- Node: History Sorting741588
- Node: Extract Program743424
- Node: Simple Sed750949
- Node: Igawk Program754017
- Ref: Igawk Program-Footnote-1768341
- Ref: Igawk Program-Footnote-2768542
- Ref: Igawk Program-Footnote-3768664
- Node: Anagram Program768779
- Node: Signature Program771836
- Node: Programs Summary773083
- Node: Programs Exercises774276
- Ref: Programs Exercises-Footnote-1778407
- Node: Advanced Features778498
- Node: Nondecimal Data780446
- Node: Array Sorting782036
- Node: Controlling Array Traversal782733
- Ref: Controlling Array Traversal-Footnote-1791066
- Node: Array Sorting Functions791184
- Ref: Array Sorting Functions-Footnote-1795073
- Node: Two-way I/O795269
- Ref: Two-way I/O-Footnote-1800214
- Ref: Two-way I/O-Footnote-2800400
- Node: TCP/IP Networking800482
- Node: Profiling803355
- Node: Advanced Features Summary811632
- Node: Internationalization813565
- Node: I18N and L10N815045
- Node: Explaining gettext815731
- Ref: Explaining gettext-Footnote-1820756
- Ref: Explaining gettext-Footnote-2820940
- Node: Programmer i18n821105
- Ref: Programmer i18n-Footnote-1825971
- Node: Translator i18n826020
- Node: String Extraction826814
- Ref: String Extraction-Footnote-1827945
- Node: Printf Ordering828031
- Ref: Printf Ordering-Footnote-1830817
- Node: I18N Portability830881
- Ref: I18N Portability-Footnote-1833336
- Node: I18N Example833399
- Ref: I18N Example-Footnote-1836202
- Node: Gawk I18N836274
- Node: I18N Summary836912
- Node: Debugger838251
- Node: Debugging839273
- Node: Debugging Concepts839714
- Node: Debugging Terms841567
- Node: Awk Debugging844139
- Node: Sample Debugging Session845033
- Node: Debugger Invocation845553
- Node: Finding The Bug846937
- Node: List of Debugger Commands853412
- Node: Breakpoint Control854745
- Node: Debugger Execution Control858441
- Node: Viewing And Changing Data861805
- Node: Execution Stack865183
- Node: Debugger Info866820
- Node: Miscellaneous Debugger Commands870837
- Node: Readline Support875866
- Node: Limitations876758
- Node: Debugging Summary878872
- Node: Arbitrary Precision Arithmetic880040
- Node: Computer Arithmetic881456
- Ref: table-numeric-ranges885054
- Ref: Computer Arithmetic-Footnote-1885913
- Node: Math Definitions885970
- Ref: table-ieee-formats889258
- Ref: Math Definitions-Footnote-1889862
- Node: MPFR features889967
- Node: FP Math Caution891638
- Ref: FP Math Caution-Footnote-1892688
- Node: Inexactness of computations893057
- Node: Inexact representation894016
- Node: Comparing FP Values895373
- Node: Errors accumulate896455
- Node: Getting Accuracy897888
- Node: Try To Round900550
- Node: Setting precision901449
- Ref: table-predefined-precision-strings902133
- Node: Setting the rounding mode903922
- Ref: table-gawk-rounding-modes904286
- Ref: Setting the rounding mode-Footnote-1907741
- Node: Arbitrary Precision Integers907920
- Ref: Arbitrary Precision Integers-Footnote-1912820
- Node: POSIX Floating Point Problems912969
- Ref: POSIX Floating Point Problems-Footnote-1916842
- Node: Floating point summary916880
- Node: Dynamic Extensions919074
- Node: Extension Intro920626
- Node: Plugin License921892
- Node: Extension Mechanism Outline922689
- Ref: figure-load-extension923117
- Ref: figure-register-new-function924597
- Ref: figure-call-new-function925601
- Node: Extension API Description927587
- Node: Extension API Functions Introduction929121
- Node: General Data Types933993
- Ref: General Data Types-Footnote-1939732
- Node: Memory Allocation Functions940031
- Ref: Memory Allocation Functions-Footnote-1942870
- Node: Constructor Functions942966
- Node: Registration Functions944700
- Node: Extension Functions945385
- Node: Exit Callback Functions947682
- Node: Extension Version String948930
- Node: Input Parsers949595
- Node: Output Wrappers959474
- Node: Two-way processors963989
- Node: Printing Messages966193
- Ref: Printing Messages-Footnote-1967269
- Node: Updating `ERRNO'967421
- Node: Requesting Values968161
- Ref: table-value-types-returned968889
- Node: Accessing Parameters969846
- Node: Symbol Table Access971077
- Node: Symbol table by name971591
- Node: Symbol table by cookie973572
- Ref: Symbol table by cookie-Footnote-1977716
- Node: Cached values977779
- Ref: Cached values-Footnote-1981278
- Node: Array Manipulation981369
- Ref: Array Manipulation-Footnote-1982459
- Node: Array Data Types982496
- Ref: Array Data Types-Footnote-1985151
- Node: Array Functions985243
- Node: Flattening Arrays989097
- Node: Creating Arrays995989
- Node: Redirection API1000760
- Node: Extension API Variables1003531
- Node: Extension Versioning1004164
- Node: Extension API Informational Variables1006065
- Node: Extension API Boilerplate1007130
- Node: Finding Extensions1010939
- Node: Extension Example1011499
- Node: Internal File Description1012271
- Node: Internal File Ops1016338
- Ref: Internal File Ops-Footnote-11028008
- Node: Using Internal File Ops1028148
- Ref: Using Internal File Ops-Footnote-11030531
- Node: Extension Samples1030804
- Node: Extension Sample File Functions1032330
- Node: Extension Sample Fnmatch1039968
- Node: Extension Sample Fork1041459
- Node: Extension Sample Inplace1042674
- Node: Extension Sample Ord1044349
- Node: Extension Sample Readdir1045185
- Ref: table-readdir-file-types1046061
- Node: Extension Sample Revout1046872
- Node: Extension Sample Rev2way1047462
- Node: Extension Sample Read write array1048202
- Node: Extension Sample Readfile1050142
- Node: Extension Sample Time1051237
- Node: Extension Sample API Tests1052586
- Node: gawkextlib1053077
- Node: Extension summary1055735
- Node: Extension Exercises1059424
- Node: Language History1060146
- Node: V7/SVR3.11061802
- Node: SVR41063983
- Node: POSIX1065428
- Node: BTL1066817
- Node: POSIX/GNU1067551
- Node: Feature History1073175
- Node: Common Extensions1086273
- Node: Ranges and Locales1087597
- Ref: Ranges and Locales-Footnote-11092215
- Ref: Ranges and Locales-Footnote-21092242
- Ref: Ranges and Locales-Footnote-31092476
- Node: Contributors1092697
- Node: History summary1098238
- Node: Installation1099608
- Node: Gawk Distribution1100554
- Node: Getting1101038
- Node: Extracting1101861
- Node: Distribution contents1103496
- Node: Unix Installation1109561
- Node: Quick Installation1110244
- Node: Shell Startup Files1112655
- Node: Additional Configuration Options1113734
- Node: Configuration Philosophy1115473
- Node: Non-Unix Installation1117842
- Node: PC Installation1118300
- Node: PC Binary Installation1119619
- Node: PC Compiling1121467
- Ref: PC Compiling-Footnote-11124488
- Node: PC Testing1124597
- Node: PC Using1125773
- Node: Cygwin1129888
- Node: MSYS1130711
- Node: VMS Installation1131211
- Node: VMS Compilation1132003
- Ref: VMS Compilation-Footnote-11133225
- Node: VMS Dynamic Extensions1133283
- Node: VMS Installation Details1134967
- Node: VMS Running1137219
- Node: VMS GNV1140055
- Node: VMS Old Gawk1140789
- Node: Bugs1141259
- Node: Other Versions1145142
- Node: Installation summary1151566
- Node: Notes1152622
- Node: Compatibility Mode1153487
- Node: Additions1154269
- Node: Accessing The Source1155194
- Node: Adding Code1156629
- Node: New Ports1162786
- Node: Derived Files1167268
- Ref: Derived Files-Footnote-11172743
- Ref: Derived Files-Footnote-21172777
- Ref: Derived Files-Footnote-31173373
- Node: Future Extensions1173487
- Node: Implementation Limitations1174093
- Node: Extension Design1175341
- Node: Old Extension Problems1176495
- Ref: Old Extension Problems-Footnote-11178012
- Node: Extension New Mechanism Goals1178069
- Ref: Extension New Mechanism Goals-Footnote-11181429
- Node: Extension Other Design Decisions1181618
- Node: Extension Future Growth1183726
- Node: Old Extension Mechanism1184562
- Node: Notes summary1186324
- Node: Basic Concepts1187510
- Node: Basic High Level1188191
- Ref: figure-general-flow1188463
- Ref: figure-process-flow1189062
- Ref: Basic High Level-Footnote-11192291
- Node: Basic Data Typing1192476
- Node: Glossary1195804
- Node: Copying1227733
- Node: GNU Free Documentation License1265289
- Node: Index1290425
 -Node: Foreword342291
 -Node: Foreword446735
 -Node: Preface48266
 -Ref: Preface-Footnote-151137
 -Ref: Preface-Footnote-251244
 -Ref: Preface-Footnote-351477
 -Node: History51619
 -Node: Names53970
 -Ref: Names-Footnote-155064
 -Node: This Manual55210
 -Ref: This Manual-Footnote-161710
 -Node: Conventions61810
 -Node: Manual History64147
 -Ref: Manual History-Footnote-167140
 -Ref: Manual History-Footnote-267181
 -Node: How To Contribute67255
 -Node: Acknowledgments68384
 -Node: Getting Started73250
 -Node: Running gawk75689
 -Node: One-shot76879
 -Node: Read Terminal78143
 -Node: Long80174
 -Node: Executable Scripts81687
 -Ref: Executable Scripts-Footnote-184476
 -Node: Comments84579
 -Node: Quoting87061
 -Node: DOS Quoting92579
 -Node: Sample Data Files93254
 -Node: Very Simple95849
 -Node: Two Rules100748
 -Node: More Complex102634
 -Node: Statements/Lines105496
 -Ref: Statements/Lines-Footnote-1109951
 -Node: Other Features110216
 -Node: When111152
 -Ref: When-Footnote-1112906
 -Node: Intro Summary112971
 -Node: Invoking Gawk113855
 -Node: Command Line115369
 -Node: Options116167
 -Ref: Options-Footnote-1131962
 -Ref: Options-Footnote-2132191
 -Node: Other Arguments132216
 -Node: Naming Standard Input135164
 -Node: Environment Variables136257
 -Node: AWKPATH Variable136815
 -Ref: AWKPATH Variable-Footnote-1140222
 -Ref: AWKPATH Variable-Footnote-2140267
 -Node: AWKLIBPATH Variable140527
 -Node: Other Environment Variables141783
 -Node: Exit Status145414
 -Node: Include Files146090
 -Node: Loading Shared Libraries149679
 -Node: Obsolete151106
 -Node: Undocumented151798
 -Node: Invoking Summary152065
 -Node: Regexp153728
 -Node: Regexp Usage155182
 -Node: Escape Sequences157219
 -Node: Regexp Operators163448
 -Ref: Regexp Operators-Footnote-1170858
 -Ref: Regexp Operators-Footnote-2171005
 -Node: Bracket Expressions171103
 -Ref: table-char-classes173118
 -Node: Leftmost Longest176060
 -Node: Computed Regexps177362
 -Node: GNU Regexp Operators180791
 -Node: Case-sensitivity184463
 -Ref: Case-sensitivity-Footnote-1187348
 -Ref: Case-sensitivity-Footnote-2187583
 -Node: Regexp Summary187691
 -Node: Reading Files189158
 -Node: Records191251
 -Node: awk split records191984
 -Node: gawk split records196913
 -Ref: gawk split records-Footnote-1201452
 -Node: Fields201489
 -Ref: Fields-Footnote-1204267
 -Node: Nonconstant Fields204353
 -Ref: Nonconstant Fields-Footnote-1206591
 -Node: Changing Fields206794
 -Node: Field Separators212725
 -Node: Default Field Splitting215429
 -Node: Regexp Field Splitting216546
 -Node: Single Character Fields219896
 -Node: Command Line Field Separator220955
 -Node: Full Line Fields224172
 -Ref: Full Line Fields-Footnote-1225693
 -Ref: Full Line Fields-Footnote-2225739
 -Node: Field Splitting Summary225840
 -Node: Constant Size227914
 -Node: Splitting By Content232493
 -Ref: Splitting By Content-Footnote-1236458
 -Node: Multiple Line236621
 -Ref: Multiple Line-Footnote-1242502
 -Node: Getline242681
 -Node: Plain Getline244888
 -Node: Getline/Variable247528
 -Node: Getline/File248677
 -Node: Getline/Variable/File250062
 -Ref: Getline/Variable/File-Footnote-1251665
 -Node: Getline/Pipe251752
 -Node: Getline/Variable/Pipe254430
 -Node: Getline/Coprocess255561
 -Node: Getline/Variable/Coprocess256825
 -Node: Getline Notes257564
 -Node: Getline Summary260358
 -Ref: table-getline-variants260770
 -Node: Read Timeout261599
 -Ref: Read Timeout-Footnote-1265436
 -Node: Command-line directories265494
 -Node: Input Summary266399
 -Node: Input Exercises269784
 -Node: Printing270512
 -Node: Print272347
 -Node: Print Examples273804
 -Node: Output Separators276583
 -Node: OFMT278601
 -Node: Printf279956
 -Node: Basic Printf280741
 -Node: Control Letters282313
 -Node: Format Modifiers286298
 -Node: Printf Examples292304
 -Node: Redirection294790
 -Node: Special FD301628
 -Ref: Special FD-Footnote-1304794
 -Node: Special Files304868
 -Node: Other Inherited Files305485
 -Node: Special Network306485
 -Node: Special Caveats307347
 -Node: Close Files And Pipes308296
 -Ref: Close Files And Pipes-Footnote-1315481
 -Ref: Close Files And Pipes-Footnote-2315629
 -Node: Nonfatal315779
 -Node: Output Summary318104
 -Node: Output Exercises319325
 -Node: Expressions320005
 -Node: Values321194
 -Node: Constants321871
 -Node: Scalar Constants322562
 -Ref: Scalar Constants-Footnote-1323424
 -Node: Nondecimal-numbers323674
 -Node: Regexp Constants326684
 -Node: Using Constant Regexps327210
 -Node: Variables330373
 -Node: Using Variables331030
 -Node: Assignment Options332941
 -Node: Conversion334816
 -Node: Strings And Numbers335340
 -Ref: Strings And Numbers-Footnote-1338405
 -Node: Locale influences conversions338514
 -Ref: table-locale-affects341260
 -Node: All Operators341852
 -Node: Arithmetic Ops342481
 -Node: Concatenation344986
 -Ref: Concatenation-Footnote-1347805
 -Node: Assignment Ops347912
 -Ref: table-assign-ops352891
 -Node: Increment Ops354201
 -Node: Truth Values and Conditions357632
 -Node: Truth Values358715
 -Node: Typing and Comparison359764
 -Node: Variable Typing360580
 -Node: Comparison Operators364247
 -Ref: table-relational-ops364657
 -Node: POSIX String Comparison368152
 -Ref: POSIX String Comparison-Footnote-1369224
 -Node: Boolean Ops369363
 -Ref: Boolean Ops-Footnote-1373841
 -Node: Conditional Exp373932
 -Node: Function Calls375670
 -Node: Precedence379550
 -Node: Locales383210
 -Node: Expressions Summary384842
 -Node: Patterns and Actions387413
 -Node: Pattern Overview388533
 -Node: Regexp Patterns390212
 -Node: Expression Patterns390755
 -Node: Ranges394535
 -Node: BEGIN/END397642
 -Node: Using BEGIN/END398403
 -Ref: Using BEGIN/END-Footnote-1401139
 -Node: I/O And BEGIN/END401245
 -Node: BEGINFILE/ENDFILE403560
 -Node: Empty406457
 -Node: Using Shell Variables406774
 -Node: Action Overview409047
 -Node: Statements411373
 -Node: If Statement413221
 -Node: While Statement414716
 -Node: Do Statement416744
 -Node: For Statement417892
 -Node: Switch Statement421050
 -Node: Break Statement423432
 -Node: Continue Statement425525
 -Node: Next Statement427352
 -Node: Nextfile Statement429733
 -Node: Exit Statement432361
 -Node: Built-in Variables434772
 -Node: User-modified435905
 -Ref: User-modified-Footnote-1443539
 -Node: Auto-set443601
 -Ref: Auto-set-Footnote-1457310
 -Ref: Auto-set-Footnote-2457515
 -Node: ARGC and ARGV457571
 -Node: Pattern Action Summary461789
 -Node: Arrays464222
 -Node: Array Basics465551
 -Node: Array Intro466395
 -Ref: figure-array-elements468332
 -Ref: Array Intro-Footnote-1470955
 -Node: Reference to Elements471083
 -Node: Assigning Elements473545
 -Node: Array Example474036
 -Node: Scanning an Array475795
 -Node: Controlling Scanning478818
 -Ref: Controlling Scanning-Footnote-1484212
 -Node: Numeric Array Subscripts484528
 -Node: Uninitialized Subscripts486713
 -Node: Delete488330
 -Ref: Delete-Footnote-1491079
 -Node: Multidimensional491136
 -Node: Multiscanning494233
 -Node: Arrays of Arrays495822
 -Node: Arrays Summary500576
 -Node: Functions502667
 -Node: Built-in503706
 -Node: Calling Built-in504784
 -Node: Numeric Functions506779
 -Ref: Numeric Functions-Footnote-1511597
 -Ref: Numeric Functions-Footnote-2511954
 -Ref: Numeric Functions-Footnote-3512002
 -Node: String Functions512274
 -Ref: String Functions-Footnote-1535775
 -Ref: String Functions-Footnote-2535904
 -Ref: String Functions-Footnote-3536152
 -Node: Gory Details536239
 -Ref: table-sub-escapes538020
 -Ref: table-sub-proposed539535
 -Ref: table-posix-sub540897
 -Ref: table-gensub-escapes542434
 -Ref: Gory Details-Footnote-1543267
 -Node: I/O Functions543418
 -Ref: I/O Functions-Footnote-1550654
 -Node: Time Functions550801
 -Ref: Time Functions-Footnote-1561310
 -Ref: Time Functions-Footnote-2561378
 -Ref: Time Functions-Footnote-3561536
 -Ref: Time Functions-Footnote-4561647
 -Ref: Time Functions-Footnote-5561759
 -Ref: Time Functions-Footnote-6561986
 -Node: Bitwise Functions562252
 -Ref: table-bitwise-ops562814
 -Ref: Bitwise Functions-Footnote-1567142
 -Node: Type Functions567314
 -Node: I18N Functions568466
 -Node: User-defined570113
 -Node: Definition Syntax570918
 -Ref: Definition Syntax-Footnote-1576577
 -Node: Function Example576648
 -Ref: Function Example-Footnote-1579569
 -Node: Function Caveats579591
 -Node: Calling A Function580109
 -Node: Variable Scope581067
 -Node: Pass By Value/Reference584060
 -Node: Return Statement587557
 -Node: Dynamic Typing590536
 -Node: Indirect Calls591465
 -Ref: Indirect Calls-Footnote-1601330
 -Node: Functions Summary601458
 -Node: Library Functions604160
 -Ref: Library Functions-Footnote-1607768
 -Ref: Library Functions-Footnote-2607911
 -Node: Library Names608082
 -Ref: Library Names-Footnote-1611540
 -Ref: Library Names-Footnote-2611763
 -Node: General Functions611849
 -Node: Strtonum Function612952
 -Node: Assert Function615974
 -Node: Round Function619298
 -Node: Cliff Random Function620839
 -Node: Ordinal Functions621855
 -Ref: Ordinal Functions-Footnote-1624918
 -Ref: Ordinal Functions-Footnote-2625170
 -Node: Join Function625381
 -Ref: Join Function-Footnote-1627151
 -Node: Getlocaltime Function627351
 -Node: Readfile Function631095
 -Node: Shell Quoting633067
 -Node: Data File Management634468
 -Node: Filetrans Function635100
 -Node: Rewind Function639196
 -Node: File Checking640582
 -Ref: File Checking-Footnote-1641915
 -Node: Empty Files642116
 -Node: Ignoring Assigns644095
 -Node: Getopt Function645645
 -Ref: Getopt Function-Footnote-1657109
 -Node: Passwd Functions657309
 -Ref: Passwd Functions-Footnote-1666149
 -Node: Group Functions666237
 -Ref: Group Functions-Footnote-1674134
 -Node: Walking Arrays674339
 -Node: Library Functions Summary677345
 -Node: Library Exercises678747
 -Node: Sample Programs680027
 -Node: Running Examples680797
 -Node: Clones681525
 -Node: Cut Program682749
 -Node: Egrep Program692469
 -Ref: Egrep Program-Footnote-1699972
 -Node: Id Program700082
 -Node: Split Program703758
 -Ref: Split Program-Footnote-1707212
 -Node: Tee Program707340
 -Node: Uniq Program710129
 -Node: Wc Program717548
 -Ref: Wc Program-Footnote-1721798
 -Node: Miscellaneous Programs721892
 -Node: Dupword Program723105
 -Node: Alarm Program725136
 -Node: Translate Program729941
 -Ref: Translate Program-Footnote-1734504
 -Node: Labels Program734774
 -Ref: Labels Program-Footnote-1738125
 -Node: Word Sorting738209
 -Node: History Sorting742279
 -Node: Extract Program744114
 -Node: Simple Sed751638
 -Node: Igawk Program754708
 -Ref: Igawk Program-Footnote-1769034
 -Ref: Igawk Program-Footnote-2769235
 -Ref: Igawk Program-Footnote-3769357
 -Node: Anagram Program769472
 -Node: Signature Program772533
 -Node: Programs Summary773780
 -Node: Programs Exercises775001
 -Ref: Programs Exercises-Footnote-1779132
 -Node: Advanced Features779223
 -Node: Nondecimal Data781205
 -Node: Array Sorting782795
 -Node: Controlling Array Traversal783495
 -Ref: Controlling Array Traversal-Footnote-1791861
 -Node: Array Sorting Functions791979
 -Ref: Array Sorting Functions-Footnote-1795865
 -Node: Two-way I/O796061
 -Ref: Two-way I/O-Footnote-1801006
 -Ref: Two-way I/O-Footnote-2801192
 -Node: TCP/IP Networking801274
 -Node: Profiling804146
 -Node: Advanced Features Summary812417
 -Node: Internationalization814350
 -Node: I18N and L10N815830
 -Node: Explaining gettext816516
 -Ref: Explaining gettext-Footnote-1821541
 -Ref: Explaining gettext-Footnote-2821725
 -Node: Programmer i18n821890
 -Ref: Programmer i18n-Footnote-1826766
 -Node: Translator i18n826815
 -Node: String Extraction827609
 -Ref: String Extraction-Footnote-1828740
 -Node: Printf Ordering828826
 -Ref: Printf Ordering-Footnote-1831612
 -Node: I18N Portability831676
 -Ref: I18N Portability-Footnote-1834132
 -Node: I18N Example834195
 -Ref: I18N Example-Footnote-1836998
 -Node: Gawk I18N837070
 -Node: I18N Summary837714
 -Node: Debugger839054
 -Node: Debugging840076
 -Node: Debugging Concepts840517
 -Node: Debugging Terms842327
 -Node: Awk Debugging844899
 -Node: Sample Debugging Session845805
 -Node: Debugger Invocation846339
 -Node: Finding The Bug847724
 -Node: List of Debugger Commands854203
 -Node: Breakpoint Control855535
 -Node: Debugger Execution Control859212
 -Node: Viewing And Changing Data862571
 -Node: Execution Stack865947
 -Node: Debugger Info867582
 -Node: Miscellaneous Debugger Commands871627
 -Node: Readline Support876628
 -Node: Limitations877522
 -Node: Debugging Summary879637
 -Node: Arbitrary Precision Arithmetic880811
 -Node: Computer Arithmetic882227
 -Ref: table-numeric-ranges885804
 -Ref: Computer Arithmetic-Footnote-1886328
 -Node: Math Definitions886385
 -Ref: table-ieee-formats889680
 -Ref: Math Definitions-Footnote-1890284
 -Node: MPFR features890389
 -Node: FP Math Caution892060
 -Ref: FP Math Caution-Footnote-1893110
 -Node: Inexactness of computations893479
 -Node: Inexact representation894438
 -Node: Comparing FP Values895796
 -Node: Errors accumulate896878
 -Node: Getting Accuracy898310
 -Node: Try To Round901014
 -Node: Setting precision901913
 -Ref: table-predefined-precision-strings902597
 -Node: Setting the rounding mode904426
 -Ref: table-gawk-rounding-modes904790
 -Ref: Setting the rounding mode-Footnote-1908242
 -Node: Arbitrary Precision Integers908421
 -Ref: Arbitrary Precision Integers-Footnote-1913319
 -Node: POSIX Floating Point Problems913468
 -Ref: POSIX Floating Point Problems-Footnote-1917347
 -Node: Floating point summary917385
 -Node: Dynamic Extensions919572
 -Node: Extension Intro921124
 -Node: Plugin License922389
 -Node: Extension Mechanism Outline923186
 -Ref: figure-load-extension923614
 -Ref: figure-register-new-function925094
 -Ref: figure-call-new-function926098
 -Node: Extension API Description928085
 -Node: Extension API Functions Introduction929535
 -Node: General Data Types934356
 -Ref: General Data Types-Footnote-1940256
 -Node: Memory Allocation Functions940555
 -Ref: Memory Allocation Functions-Footnote-1943394
 -Node: Constructor Functions943493
 -Node: Registration Functions945232
 -Node: Extension Functions945917
 -Node: Exit Callback Functions948214
 -Node: Extension Version String949462
 -Node: Input Parsers950125
 -Node: Output Wrappers960000
 -Node: Two-way processors964513
 -Node: Printing Messages966776
 -Ref: Printing Messages-Footnote-1967852
 -Node: Updating `ERRNO'968004
 -Node: Requesting Values968744
 -Ref: table-value-types-returned969471
 -Node: Accessing Parameters970428
 -Node: Symbol Table Access971662
 -Node: Symbol table by name972176
 -Node: Symbol table by cookie974196
 -Ref: Symbol table by cookie-Footnote-1978341
 -Node: Cached values978404
 -Ref: Cached values-Footnote-1981900
 -Node: Array Manipulation981991
 -Ref: Array Manipulation-Footnote-1983089
 -Node: Array Data Types983126
 -Ref: Array Data Types-Footnote-1985781
 -Node: Array Functions985873
 -Node: Flattening Arrays989732
 -Node: Creating Arrays996634
 -Node: Extension API Variables1001405
 -Node: Extension Versioning1002041
 -Node: Extension API Informational Variables1003932
 -Node: Extension API Boilerplate1004997
 -Node: Finding Extensions1008806
 -Node: Extension Example1009366
 -Node: Internal File Description1010138
 -Node: Internal File Ops1014205
 -Ref: Internal File Ops-Footnote-11025956
 -Node: Using Internal File Ops1026096
 -Ref: Using Internal File Ops-Footnote-11028479
 -Node: Extension Samples1028752
 -Node: Extension Sample File Functions1030280
 -Node: Extension Sample Fnmatch1037961
 -Node: Extension Sample Fork1039449
 -Node: Extension Sample Inplace1040664
 -Node: Extension Sample Ord1042750
 -Node: Extension Sample Readdir1043586
 -Ref: table-readdir-file-types1044463
 -Node: Extension Sample Revout1045274
 -Node: Extension Sample Rev2way1045863
 -Node: Extension Sample Read write array1046603
 -Node: Extension Sample Readfile1048543
 -Node: Extension Sample Time1049638
 -Node: Extension Sample API Tests1050986
 -Node: gawkextlib1051477
 -Node: Extension summary1054155
 -Node: Extension Exercises1057844
 -Node: Language History1058566
 -Node: V7/SVR3.11060222
 -Node: SVR41062375
 -Node: POSIX1063809
 -Node: BTL1065190
 -Node: POSIX/GNU1065921
 -Node: Feature History1071757
 -Node: Common Extensions1085551
 -Node: Ranges and Locales1086923
 -Ref: Ranges and Locales-Footnote-11091542
 -Ref: Ranges and Locales-Footnote-21091569
 -Ref: Ranges and Locales-Footnote-31091804
 -Node: Contributors1092025
 -Node: History summary1097565
 -Node: Installation1098944
 -Node: Gawk Distribution1099890
 -Node: Getting1100374
 -Node: Extracting1101197
 -Node: Distribution contents1102834
 -Node: Unix Installation1108936
 -Node: Quick Installation1109619
 -Node: Shell Startup Files1112030
 -Node: Additional Configuration Options1113109
 -Node: Configuration Philosophy1114913
 -Node: Non-Unix Installation1117282
 -Node: PC Installation1117740
 -Node: PC Binary Installation1119060
 -Node: PC Compiling1120908
 -Ref: PC Compiling-Footnote-11123929
 -Node: PC Testing1124038
 -Node: PC Using1125214
 -Node: Cygwin1129329
 -Node: MSYS1130099
 -Node: VMS Installation1130600
 -Node: VMS Compilation1131392
 -Ref: VMS Compilation-Footnote-11132621
 -Node: VMS Dynamic Extensions1132679
 -Node: VMS Installation Details1134363
 -Node: VMS Running1136614
 -Node: VMS GNV1139454
 -Node: VMS Old Gawk1140189
 -Node: Bugs1140659
 -Node: Other Versions1144548
 -Node: Installation summary1150982
 -Node: Notes1152041
 -Node: Compatibility Mode1152906
 -Node: Additions1153688
 -Node: Accessing The Source1154613
 -Node: Adding Code1156048
 -Node: New Ports1162205
 -Node: Derived Files1166687
 -Ref: Derived Files-Footnote-11172162
 -Ref: Derived Files-Footnote-21172196
 -Ref: Derived Files-Footnote-31172792
 -Node: Future Extensions1172906
 -Node: Implementation Limitations1173512
 -Node: Extension Design1174760
 -Node: Old Extension Problems1175914
 -Ref: Old Extension Problems-Footnote-11177431
 -Node: Extension New Mechanism Goals1177488
 -Ref: Extension New Mechanism Goals-Footnote-11180848
 -Node: Extension Other Design Decisions1181037
 -Node: Extension Future Growth1183145
 -Node: Old Extension Mechanism1183981
 -Node: Notes summary1185743
 -Node: Basic Concepts1186929
 -Node: Basic High Level1187610
 -Ref: figure-general-flow1187882
 -Ref: figure-process-flow1188481
 -Ref: Basic High Level-Footnote-11191710
 -Node: Basic Data Typing1191895
 -Node: Glossary1195223
 -Node: Copying1227152
 -Node: GNU Free Documentation License1264708
 -Node: Index1289844
++Node: Foreword342451
++Node: Foreword446895
++Node: Preface48426
++Ref: Preface-Footnote-151297
++Ref: Preface-Footnote-251404
++Ref: Preface-Footnote-351637
++Node: History51779
++Node: Names54130
++Ref: Names-Footnote-155224
++Node: This Manual55370
++Ref: This Manual-Footnote-161870
++Node: Conventions61970
++Node: Manual History64307
++Ref: Manual History-Footnote-167300
++Ref: Manual History-Footnote-267341
++Node: How To Contribute67415
++Node: Acknowledgments68544
++Node: Getting Started73410
++Node: Running gawk75849
++Node: One-shot77039
++Node: Read Terminal78303
++Node: Long80334
++Node: Executable Scripts81847
++Ref: Executable Scripts-Footnote-184636
++Node: Comments84739
++Node: Quoting87221
++Node: DOS Quoting92739
++Node: Sample Data Files93414
++Node: Very Simple96009
++Node: Two Rules100908
++Node: More Complex102794
++Node: Statements/Lines105656
++Ref: Statements/Lines-Footnote-1110111
++Node: Other Features110376
++Node: When111312
++Ref: When-Footnote-1113066
++Node: Intro Summary113131
++Node: Invoking Gawk114015
++Node: Command Line115529
++Node: Options116327
++Ref: Options-Footnote-1132122
++Ref: Options-Footnote-2132351
++Node: Other Arguments132376
++Node: Naming Standard Input135324
++Node: Environment Variables136417
++Node: AWKPATH Variable136975
++Ref: AWKPATH Variable-Footnote-1140382
++Ref: AWKPATH Variable-Footnote-2140427
++Node: AWKLIBPATH Variable140687
++Node: Other Environment Variables141943
++Node: Exit Status145574
++Node: Include Files146250
++Node: Loading Shared Libraries149839
++Node: Obsolete151266
++Node: Undocumented151958
++Node: Invoking Summary152225
++Node: Regexp153888
++Node: Regexp Usage155342
++Node: Escape Sequences157379
++Node: Regexp Operators163608
++Ref: Regexp Operators-Footnote-1171018
++Ref: Regexp Operators-Footnote-2171165
++Node: Bracket Expressions171263
++Ref: table-char-classes173278
++Node: Leftmost Longest176220
++Node: Computed Regexps177522
++Node: GNU Regexp Operators180951
++Node: Case-sensitivity184623
++Ref: Case-sensitivity-Footnote-1187508
++Ref: Case-sensitivity-Footnote-2187743
++Node: Regexp Summary187851
++Node: Reading Files189318
++Node: Records191480
++Node: awk split records192213
++Node: gawk split records197142
++Ref: gawk split records-Footnote-1201681
++Node: Fields201718
++Ref: Fields-Footnote-1204496
++Node: Nonconstant Fields204582
++Ref: Nonconstant Fields-Footnote-1206820
++Node: Changing Fields207023
++Node: Field Separators212954
++Node: Default Field Splitting215658
++Node: Regexp Field Splitting216775
++Node: Single Character Fields220125
++Node: Command Line Field Separator221184
++Node: Full Line Fields224401
++Ref: Full Line Fields-Footnote-1225922
++Ref: Full Line Fields-Footnote-2225968
++Node: Field Splitting Summary226069
++Node: Constant Size228143
++Node: Splitting By Content232722
++Ref: Splitting By Content-Footnote-1236687
++Node: Multiple Line236850
++Ref: Multiple Line-Footnote-1242731
++Node: Getline242910
++Node: Plain Getline245389
++Node: Getline/Variable248029
++Node: Getline/File249178
++Node: Getline/Variable/File250563
++Ref: Getline/Variable/File-Footnote-1252166
++Node: Getline/Pipe252253
++Node: Getline/Variable/Pipe254931
++Node: Getline/Coprocess256062
++Node: Getline/Variable/Coprocess257326
++Node: Getline Notes258065
++Node: Getline Summary260859
++Ref: table-getline-variants261271
++Node: Read Timeout262100
++Ref: Read Timeout-Footnote-1266003
++Node: Retrying Input266061
++Node: Command-line directories267256
++Node: Input Summary268163
++Node: Input Exercises271548
++Node: Printing272276
++Node: Print274111
++Node: Print Examples275568
++Node: Output Separators278347
++Node: OFMT280365
++Node: Printf281720
++Node: Basic Printf282505
++Node: Control Letters284077
++Node: Format Modifiers288062
++Node: Printf Examples294068
++Node: Redirection296554
++Node: Special FD303392
++Ref: Special FD-Footnote-1306558
++Node: Special Files306632
++Node: Other Inherited Files307249
++Node: Special Network308249
++Node: Special Caveats309111
++Node: Close Files And Pipes310060
++Ref: Close Files And Pipes-Footnote-1317245
++Ref: Close Files And Pipes-Footnote-2317393
++Node: Nonfatal317543
++Node: Output Summary319868
++Node: Output Exercises321089
++Node: Expressions321769
++Node: Values322958
++Node: Constants323635
++Node: Scalar Constants324326
++Ref: Scalar Constants-Footnote-1325188
++Node: Nondecimal-numbers325438
++Node: Regexp Constants328448
++Node: Using Constant Regexps328974
++Node: Variables332137
++Node: Using Variables332794
++Node: Assignment Options334705
++Node: Conversion336580
++Node: Strings And Numbers337104
++Ref: Strings And Numbers-Footnote-1340169
++Node: Locale influences conversions340278
++Ref: table-locale-affects343024
++Node: All Operators343616
++Node: Arithmetic Ops344245
++Node: Concatenation346750
++Ref: Concatenation-Footnote-1349569
++Node: Assignment Ops349676
++Ref: table-assign-ops354655
++Node: Increment Ops355965
++Node: Truth Values and Conditions359396
++Node: Truth Values360479
++Node: Typing and Comparison361528
++Node: Variable Typing362344
++Node: Comparison Operators366011
++Ref: table-relational-ops366421
++Node: POSIX String Comparison369916
++Ref: POSIX String Comparison-Footnote-1370988
++Node: Boolean Ops371127
++Ref: Boolean Ops-Footnote-1375605
++Node: Conditional Exp375696
++Node: Function Calls377434
++Node: Precedence381314
++Node: Locales384974
++Node: Expressions Summary386606
++Node: Patterns and Actions389177
++Node: Pattern Overview390297
++Node: Regexp Patterns391976
++Node: Expression Patterns392519
++Node: Ranges396299
++Node: BEGIN/END399406
++Node: Using BEGIN/END400167
++Ref: Using BEGIN/END-Footnote-1402903
++Node: I/O And BEGIN/END403009
++Node: BEGINFILE/ENDFILE405324
++Node: Empty408221
++Node: Using Shell Variables408538
++Node: Action Overview410811
++Node: Statements413137
++Node: If Statement414985
++Node: While Statement416480
++Node: Do Statement418508
++Node: For Statement419656
++Node: Switch Statement422814
++Node: Break Statement425196
++Node: Continue Statement427289
++Node: Next Statement429116
++Node: Nextfile Statement431497
++Node: Exit Statement434125
++Node: Built-in Variables436536
++Node: User-modified437669
++Ref: User-modified-Footnote-1445303
++Node: Auto-set445365
++Ref: Auto-set-Footnote-1459598
++Ref: Auto-set-Footnote-2459803
++Node: ARGC and ARGV459859
++Node: Pattern Action Summary464077
++Node: Arrays466510
++Node: Array Basics467839
++Node: Array Intro468683
++Ref: figure-array-elements470620
++Ref: Array Intro-Footnote-1473243
++Node: Reference to Elements473371
++Node: Assigning Elements475833
++Node: Array Example476324
++Node: Scanning an Array478083
++Node: Controlling Scanning481106
++Ref: Controlling Scanning-Footnote-1486500
++Node: Numeric Array Subscripts486816
++Node: Uninitialized Subscripts489001
++Node: Delete490618
++Ref: Delete-Footnote-1493367
++Node: Multidimensional493424
++Node: Multiscanning496521
++Node: Arrays of Arrays498110
++Node: Arrays Summary502864
++Node: Functions504955
++Node: Built-in505994
++Node: Calling Built-in507072
++Node: Numeric Functions509067
++Ref: Numeric Functions-Footnote-1513885
++Ref: Numeric Functions-Footnote-2514242
++Ref: Numeric Functions-Footnote-3514290
++Node: String Functions514562
++Ref: String Functions-Footnote-1538063
++Ref: String Functions-Footnote-2538192
++Ref: String Functions-Footnote-3538440
++Node: Gory Details538527
++Ref: table-sub-escapes540308
++Ref: table-sub-proposed541823
++Ref: table-posix-sub543185
++Ref: table-gensub-escapes544722
++Ref: Gory Details-Footnote-1545555
++Node: I/O Functions545706
++Ref: I/O Functions-Footnote-1552942
++Node: Time Functions553089
++Ref: Time Functions-Footnote-1563598
++Ref: Time Functions-Footnote-2563666
++Ref: Time Functions-Footnote-3563824
++Ref: Time Functions-Footnote-4563935
++Ref: Time Functions-Footnote-5564047
++Ref: Time Functions-Footnote-6564274
++Node: Bitwise Functions564540
++Ref: table-bitwise-ops565102
++Ref: Bitwise Functions-Footnote-1569430
++Node: Type Functions569602
++Node: I18N Functions570754
++Node: User-defined572401
++Node: Definition Syntax573206
++Ref: Definition Syntax-Footnote-1578865
++Node: Function Example578936
++Ref: Function Example-Footnote-1581857
++Node: Function Caveats581879
++Node: Calling A Function582397
++Node: Variable Scope583355
++Node: Pass By Value/Reference586348
++Node: Return Statement589845
++Node: Dynamic Typing592824
++Node: Indirect Calls593753
++Ref: Indirect Calls-Footnote-1603618
++Node: Functions Summary603746
++Node: Library Functions606448
++Ref: Library Functions-Footnote-1610056
++Ref: Library Functions-Footnote-2610199
++Node: Library Names610370
++Ref: Library Names-Footnote-1613828
++Ref: Library Names-Footnote-2614051
++Node: General Functions614137
++Node: Strtonum Function615240
++Node: Assert Function618262
++Node: Round Function621586
++Node: Cliff Random Function623127
++Node: Ordinal Functions624143
++Ref: Ordinal Functions-Footnote-1627206
++Ref: Ordinal Functions-Footnote-2627458
++Node: Join Function627669
++Ref: Join Function-Footnote-1629439
++Node: Getlocaltime Function629639
++Node: Readfile Function633383
++Node: Shell Quoting635355
++Node: Data File Management636756
++Node: Filetrans Function637388
++Node: Rewind Function641484
++Node: File Checking642870
++Ref: File Checking-Footnote-1644203
++Node: Empty Files644404
++Node: Ignoring Assigns646383
++Node: Getopt Function647933
++Ref: Getopt Function-Footnote-1659397
++Node: Passwd Functions659597
++Ref: Passwd Functions-Footnote-1668437
++Node: Group Functions668525
++Ref: Group Functions-Footnote-1676422
++Node: Walking Arrays676627
++Node: Library Functions Summary679633
++Node: Library Exercises681035
++Node: Sample Programs682315
++Node: Running Examples683085
++Node: Clones683813
++Node: Cut Program685037
++Node: Egrep Program694757
++Ref: Egrep Program-Footnote-1702260
++Node: Id Program702370
++Node: Split Program706046
++Ref: Split Program-Footnote-1709500
++Node: Tee Program709628
++Node: Uniq Program712417
++Node: Wc Program719836
++Ref: Wc Program-Footnote-1724086
++Node: Miscellaneous Programs724180
++Node: Dupword Program725393
++Node: Alarm Program727424
++Node: Translate Program732229
++Ref: Translate Program-Footnote-1736792
++Node: Labels Program737062
++Ref: Labels Program-Footnote-1740413
++Node: Word Sorting740497
++Node: History Sorting744567
++Node: Extract Program746402
++Node: Simple Sed753926
++Node: Igawk Program756996
++Ref: Igawk Program-Footnote-1771322
++Ref: Igawk Program-Footnote-2771523
++Ref: Igawk Program-Footnote-3771645
++Node: Anagram Program771760
++Node: Signature Program774821
++Node: Programs Summary776068
++Node: Programs Exercises777289
++Ref: Programs Exercises-Footnote-1781420
++Node: Advanced Features781511
++Node: Nondecimal Data783493
++Node: Array Sorting785083
++Node: Controlling Array Traversal785783
++Ref: Controlling Array Traversal-Footnote-1794149
++Node: Array Sorting Functions794267
++Ref: Array Sorting Functions-Footnote-1798153
++Node: Two-way I/O798349
++Ref: Two-way I/O-Footnote-1803294
++Ref: Two-way I/O-Footnote-2803480
++Node: TCP/IP Networking803562
++Node: Profiling806434
++Node: Advanced Features Summary814705
++Node: Internationalization816638
++Node: I18N and L10N818118
++Node: Explaining gettext818804
++Ref: Explaining gettext-Footnote-1823829
++Ref: Explaining gettext-Footnote-2824013
++Node: Programmer i18n824178
++Ref: Programmer i18n-Footnote-1829054
++Node: Translator i18n829103
++Node: String Extraction829897
++Ref: String Extraction-Footnote-1831028
++Node: Printf Ordering831114
++Ref: Printf Ordering-Footnote-1833900
++Node: I18N Portability833964
++Ref: I18N Portability-Footnote-1836420
++Node: I18N Example836483
++Ref: I18N Example-Footnote-1839286
++Node: Gawk I18N839358
++Node: I18N Summary840002
++Node: Debugger841342
++Node: Debugging842364
++Node: Debugging Concepts842805
++Node: Debugging Terms844615
++Node: Awk Debugging847187
++Node: Sample Debugging Session848093
++Node: Debugger Invocation848627
++Node: Finding The Bug850012
++Node: List of Debugger Commands856491
++Node: Breakpoint Control857823
++Node: Debugger Execution Control861500
++Node: Viewing And Changing Data864859
++Node: Execution Stack868235
++Node: Debugger Info869870
++Node: Miscellaneous Debugger Commands873915
++Node: Readline Support878916
++Node: Limitations879810
++Node: Debugging Summary881925
++Node: Arbitrary Precision Arithmetic883099
++Node: Computer Arithmetic884515
++Ref: table-numeric-ranges888092
++Ref: Computer Arithmetic-Footnote-1888616
++Node: Math Definitions888673
++Ref: table-ieee-formats891968
++Ref: Math Definitions-Footnote-1892572
++Node: MPFR features892677
++Node: FP Math Caution894348
++Ref: FP Math Caution-Footnote-1895398
++Node: Inexactness of computations895767
++Node: Inexact representation896726
++Node: Comparing FP Values898084
++Node: Errors accumulate899166
++Node: Getting Accuracy900598
++Node: Try To Round903302
++Node: Setting precision904201
++Ref: table-predefined-precision-strings904885
++Node: Setting the rounding mode906714
++Ref: table-gawk-rounding-modes907078
++Ref: Setting the rounding mode-Footnote-1910530
++Node: Arbitrary Precision Integers910709
++Ref: Arbitrary Precision Integers-Footnote-1915607
++Node: POSIX Floating Point Problems915756
++Ref: POSIX Floating Point Problems-Footnote-1919635
++Node: Floating point summary919673
++Node: Dynamic Extensions921860
++Node: Extension Intro923412
++Node: Plugin License924677
++Node: Extension Mechanism Outline925474
++Ref: figure-load-extension925902
++Ref: figure-register-new-function927382
++Ref: figure-call-new-function928386
++Node: Extension API Description930373
++Node: Extension API Functions Introduction931907
++Node: General Data Types936776
++Ref: General Data Types-Footnote-1942676
++Node: Memory Allocation Functions942975
++Ref: Memory Allocation Functions-Footnote-1945814
++Node: Constructor Functions945913
++Node: Registration Functions947652
++Node: Extension Functions948337
++Node: Exit Callback Functions950634
++Node: Extension Version String951882
++Node: Input Parsers952545
++Node: Output Wrappers962420
++Node: Two-way processors966933
++Node: Printing Messages969196
++Ref: Printing Messages-Footnote-1970272
++Node: Updating `ERRNO'970424
++Node: Requesting Values971164
++Ref: table-value-types-returned971891
++Node: Accessing Parameters972848
++Node: Symbol Table Access974082
++Node: Symbol table by name974596
++Node: Symbol table by cookie976616
++Ref: Symbol table by cookie-Footnote-1980761
++Node: Cached values980824
++Ref: Cached values-Footnote-1984320
++Node: Array Manipulation984411
++Ref: Array Manipulation-Footnote-1985501
++Node: Array Data Types985538
++Ref: Array Data Types-Footnote-1988193
++Node: Array Functions988285
++Node: Flattening Arrays992144
++Node: Creating Arrays999046
++Node: Redirection API1003817
++Node: Extension API Variables1006588
++Node: Extension Versioning1007221
++Node: Extension API Informational Variables1009112
++Node: Extension API Boilerplate1010177
++Node: Finding Extensions1013986
++Node: Extension Example1014546
++Node: Internal File Description1015318
++Node: Internal File Ops1019385
++Ref: Internal File Ops-Footnote-11031136
++Node: Using Internal File Ops1031276
++Ref: Using Internal File Ops-Footnote-11033659
++Node: Extension Samples1033932
++Node: Extension Sample File Functions1035460
++Node: Extension Sample Fnmatch1043141
++Node: Extension Sample Fork1044629
++Node: Extension Sample Inplace1045844
++Node: Extension Sample Ord1047930
++Node: Extension Sample Readdir1048766
++Ref: table-readdir-file-types1049643
++Node: Extension Sample Revout1050454
++Node: Extension Sample Rev2way1051043
++Node: Extension Sample Read write array1051783
++Node: Extension Sample Readfile1053723
++Node: Extension Sample Time1054818
++Node: Extension Sample API Tests1056166
++Node: gawkextlib1056657
++Node: Extension summary1059335
++Node: Extension Exercises1063024
++Node: Language History1063746
++Node: V7/SVR3.11065402
++Node: SVR41067555
++Node: POSIX1068989
++Node: BTL1070370
++Node: POSIX/GNU1071101
++Node: Feature History1076937
++Node: Common Extensions1090731
++Node: Ranges and Locales1092103
++Ref: Ranges and Locales-Footnote-11096722
++Ref: Ranges and Locales-Footnote-21096749
++Ref: Ranges and Locales-Footnote-31096984
++Node: Contributors1097205
++Node: History summary1102745
++Node: Installation1104124
++Node: Gawk Distribution1105070
++Node: Getting1105554
++Node: Extracting1106377
++Node: Distribution contents1108014
++Node: Unix Installation1114116
++Node: Quick Installation1114799
++Node: Shell Startup Files1117210
++Node: Additional Configuration Options1118289
++Node: Configuration Philosophy1120093
++Node: Non-Unix Installation1122462
++Node: PC Installation1122920
++Node: PC Binary Installation1124240
++Node: PC Compiling1126088
++Ref: PC Compiling-Footnote-11129109
++Node: PC Testing1129218
++Node: PC Using1130394
++Node: Cygwin1134509
++Node: MSYS1135279
++Node: VMS Installation1135780
++Node: VMS Compilation1136572
++Ref: VMS Compilation-Footnote-11137801
++Node: VMS Dynamic Extensions1137859
++Node: VMS Installation Details1139543
++Node: VMS Running1141794
++Node: VMS GNV1144634
++Node: VMS Old Gawk1145369
++Node: Bugs1145839
++Node: Other Versions1149728
++Node: Installation summary1156162
++Node: Notes1157221
++Node: Compatibility Mode1158086
++Node: Additions1158868
++Node: Accessing The Source1159793
++Node: Adding Code1161228
++Node: New Ports1167385
++Node: Derived Files1171867
++Ref: Derived Files-Footnote-11177342
++Ref: Derived Files-Footnote-21177376
++Ref: Derived Files-Footnote-31177972
++Node: Future Extensions1178086
++Node: Implementation Limitations1178692
++Node: Extension Design1179940
++Node: Old Extension Problems1181094
++Ref: Old Extension Problems-Footnote-11182611
++Node: Extension New Mechanism Goals1182668
++Ref: Extension New Mechanism Goals-Footnote-11186028
++Node: Extension Other Design Decisions1186217
++Node: Extension Future Growth1188325
++Node: Old Extension Mechanism1189161
++Node: Notes summary1190923
++Node: Basic Concepts1192109
++Node: Basic High Level1192790
++Ref: figure-general-flow1193062
++Ref: figure-process-flow1193661
++Ref: Basic High Level-Footnote-11196890
++Node: Basic Data Typing1197075
++Node: Glossary1200403
++Node: Copying1232332
++Node: GNU Free Documentation License1269888
++Node: Index1295024
  
  End Tag Table
diff --cc doc/gawk.texi
index cc215c6,8005fe3..68d3587
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@@ -31591,12 -31644,8 +31697,12 @@@ Creating a new arra
  Clearing an array
  
  @item
- Flattening an array for easy C style looping over all its indices and elements
+ Flattening an array for easy C-style looping over all its indices and elements
  @end itemize
 +
 address@hidden
 +Accessing and manipulating redirections.
 +
  @end itemize
  
  Some points about using the API:
diff --cc doc/gawktexi.in
index b713471,88e854a..6991f8a
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@@ -30683,12 -30735,8 +30788,12 @@@ Creating a new arra
  Clearing an array
  
  @item
- Flattening an array for easy C style looping over all its indices and elements
+ Flattening an array for easy C-style looping over all its indices and elements
  @end itemize
 +
 address@hidden
 +Accessing and manipulating redirections.
 +
  @end itemize
  
  Some points about using the API:
diff --cc gawkapi.c
index f8d0498,3b49545..01bfa76
--- a/gawkapi.c
+++ b/gawkapi.c
@@@ -1041,90 -1034,6 +1041,90 @@@ api_release_value(awk_ext_id_t id, awk_
        return awk_true;
  }
  
 +/* api_get_file --- return a handle to an existing or newly opened file */
 +
 +static awk_bool_t
 +api_get_file(awk_ext_id_t id, const char *name, size_t namelen, const char 
*filetype, int fd, const awk_input_buf_t **ibufp, const awk_output_buf_t 
**obufp)
 +{
 +      const struct redirect *f;
 +      int flag;       /* not used, sigh */
 +      enum redirval redirtype;
 +
 +      if ((name == NULL) || (namelen == 0)) {
 +              if (curfile == NULL) {
 +                      if (nextfile(& curfile, false) <= 0)
 +                              return awk_false;
 +                      {
 +                              INSTRUCTION *pc = main_beginfile;
 +                              /* save execution state */
 +                              int save_rule = currule;
 +                              char *save_source = source;
 +
 +                              while (1) {
 +                                      if (!pc)
 +                                              fatal(_("cannot find end of 
BEGINFILE rule"));
 +                                      if (pc->opcode == Op_after_beginfile)
 +                                              break;
 +                                      pc = pc->nexti;
 +                              }
 +                              pc->opcode = Op_stop;
 +                              (void) (*interpret)(main_beginfile);
 +                              pc->opcode = Op_after_beginfile;
 +                              after_beginfile(& curfile);
 +                              /* restore execution state */
 +                              currule = save_rule;
 +                              source = save_source;
 +                      }
 +              }
 +              *ibufp = &curfile->public;
 +              *obufp = NULL;
 +              return awk_true;
 +      }
 +      redirtype = redirect_none;
 +      switch (filetype[0]) {
 +      case '<':
 +              if (filetype[1] == '\0')
 +                      redirtype = redirect_input;
 +              break;
 +      case '>':
 +              switch (filetype[1]) {
 +              case '\0':
 +                      redirtype = redirect_output;
 +                      break;
 +              case '>':
 +                      if (filetype[2] == '\0')
 +                              redirtype = redirect_append;
 +                      break;
 +              }
 +              break;
 +      case '|':
 +              if (filetype[2] == '\0') {
 +                      switch (filetype[1]) {
 +                      case '>':
 +                              redirtype = redirect_pipe;
 +                              break;
 +                      case '<':
 +                              redirtype = redirect_pipein;
 +                              break;
 +                      case '&':
 +                              redirtype = redirect_twoway;
 +                              break;
 +                      }
 +              }
 +              break;
 +      }
 +      if (redirtype == redirect_none) {
 +              warning(_("cannot open unrecognized file type `%s' for `%s'"),
 +                      filetype, name);
 +              return awk_false;
 +      }
-       if ((f = redirect_string(name, namelen, 0, redirtype, &flag, fd)) == 
NULL)
++      if ((f = redirect_string(name, namelen, 0, redirtype, &flag, fd, 
false)) == NULL)
 +              return awk_false;
 +      *ibufp = f->iop ? & f->iop->public : NULL;
 +      *obufp = f->output.fp ? & f->output : NULL;
 +      return awk_true;
 +}
 +
  /*
   * Register a version string for this extension with gawk.
   */
diff --cc io.c
index f849f83,55c5d3a..5f97735
--- a/io.c
+++ b/io.c
@@@ -728,9 -726,10 +727,10 @@@ redflags2str(int flags
  /* redirect --- Redirection for printf and print commands */
  
  struct redirect *
- redirect_string(const char *str, size_t explen, int not_string, int 
redirtype, int *errflg, int extfd)
 -redirect(NODE *redir_exp, int redirtype, int *errflg, bool failure_fatal)
++redirect_string(const char *str, size_t explen, bool not_string,
++              int redirtype, int *errflg, int extfd, bool failure_fatal)
  {
        struct redirect *rp;
 -      char *str;
        int tflag = 0;
        int outflag = 0;
        const char *direction = "to";
@@@ -933,16 -930,9 +939,15 @@@
                        }
                        break;
                case redirect_twoway:
 +#ifndef HAVE_SOCKETS
 +                      if (extfd >= 0) {
 +                              warning(_("get_file socket creation not 
supported on this platform for `%s' with fd %d"), str, extfd);
 +                              return NULL;
 +                      }
 +#endif
                        direction = "to/from";
 -                      if (! two_way_open(str, rp)) {
 +                      if (! two_way_open(str, rp, extfd)) {
- #ifdef HAVE_SOCKETS
-                               if (inetfile(str, NULL)) {
+                               if (! failure_fatal || 
is_non_fatal_redirect(str)) {
                                        *errflg = errno;
                                        /* do not free rp, saving it for reuse 
(save_rp = rp) */
                                        return NULL;
@@@ -1058,15 -1050,6 +1065,15 @@@
        return rp;
  }
  
 +struct redirect *
- redirect(NODE *redir_exp, int redirtype, int *errflg)
++redirect(NODE *redir_exp, int redirtype, int *errflg, bool failure_fatal)
 +{
 +      int not_string = ((redir_exp->flags & STRCUR) == 0);
 +      redir_exp = force_string(redir_exp);
 +      return redirect_string(redir_exp->stptr, redir_exp->stlen, not_string,
-                               redirtype, errflg, -1);
++                              redirtype, errflg, -1, failure_fatal);
 +}
 +
  /* getredirect --- find the struct redirect for this file or pipe */
  
  struct redirect *
diff --cc test/Makefile.am
index 873b0a7,d2cd0dd..2d3e353
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@@ -1041,8 -1047,8 +1056,8 @@@ 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 errno 
exit \
-       fieldwdth fpat1 fpat2 fpat3  fpatnull fsfwfs funlen \
 -      colonwarn clos1way crlf dbugeval delsub devfd devfd1 devfd2 dumpvars 
exit \
++      colonwarn clos1way crlf dbugeval delsub devfd devfd1 devfd2 dumpvars 
errno exit \
+       fieldwdth fpat1 fpat2 fpat3 fpat4 fpatnull fsfwfs funlen \
        functab1 functab2 functab3 fwtest fwtest2 fwtest3 \
        genpot gensub gensub2 getlndir gnuops2 gnuops3 gnureops \
        icasefs icasers id igncdym igncfs ignrcas2 ignrcase \
diff --cc test/Makefile.in
index 09de671,cf8093b..5a3f5b0
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@@ -1297,8 -1303,8 +1312,8 @@@ 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 errno 
exit \
-       fieldwdth fpat1 fpat2 fpat3  fpatnull fsfwfs funlen \
 -      colonwarn clos1way crlf dbugeval delsub devfd devfd1 devfd2 dumpvars 
exit \
++      colonwarn clos1way crlf dbugeval delsub devfd devfd1 devfd2 dumpvars 
errno exit \
+       fieldwdth fpat1 fpat2 fpat3 fpat4 fpatnull fsfwfs funlen \
        functab1 functab2 functab3 fwtest fwtest2 fwtest3 \
        genpot gensub gensub2 getlndir gnuops2 gnuops3 gnureops \
        icasefs icasers id igncdym igncfs ignrcas2 ignrcase \

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                           |  120 ++
 NEWS                                |   14 +-
 POSIX.STD                           |   17 +-
 TODO                                |    5 +-
 awk.h                               |    8 +-
 awkgram.c                           |   17 +-
 awkgram.y                           |   17 +-
 awklib/eg/lib/assert.awk            |    2 +-
 awklib/eg/lib/inplace.awk           |    9 +-
 awklib/eg/lib/quicksort.awk         |    5 +-
 awklib/eg/prog/anagram.awk          |    6 +-
 awklib/eg/prog/extract.awk          |    2 +-
 awklib/eg/prog/translate.awk        |    2 +-
 builtin.c                           |   37 +-
 config.guess                        |    6 +-
 config.sub                          |    8 +-
 configh.in                          |    3 -
 configure                           |  147 ++-
 configure.ac                        |   12 +-
 doc/ChangeLog                       |  108 ++-
 doc/gawk.info                       | 2956 ++++++++++++++++++-----------------
 doc/gawk.texi                       | 1641 +++++++++++---------
 doc/gawktexi.in                     | 1638 +++++++++++---------
 doc/texinfo.tex                     |  150 ++-
 eval.c                              |    6 +-
 extension/ChangeLog                 |   24 +
 extension/Makefile.am               |    3 +-
 extension/Makefile.in               |    3 +-
 extension/build-aux/ChangeLog       |    4 +
 extension/build-aux/config.guess    |    6 +-
 extension/build-aux/config.sub      |    8 +-
 extension/build-aux/ltmain.sh       |   23 +-
 extension/configure                 |   45 +-
 extension/filefuncs.c               |    2 +-
 extension/inplace.3am               |   18 +-
 extension/inplace.c                 |    4 +-
 extension/m4/ChangeLog              |    4 +
 extension/m4/libtool.m4             |   27 +-
 extension/m4/ltversion.m4           |   10 +-
 gawkapi.c                           |    4 +-
 gawkapi.h                           |    2 +-
 io.c                                |  147 ++-
 main.c                              |    4 +-
 missing_d/ChangeLog                 |    6 +
 missing_d/getaddrinfo.c             |   16 +-
 missing_d/getaddrinfo.h             |    2 +
 po/ca.gmo                           |  Bin 83005 -> 82049 bytes
 po/ca.po                            | 1077 +++++++------
 po/da.gmo                           |  Bin 42160 -> 41373 bytes
 po/da.po                            | 1079 +++++++------
 po/de.gmo                           |  Bin 45199 -> 83971 bytes
 po/de.po                            | 1561 +++++++++++--------
 po/es.gmo                           |  Bin 44600 -> 43722 bytes
 po/es.po                            | 1084 +++++++------
 po/fi.gmo                           |  Bin 84555 -> 83703 bytes
 po/fi.po                            | 1082 +++++++------
 po/fr.gmo                           |  Bin 85628 -> 84606 bytes
 po/fr.po                            | 1077 +++++++------
 po/gawk.pot                         | 1040 +++++++------
 po/it.gmo                           |  Bin 81018 -> 81863 bytes
 po/it.po                            |  707 +++++----
 po/ja.gmo                           |  Bin 52559 -> 51602 bytes
 po/ja.po                            | 1079 +++++++------
 po/ms.gmo                           |  Bin 1184 -> 1183 bytes
 po/ms.po                            | 1038 +++++++------
 po/nl.gmo                           |  Bin 80863 -> 80070 bytes
 po/nl.po                            | 1082 +++++++------
 po/pl.gmo                           |  Bin 71101 -> 70252 bytes
 po/pl.po                            | 1082 +++++++------
 po/sv.gmo                           |  Bin 80917 -> 79966 bytes
 po/sv.po                            | 1075 +++++++------
 po/vi.gmo                           |  Bin 93025 -> 91989 bytes
 po/vi.po                            | 1077 +++++++------
 profile.c                           |   27 +-
 re.c                                |   37 -
 regcomp.c                           |   18 +-
 regex.c                             |    2 +-
 regex.h                             |    2 +-
 regex_internal.c                    |    2 +-
 regex_internal.h                    |    5 +-
 regexec.c                           |   10 +-
 symbol.c                            |    4 +-
 test/ChangeLog                      |   71 +
 test/Makefile.am                    |   37 +-
 test/Makefile.in                    |   62 +-
 test/Maketests                      |   25 +
 test/crlf.awk                       |   11 +
 test/crlf.ok                        |    3 +
 test/fpat4.awk                      |  105 ++
 test/fpat4.ok                       |   65 +
 test/inplace1.ok                    |    2 +-
 test/inplace2.ok                    |    2 +-
 test/inplace3.ok                    |    4 +-
 test/mpfrmemok1.awk                 |    7 +
 test/mpfrmemok1.ok                  |    7 +
 test/nonfatal1.awk                  |    6 +
 test/nonfatal1.ok                   |    2 +
 test/nonfatal2.awk                  |    5 +
 test/nonfatal2.ok                   |    1 +
 test/nonfatal3.awk                  |    6 +
 test/{arrayprm3.ok => nonfatal3.ok} |    0
 test/profile0.awk                   |    1 +
 test/{clsflnam.in => profile0.in}   |    1 -
 test/profile0.ok                    |    6 +
 104 files changed, 12640 insertions(+), 10334 deletions(-)
 mode change 100755 => 100644 test/charasbytes.awk
 create mode 100644 test/crlf.awk
 create mode 100644 test/crlf.ok
 create mode 100644 test/fpat4.awk
 create mode 100644 test/fpat4.ok
 create mode 100644 test/mpfrmemok1.awk
 create mode 100644 test/mpfrmemok1.ok
 create mode 100644 test/nonfatal1.awk
 create mode 100644 test/nonfatal1.ok
 create mode 100644 test/nonfatal2.awk
 create mode 100644 test/nonfatal2.ok
 create mode 100644 test/nonfatal3.awk
 copy test/{arrayprm3.ok => nonfatal3.ok} (100%)
 mode change 100755 => 100644 test/ofs1.awk
 create mode 100644 test/profile0.awk
 copy test/{clsflnam.in => profile0.in} (66%)
 create mode 100644 test/profile0.ok
 mode change 100755 => 100644 test/range1.awk
 mode change 100755 => 100644 test/sortglos.awk
 mode change 100755 => 100644 test/sortglos.in


hooks/post-receive
-- 
gawk



reply via email to

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