diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2014-06-24 18:10:22 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2014-06-24 18:10:22 +0300 |
commit | 3ceb23374fc269d883dc5d56e40518db77efea1a (patch) | |
tree | f4679cbdf0b309edc1617ac58dbc515efc3cb977 | |
parent | 78ded8ee8f11a321c96417e7d02dac2f5723a221 (diff) | |
download | egawk-3ceb23374fc269d883dc5d56e40518db77efea1a.tar.gz egawk-3ceb23374fc269d883dc5d56e40518db77efea1a.tar.bz2 egawk-3ceb23374fc269d883dc5d56e40518db77efea1a.zip |
Make --pretty-print not run the program.
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | TODO | 23 | ||||
-rw-r--r-- | doc/ChangeLog | 5 | ||||
-rw-r--r-- | doc/gawk.info | 1093 | ||||
-rw-r--r-- | doc/gawk.texi | 15 | ||||
-rw-r--r-- | doc/gawktexi.in | 15 | ||||
-rw-r--r-- | main.c | 5 | ||||
-rw-r--r-- | test/ChangeLog | 5 | ||||
-rw-r--r-- | test/Makefile.am | 9 | ||||
-rw-r--r-- | test/Makefile.in | 9 |
11 files changed, 591 insertions, 597 deletions
@@ -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: @@ -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 --------------------------- @@ -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 @@ -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 _$@ |