summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2014-06-24 18:10:22 +0300
committerArnold D. Robbins <arnold@skeeve.com>2014-06-24 18:10:22 +0300
commit3ceb23374fc269d883dc5d56e40518db77efea1a (patch)
treef4679cbdf0b309edc1617ac58dbc515efc3cb977
parent78ded8ee8f11a321c96417e7d02dac2f5723a221 (diff)
downloadgawk-3ceb23374fc269d883dc5d56e40518db77efea1a.tar.gz
Make --pretty-print not run the program.
-rw-r--r--ChangeLog7
-rw-r--r--NEWS2
-rw-r--r--TODO23
-rw-r--r--doc/ChangeLog5
-rw-r--r--doc/gawk.info1093
-rw-r--r--doc/gawk.texi15
-rw-r--r--doc/gawktexi.in15
-rw-r--r--main.c5
-rw-r--r--test/ChangeLog5
-rw-r--r--test/Makefile.am9
-rw-r--r--test/Makefile.in9
11 files changed, 591 insertions, 597 deletions
diff --git a/ChangeLog b/ChangeLog
index 14202f52..db0ce48a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2014-06-24 Arnold D. Robbins <arnold@skeeve.com>
+
+ * main.c (main): The --pretty-print option no longer runs the
+ program. This removes the need for the GAWK_NO_PP_RUN environment var.
+ * NEWS: Updated.
+ * TODO: Updated.
+
2014-06-22 Paul Eggert <eggert@penguin.cs.ucla.edu>
Bring in from GNULIB:
diff --git a/NEWS b/NEWS
index 8984e856..16c9167e 100644
--- a/NEWS
+++ b/NEWS
@@ -16,6 +16,8 @@ Changes from 4.1.x to 4.2.0
get the same series of numbers each time you call rand() repeatedly,
but this will be a different series than previously.
+3. The --pretty-print option no longer runs the program too.
+
Changes from 4.1.1 to 4.1.2
---------------------------
diff --git a/TODO b/TODO
index a4764946..ecb4e939 100644
--- a/TODO
+++ b/TODO
@@ -1,4 +1,4 @@
-Thu Apr 17 11:31:24 IDT 2014
+Tue Jun 24 13:11:49 IDT 2014
============================
There were too many files tracking different thoughts and ideas for
@@ -20,7 +20,7 @@ Minor Cleanups and Code Improvements
------------------------------------
Nuke installing the igawk script and the igawk.1 man page. Just
- remove them from the dist.
+ remove them from the dist. Leave it in the manual though.
Review the bash source script for working with shared libraries in
order to nuke the use of libtool. [ Partially started in the
@@ -42,7 +42,7 @@ Minor Cleanups and Code Improvements
Recheck if gnulib regex can be dropped in
- Fully synchronize whitespaces tests (for \s, \S in Unicode
+ Fully synchronize whitespace tests (for \s, \S in Unicode
environment) with those of GNU grep.
Minor New Features
@@ -60,10 +60,6 @@ Minor New Features
Make it possible to put print/printf + redirections into
an expression.
- Have pretty printing not run the program and nuke the
- undocumented GAWK_NO_PP_RUN env var. Requires test suite
- adjustments.
-
? Add an optional base to strtonum, allowing 2-36.
? Optional third argument for index indicating where to start the
@@ -94,9 +90,6 @@ Major New Features
Consider a typeof() function that returns a string (scalar, array,
regexp).
- Fix the early chapters in the doc with more up-to-date examples.
- No-one uses Bulletin Board Systems anymore.
-
Add ability to do decimal arithmetic.
Rework management of array index storage. (Partially DONE.)
@@ -127,12 +120,12 @@ Things To Think About That May Never Happen
https://github.com/emeryberger/DieHard
Implement namespaces. Arnold suggested the following in an email:
- - Extend the definition of an 'identifier' to include "." as a valid character
- although an identifier can't start with it.
+ - Extend the definition of an 'identifier' to include "." as a valid
+ character although an identifier can't start with it.
- Extension libraries install functions and global variables with names
that have a "." in them: XML.parse(), XML.name, whatever.
- - Awk code can read/write such variables and call such functions, but they
- cannot define such functions
+ - Awk code can read/write such variables and call such functions,
+ but they cannot define such functions
function XML.foo() { .. } # error
or create a variable with such a name if it doesn't exist. This would
be a run-time error, not a parse-time error.
@@ -142,8 +135,10 @@ Things To Think About That May Never Happen
to be very important.
Include a sample rpm spec file in a new packaging subdirectory.
+ (Really needed?)
Patch lexer for @include and @load to make quotes optional.
+ (Really needed?)
? Have strftime() pay attention to the value of ENVIRON["TZ"]
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 5e7d4808..3835de90 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,8 @@
+2014-06-24 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawktexi.in: Document that --pretty-print no longer runs the
+ program. Remove mention of GAWK_NO_PP_RUN env var.
+
2014-06-22 Arnold D. Robbins <arnold@skeeve.com>
* gawktexi.in: Typo fixes and minor corrections.
diff --git a/doc/gawk.info b/doc/gawk.info
index 44568736..bc82705d 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -2569,10 +2569,8 @@ The following list describes options mandated by the POSIX standard:
different file name for the output. No space is allowed between
the `-o' and FILE, if FILE is supplied.
- NOTE: Due to the way `gawk' has evolved, with this option
- your program is still executed. This will change in the next
- major release such that `gawk' will only pretty-print the
- program and not run it.
+ NOTE: In the past, this option would also execute your
+ program. This is no longer the case.
`-O'
`--optimize'
@@ -2956,11 +2954,6 @@ change. The variables are:
supposed to be differences, but occasionally theory and practice
don't coordinate with each other.)
-`GAWK_NO_PP_RUN'
- If this variable exists, then when invoked with the
- `--pretty-print' option, `gawk' skips running the program. This
- variable will not survive into the next major release.
-
`GAWK_STACKSIZE'
This specifies the amount by which `gawk' should grow its internal
evaluation stack, when needed.
@@ -19641,8 +19634,8 @@ by the `Ctrl-<\>' key.
called this way, `gawk' "pretty prints" the program into `awkprof.out',
without any execution counts.
- NOTE: The `--pretty-print' option still runs your program. This
- will change in the next major release.
+ NOTE: Once upon a time, the `--pretty-print' option would also run
+ your program. This is is no longer the case.

File: gawk.info, Node: Advanced Features Summary, Prev: Profiling, Up: Advanced Features
@@ -30990,20 +30983,20 @@ Index
* --include option: Options. (line 159)
* --lint option <1>: Options. (line 185)
* --lint option: Command Line. (line 20)
-* --lint-old option: Options. (line 295)
+* --lint-old option: Options. (line 293)
* --load option: Options. (line 173)
* --non-decimal-data option <1>: Nondecimal Data. (line 6)
* --non-decimal-data option: Options. (line 211)
* --non-decimal-data option, strtonum() function and: Nondecimal Data.
(line 36)
-* --optimize option: Options. (line 237)
-* --posix option: Options. (line 254)
-* --posix option, --traditional option and: Options. (line 273)
+* --optimize option: Options. (line 235)
+* --posix option: Options. (line 252)
+* --posix option, --traditional option and: Options. (line 271)
* --pretty-print option: Options. (line 224)
* --profile option <1>: Profiling. (line 12)
-* --profile option: Options. (line 242)
-* --re-interval option: Options. (line 279)
-* --sandbox option: Options. (line 286)
+* --profile option: Options. (line 240)
+* --re-interval option: Options. (line 277)
+* --sandbox option: Options. (line 284)
* --sandbox option, disabling system() function: I/O Functions.
(line 97)
* --sandbox option, input redirection with getline: Getline. (line 19)
@@ -31011,9 +31004,9 @@ Index
(line 6)
* --source option: Options. (line 117)
* --traditional option: Options. (line 81)
-* --traditional option, --posix option and: Options. (line 273)
+* --traditional option, --posix option and: Options. (line 271)
* --use-lc-numeric option: Options. (line 219)
-* --version option: Options. (line 300)
+* --version option: Options. (line 298)
* --with-whiny-user-strftime configuration option: Additional Configuration Options.
(line 35)
* -b option: Options. (line 68)
@@ -31026,26 +31019,26 @@ Index
* -f option: Options. (line 25)
* -F option: Options. (line 21)
* -f option: Long. (line 12)
-* -F option, -Ft sets FS to TAB: Options. (line 308)
+* -F option, -Ft sets FS to TAB: Options. (line 306)
* -F option, command line: Command Line Field Separator.
(line 6)
-* -f option, multiple uses: Options. (line 313)
+* -f option, multiple uses: Options. (line 311)
* -g option: Options. (line 147)
* -h option: Options. (line 154)
* -i option: Options. (line 159)
-* -L option: Options. (line 295)
+* -L option: Options. (line 293)
* -l option: Options. (line 173)
* -M option: Options. (line 205)
* -N option: Options. (line 219)
* -n option: Options. (line 211)
-* -O option: Options. (line 237)
+* -O option: Options. (line 235)
* -o option: Options. (line 224)
-* -P option: Options. (line 254)
-* -p option: Options. (line 242)
-* -r option: Options. (line 279)
-* -S option: Options. (line 286)
+* -P option: Options. (line 252)
+* -p option: Options. (line 240)
+* -r option: Options. (line 277)
+* -S option: Options. (line 284)
* -v option: Assignment Options. (line 12)
-* -V option: Options. (line 300)
+* -V option: Options. (line 298)
* -v option: Options. (line 32)
* -W option: Options. (line 46)
* . (period), regexp operator: Regexp Operators. (line 44)
@@ -31318,7 +31311,7 @@ Index
* awf (amazingly workable formatter) program: Glossary. (line 24)
* awk debugging, enabling: Options. (line 108)
* awk language, POSIX version: Assignment Ops. (line 137)
-* awk profiling, enabling: Options. (line 242)
+* awk profiling, enabling: Options. (line 240)
* awk programs <1>: Two Rules. (line 6)
* awk programs <2>: Executable Scripts. (line 6)
* awk programs: Getting Started. (line 12)
@@ -31725,7 +31718,7 @@ Index
* cosine: Numeric Functions. (line 15)
* counting: Wc Program. (line 6)
* csh utility: Statements/Lines. (line 44)
-* csh utility, POSIXLY_CORRECT environment variable: Options. (line 355)
+* csh utility, POSIXLY_CORRECT environment variable: Options. (line 353)
* csh utility, |& operator, comparison with: Two-way I/O. (line 44)
* ctime() user-defined function: Function Example. (line 73)
* currency symbols, localization: Explaining gettext. (line 104)
@@ -31908,7 +31901,7 @@ Index
* debugger, read commands from a file: Debugger Info. (line 96)
* debugging awk programs: Debugger. (line 6)
* debugging gawk, bug reports: Bugs. (line 9)
-* decimal point character, locale specific: Options. (line 270)
+* decimal point character, locale specific: Options. (line 268)
* decrement operators: Increment Ops. (line 35)
* default keyword: Switch Statement. (line 6)
* Deifik, Scott <1>: Bugs. (line 71)
@@ -32336,7 +32329,7 @@ Index
* FS variable, --field-separator option and: Options. (line 21)
* FS variable, as null string: Single Character Fields.
(line 20)
-* FS variable, as TAB character: Options. (line 266)
+* FS variable, as TAB character: Options. (line 264)
* FS variable, changing value of: Field Separators. (line 35)
* FS variable, running awk programs and: Cut Program. (line 68)
* FS variable, setting from command line: Command Line Field Separator.
@@ -32426,7 +32419,7 @@ Index
(line 139)
* gawk, ERRNO variable in: Getline. (line 19)
* gawk, escape sequences: Escape Sequences. (line 124)
-* gawk, extensions, disabling: Options. (line 254)
+* gawk, extensions, disabling: Options. (line 252)
* gawk, features, adding: Adding Code. (line 6)
* gawk, features, advanced: Advanced Features. (line 6)
* gawk, field separators and: User-modified. (line 71)
@@ -32487,7 +32480,7 @@ Index
* gawk, TEXTDOMAIN variable in: User-modified. (line 152)
* gawk, timestamps: Time Functions. (line 6)
* gawk, uses for: Preface. (line 36)
-* gawk, versions of, information about, printing: Options. (line 300)
+* gawk, versions of, information about, printing: Options. (line 298)
* gawk, VMS version of: VMS Installation. (line 6)
* gawk, word-boundary operator: GNU Regexp Operators.
(line 63)
@@ -32798,7 +32791,7 @@ Index
* lint checking, empty programs: Command Line. (line 16)
* lint checking, issuing warnings: Options. (line 185)
* lint checking, POSIXLY_CORRECT environment variable: Options.
- (line 340)
+ (line 338)
* lint checking, undefined functions: Pass By Value/Reference.
(line 88)
* LINT variable: User-modified. (line 88)
@@ -32812,7 +32805,7 @@ Index
* loading, extensions: Options. (line 173)
* local variables, in a function: Variable Scope. (line 6)
* locale categories: Explaining gettext. (line 81)
-* locale decimal point character: Options. (line 270)
+* locale decimal point character: Options. (line 268)
* locale, definition of: Locales. (line 6)
* localization: I18N and L10N. (line 6)
* localization, See internationalization, localization: I18N and L10N.
@@ -32896,7 +32889,7 @@ Index
* networks, programming: TCP/IP Networking. (line 6)
* networks, support for: Special Network. (line 6)
* newlines <1>: Boolean Ops. (line 67)
-* newlines <2>: Options. (line 260)
+* newlines <2>: Options. (line 258)
* newlines: Statements/Lines. (line 6)
* newlines, as field separators: Default Field Splitting.
(line 6)
@@ -33118,7 +33111,7 @@ Index
* portability, NF variable, decrementing: Changing Fields. (line 115)
* portability, operators: Increment Ops. (line 60)
* portability, operators, not in POSIX awk: Precedence. (line 98)
-* portability, POSIXLY_CORRECT environment variable: Options. (line 360)
+* portability, POSIXLY_CORRECT environment variable: Options. (line 358)
* portability, substr() function: String Functions. (line 510)
* portable object files <1>: Translator i18n. (line 6)
* portable object files: Explaining gettext. (line 37)
@@ -33167,11 +33160,11 @@ Index
* POSIX awk, regular expressions and: Regexp Operators. (line 162)
* POSIX awk, timestamps and: Time Functions. (line 6)
* POSIX awk, | I/O operator and: Getline/Pipe. (line 55)
-* POSIX mode: Options. (line 254)
+* POSIX mode: Options. (line 252)
* POSIX, awk and: Preface. (line 23)
* POSIX, gawk extensions not included in: POSIX/GNU. (line 6)
* POSIX, programs, implementing in awk: Clones. (line 6)
-* POSIXLY_CORRECT environment variable: Options. (line 340)
+* POSIXLY_CORRECT environment variable: Options. (line 338)
* PREC variable: User-modified. (line 124)
* precedence <1>: Precedence. (line 6)
* precedence: Increment Ops. (line 60)
@@ -33351,7 +33344,7 @@ Index
(line 59)
* regular expressions, gawk, command-line options: GNU Regexp Operators.
(line 70)
-* regular expressions, interval expressions and: Options. (line 279)
+* regular expressions, interval expressions and: Options. (line 277)
* regular expressions, leftmost longest match: Leftmost Longest.
(line 6)
* regular expressions, operators <1>: Regexp Operators. (line 6)
@@ -33432,7 +33425,7 @@ Index
(line 68)
* sample debugging session: Sample Debugging Session.
(line 6)
-* sandbox mode: Options. (line 286)
+* sandbox mode: Options. (line 284)
* save debugger options: Debugger Info. (line 84)
* scalar or array: Type Functions. (line 11)
* scalar values: Basic Data Typing. (line 13)
@@ -33904,7 +33897,7 @@ Index
* whitespace, as field separators: Default Field Splitting.
(line 6)
* whitespace, functions, calling: Calling Built-in. (line 10)
-* whitespace, newlines as: Options. (line 260)
+* whitespace, newlines as: Options. (line 258)
* Williams, Kent: Contributors. (line 34)
* Woehlke, Matthew: Contributors. (line 79)
* Woods, John: Contributors. (line 27)
@@ -33998,511 +33991,511 @@ Node: Intro Summary110051
Node: Invoking Gawk110817
Node: Command Line112332
Node: Options113123
-Ref: Options-Footnote-1128952
-Node: Other Arguments128977
-Node: Naming Standard Input131639
-Node: Environment Variables132733
-Node: AWKPATH Variable133291
-Ref: AWKPATH Variable-Footnote-1136163
-Ref: AWKPATH Variable-Footnote-2136208
-Node: AWKLIBPATH Variable136468
-Node: Other Environment Variables137227
-Node: Exit Status140882
-Node: Include Files141557
-Node: Loading Shared Libraries145135
-Node: Obsolete146519
-Node: Undocumented147216
-Node: Invoking Summary147483
-Node: Regexp149063
-Node: Regexp Usage150513
-Node: Escape Sequences152546
-Node: Regexp Operators158213
-Ref: Regexp Operators-Footnote-1165693
-Ref: Regexp Operators-Footnote-2165840
-Node: Bracket Expressions165938
-Ref: table-char-classes167828
-Node: GNU Regexp Operators170351
-Node: Case-sensitivity174074
-Ref: Case-sensitivity-Footnote-1176966
-Ref: Case-sensitivity-Footnote-2177201
-Node: Leftmost Longest177309
-Node: Computed Regexps178510
-Node: Regexp Summary181882
-Node: Reading Files183353
-Node: Records185445
-Node: awk split records186188
-Node: gawk split records191046
-Ref: gawk split records-Footnote-1195567
-Node: Fields195604
-Ref: Fields-Footnote-1198568
-Node: Nonconstant Fields198654
-Ref: Nonconstant Fields-Footnote-1200884
-Node: Changing Fields201086
-Node: Field Separators207040
-Node: Default Field Splitting209742
-Node: Regexp Field Splitting210859
-Node: Single Character Fields214200
-Node: Command Line Field Separator215259
-Node: Full Line Fields218601
-Ref: Full Line Fields-Footnote-1219109
-Node: Field Splitting Summary219155
-Ref: Field Splitting Summary-Footnote-1222254
-Node: Constant Size222355
-Node: Splitting By Content226962
-Ref: Splitting By Content-Footnote-1230712
-Node: Multiple Line230752
-Ref: Multiple Line-Footnote-1236608
-Node: Getline236787
-Node: Plain Getline239003
-Node: Getline/Variable241098
-Node: Getline/File242245
-Node: Getline/Variable/File243629
-Ref: Getline/Variable/File-Footnote-1245228
-Node: Getline/Pipe245315
-Node: Getline/Variable/Pipe248014
-Node: Getline/Coprocess249121
-Node: Getline/Variable/Coprocess250373
-Node: Getline Notes251110
-Node: Getline Summary253914
-Ref: table-getline-variants254322
-Node: Read Timeout255234
-Ref: Read Timeout-Footnote-1259061
-Node: Command line directories259119
-Node: Input Summary260023
-Node: Input Exercises263160
-Node: Printing263893
-Node: Print265615
-Node: Print Examples266956
-Node: Output Separators269735
-Node: OFMT271751
-Node: Printf273109
-Node: Basic Printf274015
-Node: Control Letters275554
-Node: Format Modifiers279406
-Node: Printf Examples285433
-Node: Redirection287897
-Node: Special Files294869
-Node: Special FD295400
-Ref: Special FD-Footnote-1299024
-Node: Special Network299098
-Node: Special Caveats299948
-Node: Close Files And Pipes300744
-Ref: Close Files And Pipes-Footnote-1307905
-Ref: Close Files And Pipes-Footnote-2308053
-Node: Output Summary308203
-Node: Output exercises309200
-Node: Expressions309880
-Node: Values311065
-Node: Constants311741
-Node: Scalar Constants312421
-Ref: Scalar Constants-Footnote-1313280
-Node: Nondecimal-numbers313530
-Node: Regexp Constants316530
-Node: Using Constant Regexps317005
-Node: Variables320075
-Node: Using Variables320730
-Node: Assignment Options322454
-Node: Conversion324329
-Node: Strings And Numbers324853
-Ref: Strings And Numbers-Footnote-1327915
-Node: Locale influences conversions328024
-Ref: table-locale-affects330741
-Node: All Operators331329
-Node: Arithmetic Ops331959
-Node: Concatenation334464
-Ref: Concatenation-Footnote-1337260
-Node: Assignment Ops337380
-Ref: table-assign-ops342363
-Node: Increment Ops343680
-Node: Truth Values and Conditions347118
-Node: Truth Values348201
-Node: Typing and Comparison349250
-Node: Variable Typing350043
-Ref: Variable Typing-Footnote-1353943
-Node: Comparison Operators354065
-Ref: table-relational-ops354475
-Node: POSIX String Comparison358025
-Ref: POSIX String Comparison-Footnote-1359109
-Node: Boolean Ops359247
-Ref: Boolean Ops-Footnote-1363317
-Node: Conditional Exp363408
-Node: Function Calls365135
-Node: Precedence369015
-Node: Locales372684
-Node: Expressions Summary374315
-Node: Patterns and Actions376856
-Node: Pattern Overview377972
-Node: Regexp Patterns379649
-Node: Expression Patterns380192
-Node: Ranges383973
-Node: BEGIN/END387079
-Node: Using BEGIN/END387841
-Ref: Using BEGIN/END-Footnote-1390577
-Node: I/O And BEGIN/END390683
-Node: BEGINFILE/ENDFILE392968
-Node: Empty395899
-Node: Using Shell Variables396216
-Node: Action Overview398499
-Node: Statements400826
-Node: If Statement402674
-Node: While Statement404172
-Node: Do Statement406216
-Node: For Statement407372
-Node: Switch Statement410524
-Node: Break Statement412627
-Node: Continue Statement414682
-Node: Next Statement416475
-Node: Nextfile Statement418865
-Node: Exit Statement421520
-Node: Built-in Variables423924
-Node: User-modified425051
-Ref: User-modified-Footnote-1432740
-Node: Auto-set432802
-Ref: Auto-set-Footnote-1445721
-Ref: Auto-set-Footnote-2445926
-Node: ARGC and ARGV445982
-Node: Pattern Action Summary449836
-Node: Arrays452059
-Node: Array Basics453608
-Node: Array Intro454434
-Ref: figure-array-elements456407
-Node: Reference to Elements458814
-Node: Assigning Elements461087
-Node: Array Example461578
-Node: Scanning an Array463310
-Node: Controlling Scanning466325
-Ref: Controlling Scanning-Footnote-1471498
-Node: Delete471814
-Ref: Delete-Footnote-1474579
-Node: Numeric Array Subscripts474636
-Node: Uninitialized Subscripts476819
-Node: Multidimensional478444
-Node: Multiscanning481537
-Node: Arrays of Arrays483126
-Node: Arrays Summary487789
-Node: Functions489894
-Node: Built-in490767
-Node: Calling Built-in491845
-Node: Numeric Functions493833
-Ref: Numeric Functions-Footnote-1497667
-Ref: Numeric Functions-Footnote-2498024
-Ref: Numeric Functions-Footnote-3498072
-Node: String Functions498341
-Ref: String Functions-Footnote-1521352
-Ref: String Functions-Footnote-2521481
-Ref: String Functions-Footnote-3521729
-Node: Gory Details521816
-Ref: table-sub-escapes523485
-Ref: table-sub-posix-92524839
-Ref: table-sub-proposed526190
-Ref: table-posix-sub527544
-Ref: table-gensub-escapes529089
-Ref: Gory Details-Footnote-1530265
-Ref: Gory Details-Footnote-2530316
-Node: I/O Functions530467
-Ref: I/O Functions-Footnote-1537590
-Node: Time Functions537737
-Ref: Time Functions-Footnote-1548201
-Ref: Time Functions-Footnote-2548269
-Ref: Time Functions-Footnote-3548427
-Ref: Time Functions-Footnote-4548538
-Ref: Time Functions-Footnote-5548650
-Ref: Time Functions-Footnote-6548877
-Node: Bitwise Functions549143
-Ref: table-bitwise-ops549705
-Ref: Bitwise Functions-Footnote-1553950
-Node: Type Functions554134
-Node: I18N Functions555276
-Node: User-defined556921
-Node: Definition Syntax557725
-Ref: Definition Syntax-Footnote-1562904
-Node: Function Example562973
-Ref: Function Example-Footnote-1565617
-Node: Function Caveats565639
-Node: Calling A Function566157
-Node: Variable Scope567112
-Node: Pass By Value/Reference570100
-Node: Return Statement573608
-Node: Dynamic Typing576592
-Node: Indirect Calls577521
-Node: Functions Summary587234
-Node: Library Functions589773
-Ref: Library Functions-Footnote-1593391
-Ref: Library Functions-Footnote-2593534
-Node: Library Names593705
-Ref: Library Names-Footnote-1597178
-Ref: Library Names-Footnote-2597398
-Node: General Functions597484
-Node: Strtonum Function598512
-Node: Assert Function601292
-Node: Round Function604618
-Node: Cliff Random Function606159
-Node: Ordinal Functions607175
-Ref: Ordinal Functions-Footnote-1610252
-Ref: Ordinal Functions-Footnote-2610504
-Node: Join Function610715
-Ref: Join Function-Footnote-1612486
-Node: Getlocaltime Function612686
-Node: Readfile Function616422
-Node: Data File Management618261
-Node: Filetrans Function618893
-Node: Rewind Function622962
-Node: File Checking624349
-Ref: File Checking-Footnote-1625481
-Node: Empty Files625682
-Node: Ignoring Assigns627661
-Node: Getopt Function629215
-Ref: Getopt Function-Footnote-1640518
-Node: Passwd Functions640721
-Ref: Passwd Functions-Footnote-1649700
-Node: Group Functions649788
-Ref: Group Functions-Footnote-1657729
-Node: Walking Arrays657942
-Node: Library Functions Summary659545
-Node: Library exercises660933
-Node: Sample Programs662213
-Node: Running Examples662983
-Node: Clones663711
-Node: Cut Program664935
-Node: Egrep Program674803
-Ref: Egrep Program-Footnote-1682774
-Node: Id Program682884
-Node: Split Program686548
-Ref: Split Program-Footnote-1690086
-Node: Tee Program690214
-Node: Uniq Program693021
-Node: Wc Program700451
-Ref: Wc Program-Footnote-1704716
-Node: Miscellaneous Programs704808
-Node: Dupword Program706021
-Node: Alarm Program708052
-Node: Translate Program712866
-Ref: Translate Program-Footnote-1717257
-Ref: Translate Program-Footnote-2717527
-Node: Labels Program717661
-Ref: Labels Program-Footnote-1721032
-Node: Word Sorting721116
-Node: History Sorting725159
-Node: Extract Program726995
-Node: Simple Sed734531
-Node: Igawk Program737593
-Ref: Igawk Program-Footnote-1751904
-Ref: Igawk Program-Footnote-2752105
-Node: Anagram Program752243
-Node: Signature Program755311
-Node: Programs Summary756558
-Node: Programs Exercises757773
-Node: Advanced Features761424
-Node: Nondecimal Data763372
-Node: Array Sorting764949
-Node: Controlling Array Traversal765646
-Node: Array Sorting Functions773926
-Ref: Array Sorting Functions-Footnote-1777833
-Node: Two-way I/O778027
-Ref: Two-way I/O-Footnote-1783543
-Node: TCP/IP Networking783625
-Node: Profiling786469
-Node: Advanced Features Summary794011
-Node: Internationalization795875
-Node: I18N and L10N797355
-Node: Explaining gettext798041
-Ref: Explaining gettext-Footnote-1803181
-Ref: Explaining gettext-Footnote-2803365
-Node: Programmer i18n803530
-Node: Translator i18n807755
-Node: String Extraction808549
-Ref: String Extraction-Footnote-1809510
-Node: Printf Ordering809596
-Ref: Printf Ordering-Footnote-1812378
-Node: I18N Portability812442
-Ref: I18N Portability-Footnote-1814891
-Node: I18N Example814954
-Ref: I18N Example-Footnote-1817676
-Node: Gawk I18N817748
-Node: I18N Summary818386
-Node: Debugger819725
-Node: Debugging820747
-Node: Debugging Concepts821188
-Node: Debugging Terms823044
-Node: Awk Debugging825641
-Node: Sample Debugging Session826533
-Node: Debugger Invocation827053
-Node: Finding The Bug828386
-Node: List of Debugger Commands834868
-Node: Breakpoint Control836200
-Node: Debugger Execution Control839864
-Node: Viewing And Changing Data843224
-Node: Execution Stack846582
-Node: Debugger Info848095
-Node: Miscellaneous Debugger Commands852089
-Node: Readline Support857273
-Node: Limitations858165
-Node: Debugging Summary860439
-Node: Arbitrary Precision Arithmetic861603
-Node: Computer Arithmetic862932
-Ref: Computer Arithmetic-Footnote-1867319
-Node: Math Definitions867376
-Ref: table-ieee-formats870260
-Node: MPFR features870764
-Node: FP Math Caution872406
-Ref: FP Math Caution-Footnote-1873447
-Node: Inexactness of computations873816
-Node: Inexact representation874764
-Node: Comparing FP Values876119
-Node: Errors accumulate877083
-Node: Getting Accuracy878516
-Node: Try To Round881175
-Node: Setting precision882074
-Ref: table-predefined-precision-strings882756
-Node: Setting the rounding mode884549
-Ref: table-gawk-rounding-modes884913
-Ref: Setting the rounding mode-Footnote-1888367
-Node: Arbitrary Precision Integers888546
-Ref: Arbitrary Precision Integers-Footnote-1891549
-Node: POSIX Floating Point Problems891698
-Ref: POSIX Floating Point Problems-Footnote-1895574
-Node: Floating point summary895612
-Node: Dynamic Extensions897829
-Node: Extension Intro899381
-Node: Plugin License900646
-Node: Extension Mechanism Outline901331
-Ref: figure-load-extension901755
-Ref: figure-load-new-function903240
-Ref: figure-call-new-function904242
-Node: Extension API Description906226
-Node: Extension API Functions Introduction907676
-Node: General Data Types912541
-Ref: General Data Types-Footnote-1918234
-Node: Requesting Values918533
-Ref: table-value-types-returned919270
-Node: Memory Allocation Functions920228
-Ref: Memory Allocation Functions-Footnote-1922975
-Node: Constructor Functions923071
-Node: Registration Functions924829
-Node: Extension Functions925514
-Node: Exit Callback Functions927816
-Node: Extension Version String929065
-Node: Input Parsers929715
-Node: Output Wrappers939518
-Node: Two-way processors944034
-Node: Printing Messages946238
-Ref: Printing Messages-Footnote-1947315
-Node: Updating `ERRNO'947467
-Node: Accessing Parameters948206
-Node: Symbol Table Access949436
-Node: Symbol table by name949950
-Node: Symbol table by cookie951926
-Ref: Symbol table by cookie-Footnote-1956059
-Node: Cached values956122
-Ref: Cached values-Footnote-1959626
-Node: Array Manipulation959717
-Ref: Array Manipulation-Footnote-1960815
-Node: Array Data Types960854
-Ref: Array Data Types-Footnote-1963557
-Node: Array Functions963649
-Node: Flattening Arrays967523
-Node: Creating Arrays974375
-Node: Extension API Variables979106
-Node: Extension Versioning979742
-Node: Extension API Informational Variables981643
-Node: Extension API Boilerplate982729
-Node: Finding Extensions986533
-Node: Extension Example987093
-Node: Internal File Description987823
-Node: Internal File Ops991914
-Ref: Internal File Ops-Footnote-11003346
-Node: Using Internal File Ops1003486
-Ref: Using Internal File Ops-Footnote-11005833
-Node: Extension Samples1006101
-Node: Extension Sample File Functions1007625
-Node: Extension Sample Fnmatch1015193
-Node: Extension Sample Fork1016675
-Node: Extension Sample Inplace1017888
-Node: Extension Sample Ord1019563
-Node: Extension Sample Readdir1020399
-Ref: table-readdir-file-types1021255
-Node: Extension Sample Revout1022054
-Node: Extension Sample Rev2way1022645
-Node: Extension Sample Read write array1023386
-Node: Extension Sample Readfile1025265
-Node: Extension Sample API Tests1026365
-Node: Extension Sample Time1026890
-Node: gawkextlib1028205
-Node: Extension summary1031018
-Node: Extension Exercises1034711
-Node: Language History1035433
-Node: V7/SVR3.11037076
-Node: SVR41039396
-Node: POSIX1040838
-Node: BTL1042224
-Node: POSIX/GNU1042958
-Node: Feature History1048557
-Node: Common Extensions1061687
-Node: Ranges and Locales1062999
-Ref: Ranges and Locales-Footnote-11067616
-Ref: Ranges and Locales-Footnote-21067643
-Ref: Ranges and Locales-Footnote-31067877
-Node: Contributors1068098
-Node: History summary1073523
-Node: Installation1074892
-Node: Gawk Distribution1075843
-Node: Getting1076327
-Node: Extracting1077151
-Node: Distribution contents1078793
-Node: Unix Installation1084510
-Node: Quick Installation1085127
-Node: Additional Configuration Options1087569
-Node: Configuration Philosophy1089307
-Node: Non-Unix Installation1091658
-Node: PC Installation1092116
-Node: PC Binary Installation1093427
-Node: PC Compiling1095275
-Ref: PC Compiling-Footnote-11098274
-Node: PC Testing1098379
-Node: PC Using1099555
-Node: Cygwin1103713
-Node: MSYS1104522
-Node: VMS Installation1105036
-Node: VMS Compilation1105832
-Ref: VMS Compilation-Footnote-11107054
-Node: VMS Dynamic Extensions1107112
-Node: VMS Installation Details1108485
-Node: VMS Running1110737
-Node: VMS GNV1113571
-Node: VMS Old Gawk1114294
-Node: Bugs1114764
-Node: Other Versions1118768
-Node: Installation summary1125023
-Node: Notes1126079
-Node: Compatibility Mode1126944
-Node: Additions1127726
-Node: Accessing The Source1128651
-Node: Adding Code1130087
-Node: New Ports1136265
-Node: Derived Files1140746
-Ref: Derived Files-Footnote-11145827
-Ref: Derived Files-Footnote-21145861
-Ref: Derived Files-Footnote-31146457
-Node: Future Extensions1146571
-Node: Implementation Limitations1147177
-Node: Extension Design1148425
-Node: Old Extension Problems1149579
-Ref: Old Extension Problems-Footnote-11151096
-Node: Extension New Mechanism Goals1151153
-Ref: Extension New Mechanism Goals-Footnote-11154513
-Node: Extension Other Design Decisions1154702
-Node: Extension Future Growth1156808
-Node: Old Extension Mechanism1157644
-Node: Notes summary1159406
-Node: Basic Concepts1160592
-Node: Basic High Level1161273
-Ref: figure-general-flow1161545
-Ref: figure-process-flow1162144
-Ref: Basic High Level-Footnote-11165373
-Node: Basic Data Typing1165558
-Node: Glossary1168886
-Node: Copying1194038
-Node: GNU Free Documentation License1231594
-Node: Index1256730
+Ref: Options-Footnote-1128823
+Node: Other Arguments128848
+Node: Naming Standard Input131510
+Node: Environment Variables132604
+Node: AWKPATH Variable133162
+Ref: AWKPATH Variable-Footnote-1136034
+Ref: AWKPATH Variable-Footnote-2136079
+Node: AWKLIBPATH Variable136339
+Node: Other Environment Variables137098
+Node: Exit Status140548
+Node: Include Files141223
+Node: Loading Shared Libraries144801
+Node: Obsolete146185
+Node: Undocumented146882
+Node: Invoking Summary147149
+Node: Regexp148729
+Node: Regexp Usage150179
+Node: Escape Sequences152212
+Node: Regexp Operators157879
+Ref: Regexp Operators-Footnote-1165359
+Ref: Regexp Operators-Footnote-2165506
+Node: Bracket Expressions165604
+Ref: table-char-classes167494
+Node: GNU Regexp Operators170017
+Node: Case-sensitivity173740
+Ref: Case-sensitivity-Footnote-1176632
+Ref: Case-sensitivity-Footnote-2176867
+Node: Leftmost Longest176975
+Node: Computed Regexps178176
+Node: Regexp Summary181548
+Node: Reading Files183019
+Node: Records185111
+Node: awk split records185854
+Node: gawk split records190712
+Ref: gawk split records-Footnote-1195233
+Node: Fields195270
+Ref: Fields-Footnote-1198234
+Node: Nonconstant Fields198320
+Ref: Nonconstant Fields-Footnote-1200550
+Node: Changing Fields200752
+Node: Field Separators206706
+Node: Default Field Splitting209408
+Node: Regexp Field Splitting210525
+Node: Single Character Fields213866
+Node: Command Line Field Separator214925
+Node: Full Line Fields218267
+Ref: Full Line Fields-Footnote-1218775
+Node: Field Splitting Summary218821
+Ref: Field Splitting Summary-Footnote-1221920
+Node: Constant Size222021
+Node: Splitting By Content226628
+Ref: Splitting By Content-Footnote-1230378
+Node: Multiple Line230418
+Ref: Multiple Line-Footnote-1236274
+Node: Getline236453
+Node: Plain Getline238669
+Node: Getline/Variable240764
+Node: Getline/File241911
+Node: Getline/Variable/File243295
+Ref: Getline/Variable/File-Footnote-1244894
+Node: Getline/Pipe244981
+Node: Getline/Variable/Pipe247680
+Node: Getline/Coprocess248787
+Node: Getline/Variable/Coprocess250039
+Node: Getline Notes250776
+Node: Getline Summary253580
+Ref: table-getline-variants253988
+Node: Read Timeout254900
+Ref: Read Timeout-Footnote-1258727
+Node: Command line directories258785
+Node: Input Summary259689
+Node: Input Exercises262826
+Node: Printing263559
+Node: Print265281
+Node: Print Examples266622
+Node: Output Separators269401
+Node: OFMT271417
+Node: Printf272775
+Node: Basic Printf273681
+Node: Control Letters275220
+Node: Format Modifiers279072
+Node: Printf Examples285099
+Node: Redirection287563
+Node: Special Files294535
+Node: Special FD295066
+Ref: Special FD-Footnote-1298690
+Node: Special Network298764
+Node: Special Caveats299614
+Node: Close Files And Pipes300410
+Ref: Close Files And Pipes-Footnote-1307571
+Ref: Close Files And Pipes-Footnote-2307719
+Node: Output Summary307869
+Node: Output exercises308866
+Node: Expressions309546
+Node: Values310731
+Node: Constants311407
+Node: Scalar Constants312087
+Ref: Scalar Constants-Footnote-1312946
+Node: Nondecimal-numbers313196
+Node: Regexp Constants316196
+Node: Using Constant Regexps316671
+Node: Variables319741
+Node: Using Variables320396
+Node: Assignment Options322120
+Node: Conversion323995
+Node: Strings And Numbers324519
+Ref: Strings And Numbers-Footnote-1327581
+Node: Locale influences conversions327690
+Ref: table-locale-affects330407
+Node: All Operators330995
+Node: Arithmetic Ops331625
+Node: Concatenation334130
+Ref: Concatenation-Footnote-1336926
+Node: Assignment Ops337046
+Ref: table-assign-ops342029
+Node: Increment Ops343346
+Node: Truth Values and Conditions346784
+Node: Truth Values347867
+Node: Typing and Comparison348916
+Node: Variable Typing349709
+Ref: Variable Typing-Footnote-1353609
+Node: Comparison Operators353731
+Ref: table-relational-ops354141
+Node: POSIX String Comparison357691
+Ref: POSIX String Comparison-Footnote-1358775
+Node: Boolean Ops358913
+Ref: Boolean Ops-Footnote-1362983
+Node: Conditional Exp363074
+Node: Function Calls364801
+Node: Precedence368681
+Node: Locales372350
+Node: Expressions Summary373981
+Node: Patterns and Actions376522
+Node: Pattern Overview377638
+Node: Regexp Patterns379315
+Node: Expression Patterns379858
+Node: Ranges383639
+Node: BEGIN/END386745
+Node: Using BEGIN/END387507
+Ref: Using BEGIN/END-Footnote-1390243
+Node: I/O And BEGIN/END390349
+Node: BEGINFILE/ENDFILE392634
+Node: Empty395565
+Node: Using Shell Variables395882
+Node: Action Overview398165
+Node: Statements400492
+Node: If Statement402340
+Node: While Statement403838
+Node: Do Statement405882
+Node: For Statement407038
+Node: Switch Statement410190
+Node: Break Statement412293
+Node: Continue Statement414348
+Node: Next Statement416141
+Node: Nextfile Statement418531
+Node: Exit Statement421186
+Node: Built-in Variables423590
+Node: User-modified424717
+Ref: User-modified-Footnote-1432406
+Node: Auto-set432468
+Ref: Auto-set-Footnote-1445387
+Ref: Auto-set-Footnote-2445592
+Node: ARGC and ARGV445648
+Node: Pattern Action Summary449502
+Node: Arrays451725
+Node: Array Basics453274
+Node: Array Intro454100
+Ref: figure-array-elements456073
+Node: Reference to Elements458480
+Node: Assigning Elements460753
+Node: Array Example461244
+Node: Scanning an Array462976
+Node: Controlling Scanning465991
+Ref: Controlling Scanning-Footnote-1471164
+Node: Delete471480
+Ref: Delete-Footnote-1474245
+Node: Numeric Array Subscripts474302
+Node: Uninitialized Subscripts476485
+Node: Multidimensional478110
+Node: Multiscanning481203
+Node: Arrays of Arrays482792
+Node: Arrays Summary487455
+Node: Functions489560
+Node: Built-in490433
+Node: Calling Built-in491511
+Node: Numeric Functions493499
+Ref: Numeric Functions-Footnote-1497333
+Ref: Numeric Functions-Footnote-2497690
+Ref: Numeric Functions-Footnote-3497738
+Node: String Functions498007
+Ref: String Functions-Footnote-1521018
+Ref: String Functions-Footnote-2521147
+Ref: String Functions-Footnote-3521395
+Node: Gory Details521482
+Ref: table-sub-escapes523151
+Ref: table-sub-posix-92524505
+Ref: table-sub-proposed525856
+Ref: table-posix-sub527210
+Ref: table-gensub-escapes528755
+Ref: Gory Details-Footnote-1529931
+Ref: Gory Details-Footnote-2529982
+Node: I/O Functions530133
+Ref: I/O Functions-Footnote-1537256
+Node: Time Functions537403
+Ref: Time Functions-Footnote-1547867
+Ref: Time Functions-Footnote-2547935
+Ref: Time Functions-Footnote-3548093
+Ref: Time Functions-Footnote-4548204
+Ref: Time Functions-Footnote-5548316
+Ref: Time Functions-Footnote-6548543
+Node: Bitwise Functions548809
+Ref: table-bitwise-ops549371
+Ref: Bitwise Functions-Footnote-1553616
+Node: Type Functions553800
+Node: I18N Functions554942
+Node: User-defined556587
+Node: Definition Syntax557391
+Ref: Definition Syntax-Footnote-1562570
+Node: Function Example562639
+Ref: Function Example-Footnote-1565283
+Node: Function Caveats565305
+Node: Calling A Function565823
+Node: Variable Scope566778
+Node: Pass By Value/Reference569766
+Node: Return Statement573274
+Node: Dynamic Typing576258
+Node: Indirect Calls577187
+Node: Functions Summary586900
+Node: Library Functions589439
+Ref: Library Functions-Footnote-1593057
+Ref: Library Functions-Footnote-2593200
+Node: Library Names593371
+Ref: Library Names-Footnote-1596844
+Ref: Library Names-Footnote-2597064
+Node: General Functions597150
+Node: Strtonum Function598178
+Node: Assert Function600958
+Node: Round Function604284
+Node: Cliff Random Function605825
+Node: Ordinal Functions606841
+Ref: Ordinal Functions-Footnote-1609918
+Ref: Ordinal Functions-Footnote-2610170
+Node: Join Function610381
+Ref: Join Function-Footnote-1612152
+Node: Getlocaltime Function612352
+Node: Readfile Function616088
+Node: Data File Management617927
+Node: Filetrans Function618559
+Node: Rewind Function622628
+Node: File Checking624015
+Ref: File Checking-Footnote-1625147
+Node: Empty Files625348
+Node: Ignoring Assigns627327
+Node: Getopt Function628881
+Ref: Getopt Function-Footnote-1640184
+Node: Passwd Functions640387
+Ref: Passwd Functions-Footnote-1649366
+Node: Group Functions649454
+Ref: Group Functions-Footnote-1657395
+Node: Walking Arrays657608
+Node: Library Functions Summary659211
+Node: Library exercises660599
+Node: Sample Programs661879
+Node: Running Examples662649
+Node: Clones663377
+Node: Cut Program664601
+Node: Egrep Program674469
+Ref: Egrep Program-Footnote-1682440
+Node: Id Program682550
+Node: Split Program686214
+Ref: Split Program-Footnote-1689752
+Node: Tee Program689880
+Node: Uniq Program692687
+Node: Wc Program700117
+Ref: Wc Program-Footnote-1704382
+Node: Miscellaneous Programs704474
+Node: Dupword Program705687
+Node: Alarm Program707718
+Node: Translate Program712532
+Ref: Translate Program-Footnote-1716923
+Ref: Translate Program-Footnote-2717193
+Node: Labels Program717327
+Ref: Labels Program-Footnote-1720698
+Node: Word Sorting720782
+Node: History Sorting724825
+Node: Extract Program726661
+Node: Simple Sed734197
+Node: Igawk Program737259
+Ref: Igawk Program-Footnote-1751570
+Ref: Igawk Program-Footnote-2751771
+Node: Anagram Program751909
+Node: Signature Program754977
+Node: Programs Summary756224
+Node: Programs Exercises757439
+Node: Advanced Features761090
+Node: Nondecimal Data763038
+Node: Array Sorting764615
+Node: Controlling Array Traversal765312
+Node: Array Sorting Functions773592
+Ref: Array Sorting Functions-Footnote-1777499
+Node: Two-way I/O777693
+Ref: Two-way I/O-Footnote-1783209
+Node: TCP/IP Networking783291
+Node: Profiling786135
+Node: Advanced Features Summary793686
+Node: Internationalization795550
+Node: I18N and L10N797030
+Node: Explaining gettext797716
+Ref: Explaining gettext-Footnote-1802856
+Ref: Explaining gettext-Footnote-2803040
+Node: Programmer i18n803205
+Node: Translator i18n807430
+Node: String Extraction808224
+Ref: String Extraction-Footnote-1809185
+Node: Printf Ordering809271
+Ref: Printf Ordering-Footnote-1812053
+Node: I18N Portability812117
+Ref: I18N Portability-Footnote-1814566
+Node: I18N Example814629
+Ref: I18N Example-Footnote-1817351
+Node: Gawk I18N817423
+Node: I18N Summary818061
+Node: Debugger819400
+Node: Debugging820422
+Node: Debugging Concepts820863
+Node: Debugging Terms822719
+Node: Awk Debugging825316
+Node: Sample Debugging Session826208
+Node: Debugger Invocation826728
+Node: Finding The Bug828061
+Node: List of Debugger Commands834543
+Node: Breakpoint Control835875
+Node: Debugger Execution Control839539
+Node: Viewing And Changing Data842899
+Node: Execution Stack846257
+Node: Debugger Info847770
+Node: Miscellaneous Debugger Commands851764
+Node: Readline Support856948
+Node: Limitations857840
+Node: Debugging Summary860114
+Node: Arbitrary Precision Arithmetic861278
+Node: Computer Arithmetic862607
+Ref: Computer Arithmetic-Footnote-1866994
+Node: Math Definitions867051
+Ref: table-ieee-formats869935
+Node: MPFR features870439
+Node: FP Math Caution872081
+Ref: FP Math Caution-Footnote-1873122
+Node: Inexactness of computations873491
+Node: Inexact representation874439
+Node: Comparing FP Values875794
+Node: Errors accumulate876758
+Node: Getting Accuracy878191
+Node: Try To Round880850
+Node: Setting precision881749
+Ref: table-predefined-precision-strings882431
+Node: Setting the rounding mode884224
+Ref: table-gawk-rounding-modes884588
+Ref: Setting the rounding mode-Footnote-1888042
+Node: Arbitrary Precision Integers888221
+Ref: Arbitrary Precision Integers-Footnote-1891224
+Node: POSIX Floating Point Problems891373
+Ref: POSIX Floating Point Problems-Footnote-1895249
+Node: Floating point summary895287
+Node: Dynamic Extensions897504
+Node: Extension Intro899056
+Node: Plugin License900321
+Node: Extension Mechanism Outline901006
+Ref: figure-load-extension901430
+Ref: figure-load-new-function902915
+Ref: figure-call-new-function903917
+Node: Extension API Description905901
+Node: Extension API Functions Introduction907351
+Node: General Data Types912216
+Ref: General Data Types-Footnote-1917909
+Node: Requesting Values918208
+Ref: table-value-types-returned918945
+Node: Memory Allocation Functions919903
+Ref: Memory Allocation Functions-Footnote-1922650
+Node: Constructor Functions922746
+Node: Registration Functions924504
+Node: Extension Functions925189
+Node: Exit Callback Functions927491
+Node: Extension Version String928740
+Node: Input Parsers929390
+Node: Output Wrappers939193
+Node: Two-way processors943709
+Node: Printing Messages945913
+Ref: Printing Messages-Footnote-1946990
+Node: Updating `ERRNO'947142
+Node: Accessing Parameters947881
+Node: Symbol Table Access949111
+Node: Symbol table by name949625
+Node: Symbol table by cookie951601
+Ref: Symbol table by cookie-Footnote-1955734
+Node: Cached values955797
+Ref: Cached values-Footnote-1959301
+Node: Array Manipulation959392
+Ref: Array Manipulation-Footnote-1960490
+Node: Array Data Types960529
+Ref: Array Data Types-Footnote-1963232
+Node: Array Functions963324
+Node: Flattening Arrays967198
+Node: Creating Arrays974050
+Node: Extension API Variables978781
+Node: Extension Versioning979417
+Node: Extension API Informational Variables981318
+Node: Extension API Boilerplate982404
+Node: Finding Extensions986208
+Node: Extension Example986768
+Node: Internal File Description987498
+Node: Internal File Ops991589
+Ref: Internal File Ops-Footnote-11003021
+Node: Using Internal File Ops1003161
+Ref: Using Internal File Ops-Footnote-11005508
+Node: Extension Samples1005776
+Node: Extension Sample File Functions1007300
+Node: Extension Sample Fnmatch1014868
+Node: Extension Sample Fork1016350
+Node: Extension Sample Inplace1017563
+Node: Extension Sample Ord1019238
+Node: Extension Sample Readdir1020074
+Ref: table-readdir-file-types1020930
+Node: Extension Sample Revout1021729
+Node: Extension Sample Rev2way1022320
+Node: Extension Sample Read write array1023061
+Node: Extension Sample Readfile1024940
+Node: Extension Sample API Tests1026040
+Node: Extension Sample Time1026565
+Node: gawkextlib1027880
+Node: Extension summary1030693
+Node: Extension Exercises1034386
+Node: Language History1035108
+Node: V7/SVR3.11036751
+Node: SVR41039071
+Node: POSIX1040513
+Node: BTL1041899
+Node: POSIX/GNU1042633
+Node: Feature History1048232
+Node: Common Extensions1061362
+Node: Ranges and Locales1062674
+Ref: Ranges and Locales-Footnote-11067291
+Ref: Ranges and Locales-Footnote-21067318
+Ref: Ranges and Locales-Footnote-31067552
+Node: Contributors1067773
+Node: History summary1073198
+Node: Installation1074567
+Node: Gawk Distribution1075518
+Node: Getting1076002
+Node: Extracting1076826
+Node: Distribution contents1078468
+Node: Unix Installation1084185
+Node: Quick Installation1084802
+Node: Additional Configuration Options1087244
+Node: Configuration Philosophy1088982
+Node: Non-Unix Installation1091333
+Node: PC Installation1091791
+Node: PC Binary Installation1093102
+Node: PC Compiling1094950
+Ref: PC Compiling-Footnote-11097949
+Node: PC Testing1098054
+Node: PC Using1099230
+Node: Cygwin1103388
+Node: MSYS1104197
+Node: VMS Installation1104711
+Node: VMS Compilation1105507
+Ref: VMS Compilation-Footnote-11106729
+Node: VMS Dynamic Extensions1106787
+Node: VMS Installation Details1108160
+Node: VMS Running1110412
+Node: VMS GNV1113246
+Node: VMS Old Gawk1113969
+Node: Bugs1114439
+Node: Other Versions1118443
+Node: Installation summary1124698
+Node: Notes1125754
+Node: Compatibility Mode1126619
+Node: Additions1127401
+Node: Accessing The Source1128326
+Node: Adding Code1129762
+Node: New Ports1135940
+Node: Derived Files1140421
+Ref: Derived Files-Footnote-11145502
+Ref: Derived Files-Footnote-21145536
+Ref: Derived Files-Footnote-31146132
+Node: Future Extensions1146246
+Node: Implementation Limitations1146852
+Node: Extension Design1148100
+Node: Old Extension Problems1149254
+Ref: Old Extension Problems-Footnote-11150771
+Node: Extension New Mechanism Goals1150828
+Ref: Extension New Mechanism Goals-Footnote-11154188
+Node: Extension Other Design Decisions1154377
+Node: Extension Future Growth1156483
+Node: Old Extension Mechanism1157319
+Node: Notes summary1159081
+Node: Basic Concepts1160267
+Node: Basic High Level1160948
+Ref: figure-general-flow1161220
+Ref: figure-process-flow1161819
+Ref: Basic High Level-Footnote-11165048
+Node: Basic Data Typing1165233
+Node: Glossary1168561
+Node: Copying1193713
+Node: GNU Free Documentation License1231269
+Node: Index1256405

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index f8fc1269..05f89b96 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -3849,10 +3849,8 @@ No space is allowed between the @option{-o} and @var{file}, if
@var{file} is supplied.
@quotation NOTE
-Due to the way @command{gawk} has evolved, with this option
-your program is still executed. This will change in the
-next major release such that @command{gawk} will only
-pretty-print the program and not run it.
+In the past, this option would also execute your program.
+This is no longer the case.
@end quotation
@item @option{-O}
@@ -4338,11 +4336,6 @@ two regexp matchers that @command{gawk} uses internally. (There aren't
supposed to be differences, but occasionally theory and practice don't
coordinate with each other.)
-@item GAWK_NO_PP_RUN
-If this variable exists, then when invoked with the @option{--pretty-print}
-option, @command{gawk} skips running the program. This variable will
-not survive into the next major release.
-
@item GAWK_STACKSIZE
This specifies the amount by which @command{gawk} should grow its
internal evaluation stack, when needed.
@@ -27510,8 +27503,8 @@ When called this way, @command{gawk} ``pretty prints'' the program into
@file{awkprof.out}, without any execution counts.
@quotation NOTE
-The @option{--pretty-print} option still runs your program.
-This will change in the next major release.
+Once upon a time, the @option{--pretty-print} option would also run
+your program. This is is no longer the case.
@end quotation
@c ENDOFRANGE awkp
@c ENDOFRANGE proawk
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 00d544b4..66dd5e43 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -3777,10 +3777,8 @@ No space is allowed between the @option{-o} and @var{file}, if
@var{file} is supplied.
@quotation NOTE
-Due to the way @command{gawk} has evolved, with this option
-your program is still executed. This will change in the
-next major release such that @command{gawk} will only
-pretty-print the program and not run it.
+In the past, this option would also execute your program.
+This is no longer the case.
@end quotation
@item @option{-O}
@@ -4266,11 +4264,6 @@ two regexp matchers that @command{gawk} uses internally. (There aren't
supposed to be differences, but occasionally theory and practice don't
coordinate with each other.)
-@item GAWK_NO_PP_RUN
-If this variable exists, then when invoked with the @option{--pretty-print}
-option, @command{gawk} skips running the program. This variable will
-not survive into the next major release.
-
@item GAWK_STACKSIZE
This specifies the amount by which @command{gawk} should grow its
internal evaluation stack, when needed.
@@ -26625,8 +26618,8 @@ When called this way, @command{gawk} ``pretty prints'' the program into
@file{awkprof.out}, without any execution counts.
@quotation NOTE
-The @option{--pretty-print} option still runs your program.
-This will change in the next major release.
+Once upon a time, the @option{--pretty-print} option would also run
+your program. This is is no longer the case.
@end quotation
@c ENDOFRANGE awkp
@c ENDOFRANGE proawk
diff --git a/main.c b/main.c
index c6fef2f1..901bfea5 100644
--- a/main.c
+++ b/main.c
@@ -739,9 +739,8 @@ out:
if (do_debug)
debug_prog(code_block);
- else if (do_pretty_print && ! do_debug && getenv("GAWK_NO_PP_RUN") != NULL)
- /* hack to run pretty printer only. need a better solution */
- ;
+ else if (do_pretty_print && ! do_profile)
+ ; /* run pretty printer only. */
else
interpret(code_block);
diff --git a/test/ChangeLog b/test/ChangeLog
index a337603b..cb330593 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,8 @@
+2014-06-24 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (profile1, profile4, profile5): Adjust for change to
+ --pretty-print option.
+
2014-06-19 Michael Forney <forney@google.com>
* Makefile.am (poundbang): Fix relative path of AWKPROG.
diff --git a/test/Makefile.am b/test/Makefile.am
index 13069084..05c88501 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -1659,10 +1659,11 @@ dumpvars::
profile1:
@echo $@
- @$(AWK) --pretty-print=ap-$@.out -f "$(srcdir)"/xref.awk "$(srcdir)"/dtdgport.awk > _$@.out1
+ @$(AWK) -f "$(srcdir)"/xref.awk "$(srcdir)"/dtdgport.awk > _$@.out1
+ @$(AWK) --pretty-print=ap-$@.out -f "$(srcdir)"/xref.awk
@$(AWK) -f ap-$@.out "$(srcdir)"/dtdgport.awk > _$@.out2 ; rm ap-$@.out
@$(CMP) _$@.out1 _$@.out2 && rm _$@.out[12] || { echo EXIT CODE: $$? >>_$@ ; \
- cp "$(srcdir)"/dtdgport.awk > $@.ok ; }
+ cp "$(srcdir)"/dtdgport.awk $@.ok ; }
profile2:
@@ -1679,13 +1680,13 @@ profile3:
profile4:
@echo $@
- @GAWK_NO_PP_RUN=1 $(AWK) --profile=ap-$@.out -f "$(srcdir)"/$@.awk > /dev/null
+ @$(AWK) --pretty-print=ap-$@.out -f "$(srcdir)"/$@.awk > /dev/null
@sed 1,2d < ap-$@.out > _$@; rm ap-$@.out
@-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
profile5:
@echo $@
- @GAWK_NO_PP_RUN=1 $(AWK) --profile=ap-$@.out -f "$(srcdir)"/$@.awk > /dev/null
+ @$(AWK) --pretty-print=ap-$@.out -f "$(srcdir)"/$@.awk > /dev/null
@sed 1,2d < ap-$@.out > _$@; rm ap-$@.out
@-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
diff --git a/test/Makefile.in b/test/Makefile.in
index 2632334b..70e7981b 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -2084,10 +2084,11 @@ dumpvars::
profile1:
@echo $@
- @$(AWK) --pretty-print=ap-$@.out -f "$(srcdir)"/xref.awk "$(srcdir)"/dtdgport.awk > _$@.out1
+ @$(AWK) -f "$(srcdir)"/xref.awk "$(srcdir)"/dtdgport.awk > _$@.out1
+ @$(AWK) --pretty-print=ap-$@.out -f "$(srcdir)"/xref.awk
@$(AWK) -f ap-$@.out "$(srcdir)"/dtdgport.awk > _$@.out2 ; rm ap-$@.out
@$(CMP) _$@.out1 _$@.out2 && rm _$@.out[12] || { echo EXIT CODE: $$? >>_$@ ; \
- cp "$(srcdir)"/dtdgport.awk > $@.ok ; }
+ cp "$(srcdir)"/dtdgport.awk $@.ok ; }
profile2:
@echo $@
@@ -2103,13 +2104,13 @@ profile3:
profile4:
@echo $@
- @GAWK_NO_PP_RUN=1 $(AWK) --profile=ap-$@.out -f "$(srcdir)"/$@.awk > /dev/null
+ @$(AWK) --pretty-print=ap-$@.out -f "$(srcdir)"/$@.awk > /dev/null
@sed 1,2d < ap-$@.out > _$@; rm ap-$@.out
@-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
profile5:
@echo $@
- @GAWK_NO_PP_RUN=1 $(AWK) --profile=ap-$@.out -f "$(srcdir)"/$@.awk > /dev/null
+ @$(AWK) --pretty-print=ap-$@.out -f "$(srcdir)"/$@.awk > /dev/null
@sed 1,2d < ap-$@.out > _$@; rm ap-$@.out
@-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@