gawk-diffs
[Top][All Lists]
Advanced

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

[gawk-diffs] [SCM] gawk branch, non-fatal-io, updated. gawk-4.1.0-1024-g


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, non-fatal-io, updated. gawk-4.1.0-1024-gd6e2005
Date: Wed, 24 Dec 2014 18:41:59 +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, non-fatal-io has been updated
       via  d6e200568261f51fd007895516da1a06851d4481 (commit)
       via  15fba5cef614e836b6ed35543b8e7ae49f52a450 (commit)
       via  27fa47040717ac1b917a083eaac0c8468b4640f4 (commit)
       via  399ec4931adce151b7633f2b66b04d021d3ae78c (commit)
       via  45bba30a98164938c25b6ed3a574e5f8a175bbd7 (commit)
       via  5db85f61829f0b56001884c59c690200eb07742e (commit)
       via  734e898a91dc494506004c8c6a8057a363171bf1 (commit)
       via  969ee3cbf2255a508eca008c0b25d8a1f09bdeb3 (commit)
       via  0585c4e6f3d68846d56fe766675099b539e2cba9 (commit)
       via  5f4811bd1b91dd3b50a30a227e455738f5dcfe36 (commit)
       via  608116b9826d199c2df99d79fe6c0b39c4febb8b (commit)
       via  ba81a835d78656b966a81e3426af82ee903f97de (commit)
       via  06e47b84ed3eb2ec562ee9910d192853f351a0bc (commit)
      from  dcaab6dd8a28be8885ccc508c49b962a61ab09fe (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=d6e200568261f51fd007895516da1a06851d4481

commit d6e200568261f51fd007895516da1a06851d4481
Author: Arnold D. Robbins <address@hidden>
Date:   Wed Dec 24 20:41:46 2014 +0200

    Update TODO file.

diff --git a/TODO b/TODO
index 235ded0..3e8b458 100644
--- a/TODO
+++ b/TODO
@@ -1,4 +1,4 @@
-Sun Sep 28 22:19:10 IDT 2014
+Wed Dec 24 20:41:38 IST 2014
 ============================
 
 There were too many files tracking different thoughts and ideas for
@@ -44,9 +44,6 @@ Minor New Features
 
        Consider relaxing the strictness of --posix.
 
-       Make it possible to put print/printf + redirections into
-       an expression.
-
        ? Add an optional base to strtonum, allowing 2-36.
 
        ? Optional third argument for index indicating where to start the

http://git.sv.gnu.org/cgit/gawk.git/commit/?id=15fba5cef614e836b6ed35543b8e7ae49f52a450

commit 15fba5cef614e836b6ed35543b8e7ae49f52a450
Author: Arnold D. Robbins <address@hidden>
Date:   Wed Dec 24 20:41:09 2014 +0200

    Start on doc updates.

diff --git a/doc/ChangeLog b/doc/ChangeLog
index e6b1438..d49a77d 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,5 +1,9 @@
 2014-12-24         Arnold D. Robbins     <address@hidden>
 
+       * gawktexi.in: Start documenting nonfatal output.
+
+2014-12-24         Arnold D. Robbins     <address@hidden>
+
        * gawktexi.in: Add one more paragraph to new foreword.
        * gawktexi.in: Fix exponentiation in TeX mode. Thanks to
        Marco Curreli by way of Antonio Giovanni.
diff --git a/doc/gawk.info b/doc/gawk.info
index 37494e6..9249597 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -246,6 +246,7 @@ entitled "GNU Free Documentation License".
 * Special Caveats::                     Things to watch out for.
 * Close Files And Pipes::               Closing Input and Output Files and
                                         Pipes.
+* Nonfatal::                            Enabling Nonfatal Output.
 * Output Summary::                      Output summary.
 * Output Exercises::                    Exercises.
 * Values::                              Constants, Variables, and Regular
@@ -6119,6 +6120,7 @@ function.
                                 `gawk' allows access to inherited file
                                 descriptors.
 * Close Files And Pipes::       Closing Input and Output Files and Pipes.
+* Nonfatal::                    Enabling Nonfatal Output.
 * Output Summary::              Output summary.
 * Output Exercises::            Exercises.
 
@@ -7032,7 +7034,7 @@ that `gawk' provides:
      behavior.
 
 
-File: gawk.info,  Node: Close Files And Pipes,  Next: Output Summary,  Prev: 
Special Files,  Up: Printing
+File: gawk.info,  Node: Close Files And Pipes,  Next: Nonfatal,  Prev: Special 
Files,  Up: Printing
 
 5.9 Closing Input and Output Redirections
 =========================================
@@ -7201,9 +7203,56 @@ call. See the system manual pages for information on how 
to decode this
 value.
 
 
-File: gawk.info,  Node: Output Summary,  Next: Output Exercises,  Prev: Close 
Files And Pipes,  Up: Printing
+File: gawk.info,  Node: Nonfatal,  Next: Output Summary,  Prev: Close Files 
And Pipes,  Up: Printing
 
-5.10 Summary
+5.10 Enabling Nonfatal Output
+=============================
+
+This minor node describes a `gawk'-specific feature.
+
+   In standard `awk', output with `print' or `printf' to a nonexistent
+file, or some other I/O error (such as filling up the disk) is a fatal
+error.
+
+     $ gawk 'BEGIN { print "hi" > "/no/such/file" }'
+     error--> gawk: cmd. line:1: fatal: can't redirect to `/no/such/file' (No 
such file or directory)
+
+   `gawk' makes it possible to detect that an error has occurred,
+allowing you to possibly recover from the error, or at least print an
+error message of your choosing before exiting.  You can do this in one
+of two ways:
+
+   * For all output files, by assigning any value to
+     `PROCINFO["nonfatal"]'.
+
+   * On a per-file basis, by assigning any value to `PROCINFO[FILENAME,
+     "nonfatal"]'.  Here, FILENAME is the name of the file to which you
+     wish output to be nonfatal.
+
+   Once you have enabled nonfatal output, you must check `ERRNO' after
+every relevant `print' or `printf' statement to see if something went
+wrong.  It is also a good idea to initialize `ERRNO' to zero before
+attempting the output. For example:
+
+     $ gawk '
+     > BEGIN {
+     >     PROCINFO["nonfatal"] = 1
+     >     ERRNO = 0
+     >     print "hi" > "/no/such/file"
+     >     if (ERRNO) {
+     >         print("Output failed:", ERRNO) > "/dev/stderr"
+     >         exit 1
+     >     }
+     > }'
+     error--> Output failed: No such file or directory
+
+   Here, `gawk' did not produce a fatal error; instead it let the `awk'
+program code detect the problem and handle it.
+
+
+File: gawk.info,  Node: Output Summary,  Next: Output Exercises,  Prev: 
Nonfatal,  Up: Printing
+
+5.11 Summary
 ============
 
    * The `print' statement prints comma-separated expressions. Each
@@ -7225,11 +7274,16 @@ File: gawk.info,  Node: Output Summary,  Next: Output 
Exercises,  Prev: Close Fi
      For coprocesses, it is possible to close only one direction of the
      communications.
 
+   * Normally errors with `print' or `printf' are fatal.  `gawk' lets
+     you make output errors be nonfatal either for all files or on a
+     per-file basis. You must then check for errors after every
+     relevant output statement.
+
 
 
 File: gawk.info,  Node: Output Exercises,  Prev: Output Summary,  Up: Printing
 
-5.11 Exercises
+5.12 Exercises
 ==============
 
   1. Rewrite the program:
@@ -26931,6 +26985,24 @@ in POSIX `awk', in the order they were added to `gawk'.
      Dynamic Extensions::).
 
 
+   Version *FIXME* XXXX introduced the following changes:
+
+   * Changes to `ENVIRON' are reflected into `gawk''s environment and
+     that of programs that it runs.  *Note Auto-set::.
+
+   * The `--pretty-print' option no longer runs the `awk' program too.
+     FIXME: Add xref.
+
+   * The `igawk' program and its manual page are no longer installed
+     when `gawk' is built.  FIXME: Add xref.
+
+   * The `div()' function.  FIXME: Add xref.
+
+   * The maximum number of hexdecimal digits in `\x' escapes is now two.
+     FIXME: Add xref.
+
+   * Nonfatal output with `print' and `printf'.  *Note Nonfatal::.
+
 
 File: gawk.info,  Node: Common Extensions,  Next: Ranges and Locales,  Prev: 
Feature History,  Up: Language History
 
@@ -34453,560 +34525,561 @@ Index
 
 Tag Table:
 Node: Top1204
-Node: Foreword342225
-Node: Foreword446667
-Node: Preface48189
-Ref: Preface-Footnote-151060
-Ref: Preface-Footnote-251167
-Ref: Preface-Footnote-351400
-Node: History51542
-Node: Names53888
-Ref: Names-Footnote-154982
-Node: This Manual55128
-Ref: This Manual-Footnote-161615
-Node: Conventions61715
-Node: Manual History64053
-Ref: Manual History-Footnote-167035
-Ref: Manual History-Footnote-267076
-Node: How To Contribute67150
-Node: Acknowledgments68279
-Node: Getting Started73084
-Node: Running gawk75517
-Node: One-shot76707
-Node: Read Terminal77955
-Node: Long79982
-Node: Executable Scripts81498
-Ref: Executable Scripts-Footnote-184287
-Node: Comments84390
-Node: Quoting86872
-Node: DOS Quoting92396
-Node: Sample Data Files93071
-Node: Very Simple95666
-Node: Two Rules100564
-Node: More Complex102450
-Node: Statements/Lines105312
-Ref: Statements/Lines-Footnote-1109767
-Node: Other Features110032
-Node: When110963
-Ref: When-Footnote-1112717
-Node: Intro Summary112782
-Node: Invoking Gawk113665
-Node: Command Line115179
-Node: Options115977
-Ref: Options-Footnote-1131781
-Ref: Options-Footnote-2132010
-Node: Other Arguments132035
-Node: Naming Standard Input134983
-Node: Environment Variables136076
-Node: AWKPATH Variable136634
-Ref: AWKPATH Variable-Footnote-1140047
-Ref: AWKPATH Variable-Footnote-2140092
-Node: AWKLIBPATH Variable140352
-Node: Other Environment Variables141608
-Node: Exit Status145096
-Node: Include Files145772
-Node: Loading Shared Libraries149369
-Node: Obsolete150796
-Node: Undocumented151493
-Node: Invoking Summary151760
-Node: Regexp153424
-Node: Regexp Usage154878
-Node: Escape Sequences156915
-Node: Regexp Operators163156
-Ref: Regexp Operators-Footnote-1170582
-Ref: Regexp Operators-Footnote-2170729
-Node: Bracket Expressions170827
-Ref: table-char-classes172842
-Node: Leftmost Longest175766
-Node: Computed Regexps177068
-Node: GNU Regexp Operators180465
-Node: Case-sensitivity184138
-Ref: Case-sensitivity-Footnote-1187023
-Ref: Case-sensitivity-Footnote-2187258
-Node: Regexp Summary187366
-Node: Reading Files188833
-Node: Records190927
-Node: awk split records191660
-Node: gawk split records196575
-Ref: gawk split records-Footnote-1201119
-Node: Fields201156
-Ref: Fields-Footnote-1203932
-Node: Nonconstant Fields204018
-Ref: Nonconstant Fields-Footnote-1206261
-Node: Changing Fields206465
-Node: Field Separators212394
-Node: Default Field Splitting215099
-Node: Regexp Field Splitting216216
-Node: Single Character Fields219566
-Node: Command Line Field Separator220625
-Node: Full Line Fields223837
-Ref: Full Line Fields-Footnote-1225354
-Ref: Full Line Fields-Footnote-2225400
-Node: Field Splitting Summary225501
-Node: Constant Size227575
-Node: Splitting By Content232164
-Ref: Splitting By Content-Footnote-1236158
-Node: Multiple Line236321
-Ref: Multiple Line-Footnote-1242207
-Node: Getline242386
-Node: Plain Getline244598
-Node: Getline/Variable247238
-Node: Getline/File248386
-Node: Getline/Variable/File249770
-Ref: Getline/Variable/File-Footnote-1251373
-Node: Getline/Pipe251460
-Node: Getline/Variable/Pipe254143
-Node: Getline/Coprocess255274
-Node: Getline/Variable/Coprocess256526
-Node: Getline Notes257265
-Node: Getline Summary260057
-Ref: table-getline-variants260469
-Node: Read Timeout261298
-Ref: Read Timeout-Footnote-1265123
-Node: Command-line directories265181
-Node: Input Summary266086
-Node: Input Exercises269387
-Node: Printing270115
-Node: Print271892
-Node: Print Examples273349
-Node: Output Separators276128
-Node: OFMT278146
-Node: Printf279500
-Node: Basic Printf280285
-Node: Control Letters281855
-Node: Format Modifiers285838
-Node: Printf Examples291847
-Node: Redirection294333
-Node: Special FD301174
-Ref: Special FD-Footnote-1304334
-Node: Special Files304408
-Node: Other Inherited Files305025
-Node: Special Network306025
-Node: Special Caveats306887
-Node: Close Files And Pipes307838
-Ref: Close Files And Pipes-Footnote-1315020
-Ref: Close Files And Pipes-Footnote-2315168
-Node: Output Summary315318
-Node: Output Exercises316316
-Node: Expressions316996
-Node: Values318181
-Node: Constants318859
-Node: Scalar Constants319550
-Ref: Scalar Constants-Footnote-1320409
-Node: Nondecimal-numbers320659
-Node: Regexp Constants323677
-Node: Using Constant Regexps324202
-Node: Variables327345
-Node: Using Variables328000
-Node: Assignment Options329911
-Node: Conversion331786
-Node: Strings And Numbers332310
-Ref: Strings And Numbers-Footnote-1335375
-Node: Locale influences conversions335484
-Ref: table-locale-affects338231
-Node: All Operators338819
-Node: Arithmetic Ops339449
-Node: Concatenation341954
-Ref: Concatenation-Footnote-1344773
-Node: Assignment Ops344879
-Ref: table-assign-ops349858
-Node: Increment Ops351130
-Node: Truth Values and Conditions354568
-Node: Truth Values355653
-Node: Typing and Comparison356702
-Node: Variable Typing357512
-Node: Comparison Operators361165
-Ref: table-relational-ops361575
-Node: POSIX String Comparison365070
-Ref: POSIX String Comparison-Footnote-1366142
-Node: Boolean Ops366280
-Ref: Boolean Ops-Footnote-1370759
-Node: Conditional Exp370850
-Node: Function Calls372577
-Node: Precedence376457
-Node: Locales380118
-Node: Expressions Summary381750
-Node: Patterns and Actions384310
-Node: Pattern Overview385430
-Node: Regexp Patterns387109
-Node: Expression Patterns387652
-Node: Ranges391362
-Node: BEGIN/END394468
-Node: Using BEGIN/END395229
-Ref: Using BEGIN/END-Footnote-1397963
-Node: I/O And BEGIN/END398069
-Node: BEGINFILE/ENDFILE400383
-Node: Empty403284
-Node: Using Shell Variables403601
-Node: Action Overview405874
-Node: Statements408200
-Node: If Statement410048
-Node: While Statement411543
-Node: Do Statement413572
-Node: For Statement414716
-Node: Switch Statement417873
-Node: Break Statement420255
-Node: Continue Statement422296
-Node: Next Statement424123
-Node: Nextfile Statement426504
-Node: Exit Statement429134
-Node: Built-in Variables431537
-Node: User-modified432670
-Ref: User-modified-Footnote-1440351
-Node: Auto-set440413
-Ref: Auto-set-Footnote-1454105
-Ref: Auto-set-Footnote-2454310
-Node: ARGC and ARGV454366
-Node: Pattern Action Summary458584
-Node: Arrays461011
-Node: Array Basics462340
-Node: Array Intro463184
-Ref: figure-array-elements465148
-Ref: Array Intro-Footnote-1467674
-Node: Reference to Elements467802
-Node: Assigning Elements470254
-Node: Array Example470745
-Node: Scanning an Array472503
-Node: Controlling Scanning475519
-Ref: Controlling Scanning-Footnote-1480715
-Node: Numeric Array Subscripts481031
-Node: Uninitialized Subscripts483216
-Node: Delete484833
-Ref: Delete-Footnote-1487576
-Node: Multidimensional487633
-Node: Multiscanning490730
-Node: Arrays of Arrays492319
-Node: Arrays Summary497078
-Node: Functions499170
-Node: Built-in500069
-Node: Calling Built-in501147
-Node: Numeric Functions503138
-Ref: Numeric Functions-Footnote-1507957
-Ref: Numeric Functions-Footnote-2508314
-Ref: Numeric Functions-Footnote-3508362
-Node: String Functions508634
-Ref: String Functions-Footnote-1532109
-Ref: String Functions-Footnote-2532238
-Ref: String Functions-Footnote-3532486
-Node: Gory Details532573
-Ref: table-sub-escapes534354
-Ref: table-sub-proposed535874
-Ref: table-posix-sub537238
-Ref: table-gensub-escapes538774
-Ref: Gory Details-Footnote-1539606
-Node: I/O Functions539757
-Ref: I/O Functions-Footnote-1546975
-Node: Time Functions547122
-Ref: Time Functions-Footnote-1557610
-Ref: Time Functions-Footnote-2557678
-Ref: Time Functions-Footnote-3557836
-Ref: Time Functions-Footnote-4557947
-Ref: Time Functions-Footnote-5558059
-Ref: Time Functions-Footnote-6558286
-Node: Bitwise Functions558552
-Ref: table-bitwise-ops559114
-Ref: Bitwise Functions-Footnote-1563423
-Node: Type Functions563592
-Node: I18N Functions564743
-Node: User-defined566388
-Node: Definition Syntax567193
-Ref: Definition Syntax-Footnote-1572600
-Node: Function Example572671
-Ref: Function Example-Footnote-1575590
-Node: Function Caveats575612
-Node: Calling A Function576130
-Node: Variable Scope577088
-Node: Pass By Value/Reference580076
-Node: Return Statement583571
-Node: Dynamic Typing586552
-Node: Indirect Calls587481
-Ref: Indirect Calls-Footnote-1598783
-Node: Functions Summary598911
-Node: Library Functions601613
-Ref: Library Functions-Footnote-1605222
-Ref: Library Functions-Footnote-2605365
-Node: Library Names605536
-Ref: Library Names-Footnote-1608990
-Ref: Library Names-Footnote-2609213
-Node: General Functions609299
-Node: Strtonum Function610402
-Node: Assert Function613424
-Node: Round Function616748
-Node: Cliff Random Function618289
-Node: Ordinal Functions619305
-Ref: Ordinal Functions-Footnote-1622368
-Ref: Ordinal Functions-Footnote-2622620
-Node: Join Function622831
-Ref: Join Function-Footnote-1624600
-Node: Getlocaltime Function624800
-Node: Readfile Function628544
-Node: Shell Quoting630514
-Node: Data File Management631915
-Node: Filetrans Function632547
-Node: Rewind Function636603
-Node: File Checking637990
-Ref: File Checking-Footnote-1639322
-Node: Empty Files639523
-Node: Ignoring Assigns641502
-Node: Getopt Function643053
-Ref: Getopt Function-Footnote-1654515
-Node: Passwd Functions654715
-Ref: Passwd Functions-Footnote-1663552
-Node: Group Functions663640
-Ref: Group Functions-Footnote-1671534
-Node: Walking Arrays671747
-Node: Library Functions Summary673350
-Node: Library Exercises674751
-Node: Sample Programs676031
-Node: Running Examples676801
-Node: Clones677529
-Node: Cut Program678753
-Node: Egrep Program688472
-Ref: Egrep Program-Footnote-1695970
-Node: Id Program696080
-Node: Split Program699725
-Ref: Split Program-Footnote-1703173
-Node: Tee Program703301
-Node: Uniq Program706090
-Node: Wc Program713509
-Ref: Wc Program-Footnote-1717759
-Node: Miscellaneous Programs717853
-Node: Dupword Program719066
-Node: Alarm Program721097
-Node: Translate Program725901
-Ref: Translate Program-Footnote-1730466
-Node: Labels Program730736
-Ref: Labels Program-Footnote-1734087
-Node: Word Sorting734171
-Node: History Sorting738242
-Node: Extract Program740078
-Node: Simple Sed747603
-Node: Igawk Program750671
-Ref: Igawk Program-Footnote-1764995
-Ref: Igawk Program-Footnote-2765196
-Ref: Igawk Program-Footnote-3765318
-Node: Anagram Program765433
-Node: Signature Program768490
-Node: Programs Summary769737
-Node: Programs Exercises770930
-Ref: Programs Exercises-Footnote-1775061
-Node: Advanced Features775152
-Node: Nondecimal Data777100
-Node: Array Sorting778690
-Node: Controlling Array Traversal779387
-Ref: Controlling Array Traversal-Footnote-1787720
-Node: Array Sorting Functions787838
-Ref: Array Sorting Functions-Footnote-1791727
-Node: Two-way I/O791923
-Ref: Two-way I/O-Footnote-1796868
-Ref: Two-way I/O-Footnote-2797054
-Node: TCP/IP Networking797136
-Node: Profiling800009
-Node: Advanced Features Summary808286
-Node: Internationalization810219
-Node: I18N and L10N811699
-Node: Explaining gettext812385
-Ref: Explaining gettext-Footnote-1817410
-Ref: Explaining gettext-Footnote-2817594
-Node: Programmer i18n817759
-Ref: Programmer i18n-Footnote-1822625
-Node: Translator i18n822674
-Node: String Extraction823468
-Ref: String Extraction-Footnote-1824599
-Node: Printf Ordering824685
-Ref: Printf Ordering-Footnote-1827471
-Node: I18N Portability827535
-Ref: I18N Portability-Footnote-1829990
-Node: I18N Example830053
-Ref: I18N Example-Footnote-1832856
-Node: Gawk I18N832928
-Node: I18N Summary833566
-Node: Debugger834905
-Node: Debugging835927
-Node: Debugging Concepts836368
-Node: Debugging Terms838221
-Node: Awk Debugging840793
-Node: Sample Debugging Session841687
-Node: Debugger Invocation842207
-Node: Finding The Bug843591
-Node: List of Debugger Commands850066
-Node: Breakpoint Control851399
-Node: Debugger Execution Control855095
-Node: Viewing And Changing Data858459
-Node: Execution Stack861837
-Node: Debugger Info863474
-Node: Miscellaneous Debugger Commands867491
-Node: Readline Support872520
-Node: Limitations873412
-Node: Debugging Summary875526
-Node: Arbitrary Precision Arithmetic876694
-Node: Computer Arithmetic878110
-Ref: table-numeric-ranges881708
-Ref: Computer Arithmetic-Footnote-1882567
-Node: Math Definitions882624
-Ref: table-ieee-formats885912
-Ref: Math Definitions-Footnote-1886516
-Node: MPFR features886621
-Node: FP Math Caution888292
-Ref: FP Math Caution-Footnote-1889342
-Node: Inexactness of computations889711
-Node: Inexact representation890670
-Node: Comparing FP Values892027
-Node: Errors accumulate893109
-Node: Getting Accuracy894542
-Node: Try To Round897204
-Node: Setting precision898103
-Ref: table-predefined-precision-strings898787
-Node: Setting the rounding mode900576
-Ref: table-gawk-rounding-modes900940
-Ref: Setting the rounding mode-Footnote-1904395
-Node: Arbitrary Precision Integers904574
-Ref: Arbitrary Precision Integers-Footnote-1909473
-Node: POSIX Floating Point Problems909622
-Ref: POSIX Floating Point Problems-Footnote-1913495
-Node: Floating point summary913533
-Node: Dynamic Extensions915727
-Node: Extension Intro917279
-Node: Plugin License918545
-Node: Extension Mechanism Outline919342
-Ref: figure-load-extension919770
-Ref: figure-register-new-function921250
-Ref: figure-call-new-function922254
-Node: Extension API Description924240
-Node: Extension API Functions Introduction925690
-Node: General Data Types930514
-Ref: General Data Types-Footnote-1936253
-Node: Memory Allocation Functions936552
-Ref: Memory Allocation Functions-Footnote-1939391
-Node: Constructor Functions939487
-Node: Registration Functions941221
-Node: Extension Functions941906
-Node: Exit Callback Functions944203
-Node: Extension Version String945451
-Node: Input Parsers946116
-Node: Output Wrappers955995
-Node: Two-way processors960510
-Node: Printing Messages962714
-Ref: Printing Messages-Footnote-1963790
-Node: Updating `ERRNO'963942
-Node: Requesting Values964682
-Ref: table-value-types-returned965410
-Node: Accessing Parameters966367
-Node: Symbol Table Access967598
-Node: Symbol table by name968112
-Node: Symbol table by cookie970093
-Ref: Symbol table by cookie-Footnote-1974237
-Node: Cached values974300
-Ref: Cached values-Footnote-1977799
-Node: Array Manipulation977890
-Ref: Array Manipulation-Footnote-1978988
-Node: Array Data Types979025
-Ref: Array Data Types-Footnote-1981680
-Node: Array Functions981772
-Node: Flattening Arrays985626
-Node: Creating Arrays992518
-Node: Extension API Variables997289
-Node: Extension Versioning997925
-Node: Extension API Informational Variables999826
-Node: Extension API Boilerplate1000891
-Node: Finding Extensions1004700
-Node: Extension Example1005260
-Node: Internal File Description1006032
-Node: Internal File Ops1010099
-Ref: Internal File Ops-Footnote-11021769
-Node: Using Internal File Ops1021909
-Ref: Using Internal File Ops-Footnote-11024292
-Node: Extension Samples1024565
-Node: Extension Sample File Functions1026091
-Node: Extension Sample Fnmatch1033729
-Node: Extension Sample Fork1035220
-Node: Extension Sample Inplace1036435
-Node: Extension Sample Ord1038110
-Node: Extension Sample Readdir1038946
-Ref: table-readdir-file-types1039822
-Node: Extension Sample Revout1040633
-Node: Extension Sample Rev2way1041223
-Node: Extension Sample Read write array1041963
-Node: Extension Sample Readfile1043903
-Node: Extension Sample Time1044998
-Node: Extension Sample API Tests1046347
-Node: gawkextlib1046838
-Node: Extension summary1049496
-Node: Extension Exercises1053185
-Node: Language History1053907
-Node: V7/SVR3.11055563
-Node: SVR41057744
-Node: POSIX1059189
-Node: BTL1060578
-Node: POSIX/GNU1061312
-Node: Feature History1066936
-Node: Common Extensions1080034
-Node: Ranges and Locales1081358
-Ref: Ranges and Locales-Footnote-11085976
-Ref: Ranges and Locales-Footnote-21086003
-Ref: Ranges and Locales-Footnote-31086237
-Node: Contributors1086458
-Node: History summary1091999
-Node: Installation1093369
-Node: Gawk Distribution1094315
-Node: Getting1094799
-Node: Extracting1095622
-Node: Distribution contents1097257
-Node: Unix Installation1103322
-Node: Quick Installation1104005
-Node: Shell Startup Files1106416
-Node: Additional Configuration Options1107495
-Node: Configuration Philosophy1109234
-Node: Non-Unix Installation1111603
-Node: PC Installation1112061
-Node: PC Binary Installation1113380
-Node: PC Compiling1115228
-Ref: PC Compiling-Footnote-11118249
-Node: PC Testing1118358
-Node: PC Using1119534
-Node: Cygwin1123649
-Node: MSYS1124472
-Node: VMS Installation1124972
-Node: VMS Compilation1125764
-Ref: VMS Compilation-Footnote-11126986
-Node: VMS Dynamic Extensions1127044
-Node: VMS Installation Details1128728
-Node: VMS Running1130980
-Node: VMS GNV1133816
-Node: VMS Old Gawk1134550
-Node: Bugs1135020
-Node: Other Versions1138903
-Node: Installation summary1145331
-Node: Notes1146387
-Node: Compatibility Mode1147252
-Node: Additions1148034
-Node: Accessing The Source1148959
-Node: Adding Code1150395
-Node: New Ports1156560
-Node: Derived Files1161042
-Ref: Derived Files-Footnote-11166517
-Ref: Derived Files-Footnote-21166551
-Ref: Derived Files-Footnote-31167147
-Node: Future Extensions1167261
-Node: Implementation Limitations1167867
-Node: Extension Design1169115
-Node: Old Extension Problems1170269
-Ref: Old Extension Problems-Footnote-11171786
-Node: Extension New Mechanism Goals1171843
-Ref: Extension New Mechanism Goals-Footnote-11175203
-Node: Extension Other Design Decisions1175392
-Node: Extension Future Growth1177500
-Node: Old Extension Mechanism1178336
-Node: Notes summary1180098
-Node: Basic Concepts1181284
-Node: Basic High Level1181965
-Ref: figure-general-flow1182237
-Ref: figure-process-flow1182836
-Ref: Basic High Level-Footnote-11186065
-Node: Basic Data Typing1186250
-Node: Glossary1189578
-Node: Copying1214736
-Node: GNU Free Documentation License1252292
-Node: Index1277428
+Node: Foreword342291
+Node: Foreword446733
+Node: Preface48255
+Ref: Preface-Footnote-151126
+Ref: Preface-Footnote-251233
+Ref: Preface-Footnote-351466
+Node: History51608
+Node: Names53954
+Ref: Names-Footnote-155048
+Node: This Manual55194
+Ref: This Manual-Footnote-161681
+Node: Conventions61781
+Node: Manual History64119
+Ref: Manual History-Footnote-167101
+Ref: Manual History-Footnote-267142
+Node: How To Contribute67216
+Node: Acknowledgments68345
+Node: Getting Started73150
+Node: Running gawk75583
+Node: One-shot76773
+Node: Read Terminal78021
+Node: Long80048
+Node: Executable Scripts81564
+Ref: Executable Scripts-Footnote-184353
+Node: Comments84456
+Node: Quoting86938
+Node: DOS Quoting92462
+Node: Sample Data Files93137
+Node: Very Simple95732
+Node: Two Rules100630
+Node: More Complex102516
+Node: Statements/Lines105378
+Ref: Statements/Lines-Footnote-1109833
+Node: Other Features110098
+Node: When111029
+Ref: When-Footnote-1112783
+Node: Intro Summary112848
+Node: Invoking Gawk113731
+Node: Command Line115245
+Node: Options116043
+Ref: Options-Footnote-1131847
+Ref: Options-Footnote-2132076
+Node: Other Arguments132101
+Node: Naming Standard Input135049
+Node: Environment Variables136142
+Node: AWKPATH Variable136700
+Ref: AWKPATH Variable-Footnote-1140113
+Ref: AWKPATH Variable-Footnote-2140158
+Node: AWKLIBPATH Variable140418
+Node: Other Environment Variables141674
+Node: Exit Status145162
+Node: Include Files145838
+Node: Loading Shared Libraries149435
+Node: Obsolete150862
+Node: Undocumented151559
+Node: Invoking Summary151826
+Node: Regexp153490
+Node: Regexp Usage154944
+Node: Escape Sequences156981
+Node: Regexp Operators163222
+Ref: Regexp Operators-Footnote-1170648
+Ref: Regexp Operators-Footnote-2170795
+Node: Bracket Expressions170893
+Ref: table-char-classes172908
+Node: Leftmost Longest175832
+Node: Computed Regexps177134
+Node: GNU Regexp Operators180531
+Node: Case-sensitivity184204
+Ref: Case-sensitivity-Footnote-1187089
+Ref: Case-sensitivity-Footnote-2187324
+Node: Regexp Summary187432
+Node: Reading Files188899
+Node: Records190993
+Node: awk split records191726
+Node: gawk split records196641
+Ref: gawk split records-Footnote-1201185
+Node: Fields201222
+Ref: Fields-Footnote-1203998
+Node: Nonconstant Fields204084
+Ref: Nonconstant Fields-Footnote-1206327
+Node: Changing Fields206531
+Node: Field Separators212460
+Node: Default Field Splitting215165
+Node: Regexp Field Splitting216282
+Node: Single Character Fields219632
+Node: Command Line Field Separator220691
+Node: Full Line Fields223903
+Ref: Full Line Fields-Footnote-1225420
+Ref: Full Line Fields-Footnote-2225466
+Node: Field Splitting Summary225567
+Node: Constant Size227641
+Node: Splitting By Content232230
+Ref: Splitting By Content-Footnote-1236224
+Node: Multiple Line236387
+Ref: Multiple Line-Footnote-1242273
+Node: Getline242452
+Node: Plain Getline244664
+Node: Getline/Variable247304
+Node: Getline/File248452
+Node: Getline/Variable/File249836
+Ref: Getline/Variable/File-Footnote-1251439
+Node: Getline/Pipe251526
+Node: Getline/Variable/Pipe254209
+Node: Getline/Coprocess255340
+Node: Getline/Variable/Coprocess256592
+Node: Getline Notes257331
+Node: Getline Summary260123
+Ref: table-getline-variants260535
+Node: Read Timeout261364
+Ref: Read Timeout-Footnote-1265189
+Node: Command-line directories265247
+Node: Input Summary266152
+Node: Input Exercises269453
+Node: Printing270181
+Node: Print272016
+Node: Print Examples273473
+Node: Output Separators276252
+Node: OFMT278270
+Node: Printf279624
+Node: Basic Printf280409
+Node: Control Letters281979
+Node: Format Modifiers285962
+Node: Printf Examples291971
+Node: Redirection294457
+Node: Special FD301298
+Ref: Special FD-Footnote-1304458
+Node: Special Files304532
+Node: Other Inherited Files305149
+Node: Special Network306149
+Node: Special Caveats307011
+Node: Close Files And Pipes307962
+Ref: Close Files And Pipes-Footnote-1315138
+Ref: Close Files And Pipes-Footnote-2315286
+Node: Nonfatal315436
+Node: Output Summary317122
+Node: Output Exercises318343
+Node: Expressions319023
+Node: Values320208
+Node: Constants320886
+Node: Scalar Constants321577
+Ref: Scalar Constants-Footnote-1322436
+Node: Nondecimal-numbers322686
+Node: Regexp Constants325704
+Node: Using Constant Regexps326229
+Node: Variables329372
+Node: Using Variables330027
+Node: Assignment Options331938
+Node: Conversion333813
+Node: Strings And Numbers334337
+Ref: Strings And Numbers-Footnote-1337402
+Node: Locale influences conversions337511
+Ref: table-locale-affects340258
+Node: All Operators340846
+Node: Arithmetic Ops341476
+Node: Concatenation343981
+Ref: Concatenation-Footnote-1346800
+Node: Assignment Ops346906
+Ref: table-assign-ops351885
+Node: Increment Ops353157
+Node: Truth Values and Conditions356595
+Node: Truth Values357680
+Node: Typing and Comparison358729
+Node: Variable Typing359539
+Node: Comparison Operators363192
+Ref: table-relational-ops363602
+Node: POSIX String Comparison367097
+Ref: POSIX String Comparison-Footnote-1368169
+Node: Boolean Ops368307
+Ref: Boolean Ops-Footnote-1372786
+Node: Conditional Exp372877
+Node: Function Calls374604
+Node: Precedence378484
+Node: Locales382145
+Node: Expressions Summary383777
+Node: Patterns and Actions386337
+Node: Pattern Overview387457
+Node: Regexp Patterns389136
+Node: Expression Patterns389679
+Node: Ranges393389
+Node: BEGIN/END396495
+Node: Using BEGIN/END397256
+Ref: Using BEGIN/END-Footnote-1399990
+Node: I/O And BEGIN/END400096
+Node: BEGINFILE/ENDFILE402410
+Node: Empty405311
+Node: Using Shell Variables405628
+Node: Action Overview407901
+Node: Statements410227
+Node: If Statement412075
+Node: While Statement413570
+Node: Do Statement415599
+Node: For Statement416743
+Node: Switch Statement419900
+Node: Break Statement422282
+Node: Continue Statement424323
+Node: Next Statement426150
+Node: Nextfile Statement428531
+Node: Exit Statement431161
+Node: Built-in Variables433564
+Node: User-modified434697
+Ref: User-modified-Footnote-1442378
+Node: Auto-set442440
+Ref: Auto-set-Footnote-1456132
+Ref: Auto-set-Footnote-2456337
+Node: ARGC and ARGV456393
+Node: Pattern Action Summary460611
+Node: Arrays463038
+Node: Array Basics464367
+Node: Array Intro465211
+Ref: figure-array-elements467175
+Ref: Array Intro-Footnote-1469701
+Node: Reference to Elements469829
+Node: Assigning Elements472281
+Node: Array Example472772
+Node: Scanning an Array474530
+Node: Controlling Scanning477546
+Ref: Controlling Scanning-Footnote-1482742
+Node: Numeric Array Subscripts483058
+Node: Uninitialized Subscripts485243
+Node: Delete486860
+Ref: Delete-Footnote-1489603
+Node: Multidimensional489660
+Node: Multiscanning492757
+Node: Arrays of Arrays494346
+Node: Arrays Summary499105
+Node: Functions501197
+Node: Built-in502096
+Node: Calling Built-in503174
+Node: Numeric Functions505165
+Ref: Numeric Functions-Footnote-1509984
+Ref: Numeric Functions-Footnote-2510341
+Ref: Numeric Functions-Footnote-3510389
+Node: String Functions510661
+Ref: String Functions-Footnote-1534136
+Ref: String Functions-Footnote-2534265
+Ref: String Functions-Footnote-3534513
+Node: Gory Details534600
+Ref: table-sub-escapes536381
+Ref: table-sub-proposed537901
+Ref: table-posix-sub539265
+Ref: table-gensub-escapes540801
+Ref: Gory Details-Footnote-1541633
+Node: I/O Functions541784
+Ref: I/O Functions-Footnote-1549002
+Node: Time Functions549149
+Ref: Time Functions-Footnote-1559637
+Ref: Time Functions-Footnote-2559705
+Ref: Time Functions-Footnote-3559863
+Ref: Time Functions-Footnote-4559974
+Ref: Time Functions-Footnote-5560086
+Ref: Time Functions-Footnote-6560313
+Node: Bitwise Functions560579
+Ref: table-bitwise-ops561141
+Ref: Bitwise Functions-Footnote-1565450
+Node: Type Functions565619
+Node: I18N Functions566770
+Node: User-defined568415
+Node: Definition Syntax569220
+Ref: Definition Syntax-Footnote-1574627
+Node: Function Example574698
+Ref: Function Example-Footnote-1577617
+Node: Function Caveats577639
+Node: Calling A Function578157
+Node: Variable Scope579115
+Node: Pass By Value/Reference582103
+Node: Return Statement585598
+Node: Dynamic Typing588579
+Node: Indirect Calls589508
+Ref: Indirect Calls-Footnote-1600810
+Node: Functions Summary600938
+Node: Library Functions603640
+Ref: Library Functions-Footnote-1607249
+Ref: Library Functions-Footnote-2607392
+Node: Library Names607563
+Ref: Library Names-Footnote-1611017
+Ref: Library Names-Footnote-2611240
+Node: General Functions611326
+Node: Strtonum Function612429
+Node: Assert Function615451
+Node: Round Function618775
+Node: Cliff Random Function620316
+Node: Ordinal Functions621332
+Ref: Ordinal Functions-Footnote-1624395
+Ref: Ordinal Functions-Footnote-2624647
+Node: Join Function624858
+Ref: Join Function-Footnote-1626627
+Node: Getlocaltime Function626827
+Node: Readfile Function630571
+Node: Shell Quoting632541
+Node: Data File Management633942
+Node: Filetrans Function634574
+Node: Rewind Function638630
+Node: File Checking640017
+Ref: File Checking-Footnote-1641349
+Node: Empty Files641550
+Node: Ignoring Assigns643529
+Node: Getopt Function645080
+Ref: Getopt Function-Footnote-1656542
+Node: Passwd Functions656742
+Ref: Passwd Functions-Footnote-1665579
+Node: Group Functions665667
+Ref: Group Functions-Footnote-1673561
+Node: Walking Arrays673774
+Node: Library Functions Summary675377
+Node: Library Exercises676778
+Node: Sample Programs678058
+Node: Running Examples678828
+Node: Clones679556
+Node: Cut Program680780
+Node: Egrep Program690499
+Ref: Egrep Program-Footnote-1697997
+Node: Id Program698107
+Node: Split Program701752
+Ref: Split Program-Footnote-1705200
+Node: Tee Program705328
+Node: Uniq Program708117
+Node: Wc Program715536
+Ref: Wc Program-Footnote-1719786
+Node: Miscellaneous Programs719880
+Node: Dupword Program721093
+Node: Alarm Program723124
+Node: Translate Program727928
+Ref: Translate Program-Footnote-1732493
+Node: Labels Program732763
+Ref: Labels Program-Footnote-1736114
+Node: Word Sorting736198
+Node: History Sorting740269
+Node: Extract Program742105
+Node: Simple Sed749630
+Node: Igawk Program752698
+Ref: Igawk Program-Footnote-1767022
+Ref: Igawk Program-Footnote-2767223
+Ref: Igawk Program-Footnote-3767345
+Node: Anagram Program767460
+Node: Signature Program770517
+Node: Programs Summary771764
+Node: Programs Exercises772957
+Ref: Programs Exercises-Footnote-1777088
+Node: Advanced Features777179
+Node: Nondecimal Data779127
+Node: Array Sorting780717
+Node: Controlling Array Traversal781414
+Ref: Controlling Array Traversal-Footnote-1789747
+Node: Array Sorting Functions789865
+Ref: Array Sorting Functions-Footnote-1793754
+Node: Two-way I/O793950
+Ref: Two-way I/O-Footnote-1798895
+Ref: Two-way I/O-Footnote-2799081
+Node: TCP/IP Networking799163
+Node: Profiling802036
+Node: Advanced Features Summary810313
+Node: Internationalization812246
+Node: I18N and L10N813726
+Node: Explaining gettext814412
+Ref: Explaining gettext-Footnote-1819437
+Ref: Explaining gettext-Footnote-2819621
+Node: Programmer i18n819786
+Ref: Programmer i18n-Footnote-1824652
+Node: Translator i18n824701
+Node: String Extraction825495
+Ref: String Extraction-Footnote-1826626
+Node: Printf Ordering826712
+Ref: Printf Ordering-Footnote-1829498
+Node: I18N Portability829562
+Ref: I18N Portability-Footnote-1832017
+Node: I18N Example832080
+Ref: I18N Example-Footnote-1834883
+Node: Gawk I18N834955
+Node: I18N Summary835593
+Node: Debugger836932
+Node: Debugging837954
+Node: Debugging Concepts838395
+Node: Debugging Terms840248
+Node: Awk Debugging842820
+Node: Sample Debugging Session843714
+Node: Debugger Invocation844234
+Node: Finding The Bug845618
+Node: List of Debugger Commands852093
+Node: Breakpoint Control853426
+Node: Debugger Execution Control857122
+Node: Viewing And Changing Data860486
+Node: Execution Stack863864
+Node: Debugger Info865501
+Node: Miscellaneous Debugger Commands869518
+Node: Readline Support874547
+Node: Limitations875439
+Node: Debugging Summary877553
+Node: Arbitrary Precision Arithmetic878721
+Node: Computer Arithmetic880137
+Ref: table-numeric-ranges883735
+Ref: Computer Arithmetic-Footnote-1884594
+Node: Math Definitions884651
+Ref: table-ieee-formats887939
+Ref: Math Definitions-Footnote-1888543
+Node: MPFR features888648
+Node: FP Math Caution890319
+Ref: FP Math Caution-Footnote-1891369
+Node: Inexactness of computations891738
+Node: Inexact representation892697
+Node: Comparing FP Values894054
+Node: Errors accumulate895136
+Node: Getting Accuracy896569
+Node: Try To Round899231
+Node: Setting precision900130
+Ref: table-predefined-precision-strings900814
+Node: Setting the rounding mode902603
+Ref: table-gawk-rounding-modes902967
+Ref: Setting the rounding mode-Footnote-1906422
+Node: Arbitrary Precision Integers906601
+Ref: Arbitrary Precision Integers-Footnote-1911500
+Node: POSIX Floating Point Problems911649
+Ref: POSIX Floating Point Problems-Footnote-1915522
+Node: Floating point summary915560
+Node: Dynamic Extensions917754
+Node: Extension Intro919306
+Node: Plugin License920572
+Node: Extension Mechanism Outline921369
+Ref: figure-load-extension921797
+Ref: figure-register-new-function923277
+Ref: figure-call-new-function924281
+Node: Extension API Description926267
+Node: Extension API Functions Introduction927717
+Node: General Data Types932541
+Ref: General Data Types-Footnote-1938280
+Node: Memory Allocation Functions938579
+Ref: Memory Allocation Functions-Footnote-1941418
+Node: Constructor Functions941514
+Node: Registration Functions943248
+Node: Extension Functions943933
+Node: Exit Callback Functions946230
+Node: Extension Version String947478
+Node: Input Parsers948143
+Node: Output Wrappers958022
+Node: Two-way processors962537
+Node: Printing Messages964741
+Ref: Printing Messages-Footnote-1965817
+Node: Updating `ERRNO'965969
+Node: Requesting Values966709
+Ref: table-value-types-returned967437
+Node: Accessing Parameters968394
+Node: Symbol Table Access969625
+Node: Symbol table by name970139
+Node: Symbol table by cookie972120
+Ref: Symbol table by cookie-Footnote-1976264
+Node: Cached values976327
+Ref: Cached values-Footnote-1979826
+Node: Array Manipulation979917
+Ref: Array Manipulation-Footnote-1981015
+Node: Array Data Types981052
+Ref: Array Data Types-Footnote-1983707
+Node: Array Functions983799
+Node: Flattening Arrays987653
+Node: Creating Arrays994545
+Node: Extension API Variables999316
+Node: Extension Versioning999952
+Node: Extension API Informational Variables1001853
+Node: Extension API Boilerplate1002918
+Node: Finding Extensions1006727
+Node: Extension Example1007287
+Node: Internal File Description1008059
+Node: Internal File Ops1012126
+Ref: Internal File Ops-Footnote-11023796
+Node: Using Internal File Ops1023936
+Ref: Using Internal File Ops-Footnote-11026319
+Node: Extension Samples1026592
+Node: Extension Sample File Functions1028118
+Node: Extension Sample Fnmatch1035756
+Node: Extension Sample Fork1037247
+Node: Extension Sample Inplace1038462
+Node: Extension Sample Ord1040137
+Node: Extension Sample Readdir1040973
+Ref: table-readdir-file-types1041849
+Node: Extension Sample Revout1042660
+Node: Extension Sample Rev2way1043250
+Node: Extension Sample Read write array1043990
+Node: Extension Sample Readfile1045930
+Node: Extension Sample Time1047025
+Node: Extension Sample API Tests1048374
+Node: gawkextlib1048865
+Node: Extension summary1051523
+Node: Extension Exercises1055212
+Node: Language History1055934
+Node: V7/SVR3.11057590
+Node: SVR41059771
+Node: POSIX1061216
+Node: BTL1062605
+Node: POSIX/GNU1063339
+Node: Feature History1068963
+Node: Common Extensions1082665
+Node: Ranges and Locales1083989
+Ref: Ranges and Locales-Footnote-11088607
+Ref: Ranges and Locales-Footnote-21088634
+Ref: Ranges and Locales-Footnote-31088868
+Node: Contributors1089089
+Node: History summary1094630
+Node: Installation1096000
+Node: Gawk Distribution1096946
+Node: Getting1097430
+Node: Extracting1098253
+Node: Distribution contents1099888
+Node: Unix Installation1105953
+Node: Quick Installation1106636
+Node: Shell Startup Files1109047
+Node: Additional Configuration Options1110126
+Node: Configuration Philosophy1111865
+Node: Non-Unix Installation1114234
+Node: PC Installation1114692
+Node: PC Binary Installation1116011
+Node: PC Compiling1117859
+Ref: PC Compiling-Footnote-11120880
+Node: PC Testing1120989
+Node: PC Using1122165
+Node: Cygwin1126280
+Node: MSYS1127103
+Node: VMS Installation1127603
+Node: VMS Compilation1128395
+Ref: VMS Compilation-Footnote-11129617
+Node: VMS Dynamic Extensions1129675
+Node: VMS Installation Details1131359
+Node: VMS Running1133611
+Node: VMS GNV1136447
+Node: VMS Old Gawk1137181
+Node: Bugs1137651
+Node: Other Versions1141534
+Node: Installation summary1147962
+Node: Notes1149018
+Node: Compatibility Mode1149883
+Node: Additions1150665
+Node: Accessing The Source1151590
+Node: Adding Code1153026
+Node: New Ports1159191
+Node: Derived Files1163673
+Ref: Derived Files-Footnote-11169148
+Ref: Derived Files-Footnote-21169182
+Ref: Derived Files-Footnote-31169778
+Node: Future Extensions1169892
+Node: Implementation Limitations1170498
+Node: Extension Design1171746
+Node: Old Extension Problems1172900
+Ref: Old Extension Problems-Footnote-11174417
+Node: Extension New Mechanism Goals1174474
+Ref: Extension New Mechanism Goals-Footnote-11177834
+Node: Extension Other Design Decisions1178023
+Node: Extension Future Growth1180131
+Node: Old Extension Mechanism1180967
+Node: Notes summary1182729
+Node: Basic Concepts1183915
+Node: Basic High Level1184596
+Ref: figure-general-flow1184868
+Ref: figure-process-flow1185467
+Ref: Basic High Level-Footnote-11188696
+Node: Basic Data Typing1188881
+Node: Glossary1192209
+Node: Copying1217367
+Node: GNU Free Documentation License1254923
+Node: Index1280059
 
 End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 1c3c0f7..871c9ea 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -632,6 +632,7 @@ particular records in a file and perform operations upon 
them.
 * Special Caveats::                     Things to watch out for.
 * Close Files And Pipes::               Closing Input and Output Files and
                                         Pipes.
+* Nonfatal::                            Enabling Nonfatal Output.
 * Output Summary::                      Output summary.
 * Output Exercises::                    Exercises.
 * Values::                              Constants, Variables, and Regular
@@ -8967,6 +8968,7 @@ and discusses the @code{close()} built-in function.
                                 @command{gawk} allows access to inherited file
                                 descriptors.
 * Close Files And Pipes::       Closing Input and Output Files and Pipes.
+* Nonfatal::                    Enabling Nonfatal Output.
 * Output Summary::              Output summary.
 * Output Exercises::            Exercises.
 @end menu
@@ -10484,6 +10486,58 @@ when closing a pipe.
 @c ENDOFRANGE pc
 @c ENDOFRANGE cc
 
address@hidden Nonfatal
address@hidden Enabling Nonfatal Output
+
+This @value{SECTION} describes a @command{gawk}-specific feature.
+
+In standard @command{awk}, output with @code{print} or @code{printf}
+to a nonexistent file, or some other I/O error (such as filling up the
+disk) is a fatal error.
+
address@hidden
+$ @kbd{gawk 'BEGIN @{ print "hi" > "/no/such/file" @}'}
address@hidden gawk: cmd. line:1: fatal: can't redirect to `/no/such/file' (No 
such file or directory)
address@hidden example
+
address@hidden makes it possible to detect that an error has
+occurred, allowing you to possibly recover from the error, or
+at least print an error message of your choosing before exiting.
+You can do this in one of two ways:
+
address@hidden @bullet
address@hidden
+For all output files, by assigning any value to @code{PROCINFO["nonfatal"]}.
+
address@hidden
+On a per-file basis, by assigning any value to
address@hidden@var{filename}, "nonfatal"]}.
+Here, @var{filename} is the name of the file to which
+you wish output to be nonfatal.
address@hidden itemize
+
+Once you have enabled nonfatal output, you must check @code{ERRNO}
+after every relevant @code{print} or @code{printf} statement to
+see if something went wrong.  It is also a good idea to initialize
address@hidden to zero before attempting the output. For example:
+
address@hidden
+$ @kbd{gawk '}
+> @kbd{BEGIN @{}
+> @kbd{    PROCINFO["nonfatal"] = 1}
+> @kbd{    ERRNO = 0}
+> @kbd{    print "hi" > "/no/such/file"}
+> @kbd{    if (ERRNO) @{}
+> @kbd{        print("Output failed:", ERRNO) > "/dev/stderr"}
+> @kbd{        exit 1}
+> @kbd{    @}}
+> @address@hidden'}
address@hidden Output failed: No such file or directory
address@hidden example
+
+Here, @command{gawk} did not produce a fatal error; instead
+it let the @command{awk} program code detect the problem and handle it.
+
 @node Output Summary
 @section Summary
 
@@ -10512,6 +10566,12 @@ Use @code{close()} to close open file, pipe, and 
coprocess redirections.
 For coprocesses, it is possible to close only one direction of the
 communications.
 
address@hidden
+Normally errors with @code{print} or @code{printf} are fatal.
address@hidden lets you make output errors be nonfatal either for
+all files or on a per-file basis. You must then check for errors
+after every relevant output statement.
+
 @end itemize
 
 @c EXCLUDE START
@@ -36771,6 +36831,38 @@ The dynamic extension interface was completely redone
 
 @end itemize
 
+Version @strong{FIXME} XXXX introduced the following changes:
+
address@hidden @bullet
address@hidden
+Changes to @code{ENVIRON} are reflected into @command{gawk}'s
+environment and that of programs that it runs.
address@hidden
+
address@hidden
+The @option{--pretty-print} option no longer runs the @command{awk}
+program too.
+FIXME: Add xref.
+
address@hidden
+The @command{igawk} program and its manual page are no longer
+installed when @command{gawk} is built.
+FIXME: Add xref.
+
address@hidden
+The @code{div()} function.
+FIXME: Add xref.
+
address@hidden
+The maximum number of hexdecimal digits in @samp{\x} escapes
+is now two.
+FIXME: Add xref.
+
address@hidden
+Nonfatal output with @code{print} and @code{printf}.
address@hidden
address@hidden itemize
+
 @c XXX ADD MORE STUFF HERE
 @end ifclear
 
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 8bdf1a7..abf139a 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -627,6 +627,7 @@ particular records in a file and perform operations upon 
them.
 * Special Caveats::                     Things to watch out for.
 * Close Files And Pipes::               Closing Input and Output Files and
                                         Pipes.
+* Nonfatal::                            Enabling Nonfatal Output.
 * Output Summary::                      Output summary.
 * Output Exercises::                    Exercises.
 * Values::                              Constants, Variables, and Regular
@@ -8568,6 +8569,7 @@ and discusses the @code{close()} built-in function.
                                 @command{gawk} allows access to inherited file
                                 descriptors.
 * Close Files And Pipes::       Closing Input and Output Files and Pipes.
+* Nonfatal::                    Enabling Nonfatal Output.
 * Output Summary::              Output summary.
 * Output Exercises::            Exercises.
 @end menu
@@ -9981,6 +9983,58 @@ when closing a pipe.
 @c ENDOFRANGE pc
 @c ENDOFRANGE cc
 
address@hidden Nonfatal
address@hidden Enabling Nonfatal Output
+
+This @value{SECTION} describes a @command{gawk}-specific feature.
+
+In standard @command{awk}, output with @code{print} or @code{printf}
+to a nonexistent file, or some other I/O error (such as filling up the
+disk) is a fatal error.
+
address@hidden
+$ @kbd{gawk 'BEGIN @{ print "hi" > "/no/such/file" @}'}
address@hidden gawk: cmd. line:1: fatal: can't redirect to `/no/such/file' (No 
such file or directory)
address@hidden example
+
address@hidden makes it possible to detect that an error has
+occurred, allowing you to possibly recover from the error, or
+at least print an error message of your choosing before exiting.
+You can do this in one of two ways:
+
address@hidden @bullet
address@hidden
+For all output files, by assigning any value to @code{PROCINFO["nonfatal"]}.
+
address@hidden
+On a per-file basis, by assigning any value to
address@hidden@var{filename}, "nonfatal"]}.
+Here, @var{filename} is the name of the file to which
+you wish output to be nonfatal.
address@hidden itemize
+
+Once you have enabled nonfatal output, you must check @code{ERRNO}
+after every relevant @code{print} or @code{printf} statement to
+see if something went wrong.  It is also a good idea to initialize
address@hidden to zero before attempting the output. For example:
+
address@hidden
+$ @kbd{gawk '}
+> @kbd{BEGIN @{}
+> @kbd{    PROCINFO["nonfatal"] = 1}
+> @kbd{    ERRNO = 0}
+> @kbd{    print "hi" > "/no/such/file"}
+> @kbd{    if (ERRNO) @{}
+> @kbd{        print("Output failed:", ERRNO) > "/dev/stderr"}
+> @kbd{        exit 1}
+> @kbd{    @}}
+> @address@hidden'}
address@hidden Output failed: No such file or directory
address@hidden example
+
+Here, @command{gawk} did not produce a fatal error; instead
+it let the @command{awk} program code detect the problem and handle it.
+
 @node Output Summary
 @section Summary
 
@@ -10009,6 +10063,12 @@ Use @code{close()} to close open file, pipe, and 
coprocess redirections.
 For coprocesses, it is possible to close only one direction of the
 communications.
 
address@hidden
+Normally errors with @code{print} or @code{printf} are fatal.
address@hidden lets you make output errors be nonfatal either for
+all files or on a per-file basis. You must then check for errors
+after every relevant output statement.
+
 @end itemize
 
 @c EXCLUDE START
@@ -35864,6 +35924,38 @@ The dynamic extension interface was completely redone
 
 @end itemize
 
+Version @strong{FIXME} XXXX introduced the following changes:
+
address@hidden @bullet
address@hidden
+Changes to @code{ENVIRON} are reflected into @command{gawk}'s
+environment and that of programs that it runs.
address@hidden
+
address@hidden
+The @option{--pretty-print} option no longer runs the @command{awk}
+program too.
+FIXME: Add xref.
+
address@hidden
+The @command{igawk} program and its manual page are no longer
+installed when @command{gawk} is built.
+FIXME: Add xref.
+
address@hidden
+The @code{div()} function.
+FIXME: Add xref.
+
address@hidden
+The maximum number of hexdecimal digits in @samp{\x} escapes
+is now two.
+FIXME: Add xref.
+
address@hidden
+Nonfatal output with @code{print} and @code{printf}.
address@hidden
address@hidden itemize
+
 @c XXX ADD MORE STUFF HERE
 @end ifclear
 

http://git.sv.gnu.org/cgit/gawk.git/commit/?id=27fa47040717ac1b917a083eaac0c8468b4640f4

commit 27fa47040717ac1b917a083eaac0c8468b4640f4
Merge: dcaab6d 399ec49
Author: Arnold D. Robbins <address@hidden>
Date:   Wed Dec 24 20:39:21 2014 +0200

    Merge branch 'master' into non-fatal-io

diff --cc ChangeLog
index 35d7318,b78fc06..c75a913
--- a/ChangeLog
+++ b/ChangeLog
@@@ -1,19 -1,8 +1,24 @@@
+ 2014-12-24         Arnold D. Robbins     <address@hidden>
+ 
+       * profile.c (pprint): Be sure to set ip2 in all paths
+       through the code. Thanks to GCC 4.9 for the warning.
+ 
 +2014-12-20         Arnold D. Robbins     <address@hidden>
 +
 +      Enable non-fatal output on per-file or global basis,
 +      via PROCINFO.
 +
 +      * awk.h (RED_NON_FATAL): New redirection flag.
 +      * builtin.c (efwrite): If RED_NON_FATAL set, just set ERRNO and return.
 +      (do_printf): Check errflg and if set, set ERRNO and return.
 +      (do_print): Ditto.
 +      (do_print_rec): Ditto.
 +      * io.c (redflags2str): Update table.
 +      (redirect): Check for global PROCINFO["nonfatal"] or for
 +      PROCINFO[file, "nonfatal"] and don't fail on open if set.
 +      Add RED_NON_FATAL to flags.
 +      (in_PROCINFO): Make smarter and more general.
 +
  2014-12-12        Stephen Davies         <address@hidden>
  
        Improve comment handling in pretty printing.

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

Summary of changes:
 ChangeLog         |    5 +
 TODO              |    5 +-
 doc/ChangeLog     |   12 +
 doc/gawk.info     | 1196 ++++++++++++++++++++++++++++-------------------------
 doc/gawk.texi     |   97 +++++-
 doc/gawktexi.in   |   97 +++++-
 doc/texinfo.tex   |  123 ++++--
 po/it.po          | 1146 ++++++++++++++++++++++++++-------------------------
 profile.c         |    1 +
 test/ChangeLog    |   11 +
 test/Makefile.am  |    7 +-
 test/Makefile.in  |   12 +-
 test/Maketests    |    5 +
 test/badbuild.awk |    6 +
 test/badbuild.in  |    1 +
 test/badbuild.ok  |    3 +
 16 files changed, 1554 insertions(+), 1173 deletions(-)
 create mode 100644 test/badbuild.awk
 create mode 100644 test/badbuild.in
 create mode 100644 test/badbuild.ok


hooks/post-receive
-- 
gawk



reply via email to

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