diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2014-10-25 20:19:52 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2014-10-25 20:19:52 +0300 |
commit | 8554673ddcb41cad3634eeced649d3ad53b99ee8 (patch) | |
tree | d35aae85aab57ab9ac78049c41b4540e0f7e2ab6 | |
parent | ae9f4eebdcf5b0e5340480bf71d221e16091266e (diff) | |
download | egawk-8554673ddcb41cad3634eeced649d3ad53b99ee8.tar.gz egawk-8554673ddcb41cad3634eeced649d3ad53b99ee8.tar.bz2 egawk-8554673ddcb41cad3634eeced649d3ad53b99ee8.zip |
Additional doc fix.
-rw-r--r-- | doc/ChangeLog | 1 | ||||
-rw-r--r-- | doc/gawk.info | 1082 | ||||
-rw-r--r-- | doc/gawk.texi | 26 | ||||
-rw-r--r-- | doc/gawktexi.in | 6 |
4 files changed, 578 insertions, 537 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog index 58e62c36..3ca49d9a 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,6 +1,7 @@ 2014-10-25 Arnold D. Robbins <arnold@skeeve.com> * gawktexi.in: Minor typo fixes. + Fix discussion of \x, per note from Antonio Colombo. 2014-10-17 Arnold D. Robbins <arnold@skeeve.com> diff --git a/doc/gawk.info b/doc/gawk.info index ee73b940..d574aa8b 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -3422,14 +3422,15 @@ sequences apply to both string constants and regexp constants: hexadecimal digits (`0'-`9', and either `A'-`F' or `a'-`f'). A maximum of two digts are allowed after the `\x'. Any further hexadecimal digits are treated as simple letters or numbers. - (c.e.) + (c.e.) (The `\x' escape sequence is not allowed in POSIX awk.) CAUTION: In ISO C, the escape sequence continues until the first nonhexadecimal digit is seen. For many years, `gawk' would continue incorporating hexadecimal digits into the value until a non-hexadecimal digit or the end of the string was encountered. However, using more than two hexadecimal - digits produces + digits produced undefined results. As of version *FIXME:* + 4.3.0, only two digits are processed. `\/' A literal slash (necessary for regexp constants only). This @@ -19868,8 +19869,7 @@ output. They are as follows: you typed when you wrote it. This is because `gawk' creates the profiled version by "pretty printing" its internal representation of the program. The advantage to this is that `gawk' can produce a -standard representation. The disadvantage is that all source-code -comments are lost. Also, things such as: +standard representation. Also, things such as: /foo/ @@ -19931,6 +19931,22 @@ without any execution counts. NOTE: Once upon a time, the `--pretty-print' option would also run your program. This is is no longer the case. + There is a significant difference between the output created when +profiling, and that created when pretty-printing. Pretty-printed output +preserves the original comments that were in the program, although their +placement may not correspond exactly to their original locations in the +source code. + + However, as a deliberate design decision, profiling output _omits_ +the original program's comments. This allows you to focus on the +execution count data and helps you avoid the temptation to use the +profiler for pretty-printing. + + Additionally, pretty-printed output does not have the leading +indentation that the profiling output does. This makes it easy to +pretty-print your code once development is completed, and then use the +result as the final version of your program. + File: gawk.info, Node: Advanced Features Summary, Prev: Profiling, Up: Advanced Features @@ -31509,10 +31525,10 @@ Index (line 8) * [] (square brackets), regexp operator: Regexp Operators. (line 56) * \ (backslash): Comments. (line 50) -* \ (backslash), \" escape sequence: Escape Sequences. (line 84) +* \ (backslash), \" escape sequence: Escape Sequences. (line 85) * \ (backslash), \' operator (gawk): GNU Regexp Operators. (line 56) -* \ (backslash), \/ escape sequence: Escape Sequences. (line 75) +* \ (backslash), \/ escape sequence: Escape Sequences. (line 76) * \ (backslash), \< operator (gawk): GNU Regexp Operators. (line 30) * \ (backslash), \> operator (gawk): GNU Regexp Operators. @@ -31552,7 +31568,7 @@ Index * \ (backslash), in bracket expressions: Bracket Expressions. (line 17) * \ (backslash), in escape sequences: Escape Sequences. (line 6) * \ (backslash), in escape sequences, POSIX and: Escape Sequences. - (line 120) + (line 121) * \ (backslash), in regexp constants: Computed Regexps. (line 29) * \ (backslash), in shell commands: Quoting. (line 48) * \ (backslash), regexp operator: Regexp Operators. (line 18) @@ -31778,10 +31794,10 @@ Index * awkvars.out file: Options. (line 93) * b debugger command (alias for break): Breakpoint Control. (line 11) * backslash (\): Comments. (line 50) -* backslash (\), \" escape sequence: Escape Sequences. (line 84) +* backslash (\), \" escape sequence: Escape Sequences. (line 85) * backslash (\), \' operator (gawk): GNU Regexp Operators. (line 56) -* backslash (\), \/ escape sequence: Escape Sequences. (line 75) +* backslash (\), \/ escape sequence: Escape Sequences. (line 76) * backslash (\), \< operator (gawk): GNU Regexp Operators. (line 30) * backslash (\), \> operator (gawk): GNU Regexp Operators. @@ -31821,7 +31837,7 @@ Index * backslash (\), in bracket expressions: Bracket Expressions. (line 17) * backslash (\), in escape sequences: Escape Sequences. (line 6) * backslash (\), in escape sequences, POSIX and: Escape Sequences. - (line 120) + (line 121) * backslash (\), in regexp constants: Computed Regexps. (line 29) * backslash (\), in shell commands: Quoting. (line 48) * backslash (\), regexp operator: Regexp Operators. (line 18) @@ -31927,7 +31943,7 @@ Index (line 67) * Brian Kernighan's awk <12>: GNU Regexp Operators. (line 83) -* Brian Kernighan's awk <13>: Escape Sequences. (line 124) +* Brian Kernighan's awk <13>: Escape Sequences. (line 125) * Brian Kernighan's awk: When. (line 21) * Brian Kernighan's awk, extensions: BTL. (line 6) * Brian Kernighan's awk, source code: Other Versions. (line 13) @@ -32152,7 +32168,7 @@ Index * dark corner, CONVFMT variable: Strings And Numbers. (line 40) * dark corner, escape sequences: Other Arguments. (line 38) * dark corner, escape sequences, for metacharacters: Escape Sequences. - (line 142) + (line 143) * dark corner, exit statement: Exit Statement. (line 30) * dark corner, field separators: Field Splitting Summary. (line 46) @@ -32430,7 +32446,7 @@ Index * dump debugger command: Miscellaneous Debugger Commands. (line 9) * dupword.awk program: Dupword Program. (line 31) -* dynamic profiling: Profiling. (line 179) +* dynamic profiling: Profiling. (line 178) * dynamically loaded extensions: Dynamic Extensions. (line 6) * e debugger command (alias for enable): Breakpoint Control. (line 73) * EBCDIC: Ordinal Functions. (line 45) @@ -32801,7 +32817,7 @@ Index (line 44) * G-d: Acknowledgments. (line 94) * Garfinkle, Scott: Contributors. (line 34) -* gawk program, dynamic profiling: Profiling. (line 179) +* gawk program, dynamic profiling: Profiling. (line 178) * gawk version: Auto-set. (line 214) * gawk, ARGIND variable in: Other Arguments. (line 15) * gawk, awk and <1>: This Manual. (line 14) @@ -32825,7 +32841,7 @@ Index * gawk, ERRNO variable in <4>: Close Files And Pipes. (line 140) * gawk, ERRNO variable in: Getline. (line 19) -* gawk, escape sequences: Escape Sequences. (line 132) +* gawk, escape sequences: Escape Sequences. (line 133) * gawk, extensions, disabling: Options. (line 254) * gawk, features, adding: Adding Code. (line 6) * gawk, features, advanced: Advanced Features. (line 6) @@ -32992,7 +33008,7 @@ Index * history expansion, in debugger: Readline Support. (line 6) * histsort.awk program: History Sorting. (line 25) * Hughes, Phil: Acknowledgments. (line 43) -* HUP signal, for dynamic profiling: Profiling. (line 211) +* HUP signal, for dynamic profiling: Profiling. (line 210) * hyphen (-), - operator: Precedence. (line 52) * hyphen (-), -- operator <1>: Precedence. (line 46) * hyphen (-), -- operator: Increment Ops. (line 48) @@ -33072,7 +33088,7 @@ Index * installing gawk: Installation. (line 6) * instruction tracing, in debugger: Debugger Info. (line 89) * int: Numeric Functions. (line 38) -* INT signal (MS-Windows): Profiling. (line 214) +* INT signal (MS-Windows): Profiling. (line 213) * integer array indices: Numeric Array Subscripts. (line 31) * integers, arbitrary precision: Arbitrary Precision Integers. @@ -33128,7 +33144,7 @@ Index * Kernighan, Brian <9>: Acknowledgments. (line 78) * Kernighan, Brian <10>: Conventions. (line 38) * Kernighan, Brian: History. (line 17) -* kill command, dynamic profiling: Profiling. (line 188) +* kill command, dynamic profiling: Profiling. (line 187) * Knights, jedi: Undocumented. (line 6) * Kwok, Conrad: Contributors. (line 34) * l debugger command (alias for list): Miscellaneous Debugger Commands. @@ -33264,7 +33280,7 @@ Index * mawk utility <2>: Nextfile Statement. (line 47) * mawk utility <3>: Concatenation. (line 36) * mawk utility <4>: Getline/Pipe. (line 62) -* mawk utility: Escape Sequences. (line 132) +* mawk utility: Escape Sequences. (line 133) * maximum precision supported by MPFR library: Auto-set. (line 228) * McIlroy, Doug: Glossary. (line 149) * McPhee, Patrick: Contributors. (line 100) @@ -33277,7 +33293,7 @@ Index (line 54) * messages from extensions: Printing Messages. (line 6) * metacharacters in regular expressions: Regexp Operators. (line 6) -* metacharacters, escape sequences for: Escape Sequences. (line 138) +* metacharacters, escape sequences for: Escape Sequences. (line 139) * minimum precision supported by MPFR library: Auto-set. (line 231) * mktime: Time Functions. (line 25) * modifiers, in format specifiers: Format Modifiers. (line 6) @@ -33494,14 +33510,14 @@ Index * plus sign (+), += operator: Assignment Ops. (line 82) * plus sign (+), regexp operator: Regexp Operators. (line 105) * pointers to functions: Indirect Calls. (line 6) -* portability: Escape Sequences. (line 102) +* portability: Escape Sequences. (line 103) * portability, #! (executable scripts): Executable Scripts. (line 33) * portability, ** operator and: Arithmetic Ops. (line 81) * portability, **= operator and: Assignment Ops. (line 143) * portability, ARGV variable: Executable Scripts. (line 59) * portability, backslash continuation and: Statements/Lines. (line 30) * portability, backslash in escape sequences: Escape Sequences. - (line 120) + (line 121) * portability, close() function and: Close Files And Pipes. (line 81) * portability, data files as single record: gawk split records. @@ -33540,7 +33556,7 @@ Index * POSIX awk, < operator and: Getline/File. (line 26) * POSIX awk, arithmetic operators and: Arithmetic Ops. (line 30) * POSIX awk, backslashes in string constants: Escape Sequences. - (line 120) + (line 121) * POSIX awk, BEGIN/END patterns: I/O And BEGIN/END. (line 16) * POSIX awk, bracket expressions and: Bracket Expressions. (line 26) * POSIX awk, bracket expressions and, character classes: Bracket Expressions. @@ -33635,7 +33651,7 @@ Index * PROCINFO, values of sorted_in: Controlling Scanning. (line 26) * profiling awk programs: Profiling. (line 6) -* profiling awk programs, dynamically: Profiling. (line 179) +* profiling awk programs, dynamically: Profiling. (line 178) * program identifiers: Auto-set. (line 155) * program, definition of: Getting Started. (line 21) * programming conventions, --non-decimal-data option: Nondecimal Data. @@ -33671,7 +33687,7 @@ Index * QuikTrim Awk: Other Versions. (line 135) * quit debugger command: Miscellaneous Debugger Commands. (line 99) -* QUIT signal (MS-Windows): Profiling. (line 214) +* QUIT signal (MS-Windows): Profiling. (line 213) * quoting in gawk command lines: Long. (line 26) * quoting in gawk command lines, tricks for: Quoting. (line 91) * quoting, for small awk programs: Comments. (line 27) @@ -33923,14 +33939,14 @@ Index * sidebar, A Constant's Base Does Not Affect Its Value: Nondecimal-numbers. (line 64) * sidebar, Backslash Before Regular Characters: Escape Sequences. - (line 118) + (line 119) * sidebar, Changing FS Does Not Affect the Fields: Field Splitting Summary. (line 38) * sidebar, Changing NR and FNR: Auto-set. (line 319) * sidebar, Controlling Output Buffering with system(): I/O Functions. (line 137) * sidebar, Escape Sequences for Metacharacters: Escape Sequences. - (line 136) + (line 137) * sidebar, FS and IGNORECASE: Field Splitting Summary. (line 64) * sidebar, Interactive Versus Noninteractive Buffering: I/O Functions. @@ -33952,15 +33968,15 @@ Index (line 57) * sidebar, Using close()'s Return Value: Close Files And Pipes. (line 130) -* SIGHUP signal, for dynamic profiling: Profiling. (line 211) -* SIGINT signal (MS-Windows): Profiling. (line 214) -* signals, HUP/SIGHUP, for profiling: Profiling. (line 211) -* signals, INT/SIGINT (MS-Windows): Profiling. (line 214) -* signals, QUIT/SIGQUIT (MS-Windows): Profiling. (line 214) -* signals, USR1/SIGUSR1, for profiling: Profiling. (line 188) +* SIGHUP signal, for dynamic profiling: Profiling. (line 210) +* SIGINT signal (MS-Windows): Profiling. (line 213) +* signals, HUP/SIGHUP, for profiling: Profiling. (line 210) +* signals, INT/SIGINT (MS-Windows): Profiling. (line 213) +* signals, QUIT/SIGQUIT (MS-Windows): Profiling. (line 213) +* signals, USR1/SIGUSR1, for profiling: Profiling. (line 187) * signature program: Signature Program. (line 6) -* SIGQUIT signal (MS-Windows): Profiling. (line 214) -* SIGUSR1 signal, for dynamic profiling: Profiling. (line 188) +* SIGQUIT signal (MS-Windows): Profiling. (line 213) +* SIGUSR1 signal, for dynamic profiling: Profiling. (line 187) * silent debugger command: Debugger Execution Control. (line 10) * sin: Numeric Functions. (line 91) @@ -34158,7 +34174,7 @@ Index (line 37) * troubleshooting, awk uses FS not IFS: Field Separators. (line 30) * troubleshooting, backslash before nonspecial character: Escape Sequences. - (line 120) + (line 121) * troubleshooting, division: Arithmetic Ops. (line 44) * troubleshooting, fatal errors, field widths, specifying: Constant Size. (line 23) @@ -34214,7 +34230,7 @@ Index * uniq.awk program: Uniq Program. (line 65) * Unix: Glossary. (line 611) * Unix awk, backslashes in escape sequences: Escape Sequences. - (line 132) + (line 133) * Unix awk, close() function and: Close Files And Pipes. (line 132) * Unix awk, password files, field separators and: Command Line Field Separator. @@ -34234,7 +34250,7 @@ Index * user-modifiable variables: User-modified. (line 6) * users, information about, printing: Id Program. (line 6) * users, information about, retrieving: Passwd Functions. (line 16) -* USR1 signal, for dynamic profiling: Profiling. (line 188) +* USR1 signal, for dynamic profiling: Profiling. (line 187) * values, numeric: Basic Data Typing. (line 13) * values, string: Basic Data Typing. (line 13) * variable assignments and input files: Other Arguments. (line 26) @@ -34419,500 +34435,500 @@ Node: Invoking Summary150472 Node: Regexp152138 Node: Regexp Usage153597 Node: Escape Sequences155630 -Node: Regexp Operators161730 -Ref: Regexp Operators-Footnote-1169164 -Ref: Regexp Operators-Footnote-2169311 -Node: Bracket Expressions169409 -Ref: table-char-classes171426 -Node: Leftmost Longest174366 -Node: Computed Regexps175668 -Node: GNU Regexp Operators179065 -Node: Case-sensitivity182767 -Ref: Case-sensitivity-Footnote-1185657 -Ref: Case-sensitivity-Footnote-2185892 -Node: Regexp Summary186000 -Node: Reading Files187469 -Node: Records189563 -Node: awk split records190295 -Node: gawk split records195209 -Ref: gawk split records-Footnote-1199748 -Node: Fields199785 -Ref: Fields-Footnote-1202583 -Node: Nonconstant Fields202669 -Ref: Nonconstant Fields-Footnote-1204905 -Node: Changing Fields205107 -Node: Field Separators211039 -Node: Default Field Splitting213743 -Node: Regexp Field Splitting214860 -Node: Single Character Fields218210 -Node: Command Line Field Separator219269 -Node: Full Line Fields222481 -Ref: Full Line Fields-Footnote-1222989 -Node: Field Splitting Summary223035 -Ref: Field Splitting Summary-Footnote-1226166 -Node: Constant Size226267 -Node: Splitting By Content230873 -Ref: Splitting By Content-Footnote-1234946 -Node: Multiple Line234986 -Ref: Multiple Line-Footnote-1240875 -Node: Getline241054 -Node: Plain Getline243265 -Node: Getline/Variable245905 -Node: Getline/File247052 -Node: Getline/Variable/File248436 -Ref: Getline/Variable/File-Footnote-1250037 -Node: Getline/Pipe250124 -Node: Getline/Variable/Pipe252807 -Node: Getline/Coprocess253938 -Node: Getline/Variable/Coprocess255190 -Node: Getline Notes255929 -Node: Getline Summary258721 -Ref: table-getline-variants259133 -Node: Read Timeout259962 -Ref: Read Timeout-Footnote-1263776 -Node: Command-line directories263834 -Node: Input Summary264738 -Node: Input Exercises267990 -Node: Printing268718 -Node: Print270495 -Node: Print Examples271952 -Node: Output Separators274731 -Node: OFMT276749 -Node: Printf278103 -Node: Basic Printf278888 -Node: Control Letters280459 -Node: Format Modifiers284443 -Node: Printf Examples290450 -Node: Redirection292932 -Node: Special FD299771 -Ref: Special FD-Footnote-1302928 -Node: Special Files303002 -Node: Other Inherited Files303618 -Node: Special Network304618 -Node: Special Caveats305479 -Node: Close Files And Pipes306430 -Ref: Close Files And Pipes-Footnote-1313609 -Ref: Close Files And Pipes-Footnote-2313757 -Node: Output Summary313907 -Node: Output Exercises314903 -Node: Expressions315583 -Node: Values316768 -Node: Constants317444 -Node: Scalar Constants318124 -Ref: Scalar Constants-Footnote-1318983 -Node: Nondecimal-numbers319233 -Node: Regexp Constants322233 -Node: Using Constant Regexps322758 -Node: Variables325896 -Node: Using Variables326551 -Node: Assignment Options328461 -Node: Conversion330336 -Node: Strings And Numbers330860 -Ref: Strings And Numbers-Footnote-1333924 -Node: Locale influences conversions334033 -Ref: table-locale-affects336778 -Node: All Operators337366 -Node: Arithmetic Ops337996 -Node: Concatenation340501 -Ref: Concatenation-Footnote-1343320 -Node: Assignment Ops343426 -Ref: table-assign-ops348409 -Node: Increment Ops349687 -Node: Truth Values and Conditions353125 -Node: Truth Values354208 -Node: Typing and Comparison355257 -Node: Variable Typing356050 -Node: Comparison Operators359702 -Ref: table-relational-ops360112 -Node: POSIX String Comparison363627 -Ref: POSIX String Comparison-Footnote-1364699 -Node: Boolean Ops364837 -Ref: Boolean Ops-Footnote-1369316 -Node: Conditional Exp369407 -Node: Function Calls371134 -Node: Precedence375014 -Node: Locales378682 -Node: Expressions Summary380313 -Node: Patterns and Actions382887 -Node: Pattern Overview384007 -Node: Regexp Patterns385686 -Node: Expression Patterns386229 -Node: Ranges390009 -Node: BEGIN/END393115 -Node: Using BEGIN/END393877 -Ref: Using BEGIN/END-Footnote-1396614 -Node: I/O And BEGIN/END396720 -Node: BEGINFILE/ENDFILE399034 -Node: Empty401935 -Node: Using Shell Variables402252 -Node: Action Overview404528 -Node: Statements406855 -Node: If Statement408703 -Node: While Statement410201 -Node: Do Statement412229 -Node: For Statement413371 -Node: Switch Statement416526 -Node: Break Statement418914 -Node: Continue Statement420955 -Node: Next Statement422780 -Node: Nextfile Statement425160 -Node: Exit Statement427790 -Node: Built-in Variables430193 -Node: User-modified431326 -Ref: User-modified-Footnote-1439006 -Node: Auto-set439068 -Ref: Auto-set-Footnote-1452435 -Ref: Auto-set-Footnote-2452640 -Node: ARGC and ARGV452696 -Node: Pattern Action Summary456900 -Node: Arrays459327 -Node: Array Basics460656 -Node: Array Intro461500 -Ref: figure-array-elements463464 -Ref: Array Intro-Footnote-1465988 -Node: Reference to Elements466116 -Node: Assigning Elements468566 -Node: Array Example469057 -Node: Scanning an Array470815 -Node: Controlling Scanning473831 -Ref: Controlling Scanning-Footnote-1479020 -Node: Numeric Array Subscripts479336 -Node: Uninitialized Subscripts481521 -Node: Delete483138 -Ref: Delete-Footnote-1485882 -Node: Multidimensional485939 -Node: Multiscanning489034 -Node: Arrays of Arrays490623 -Node: Arrays Summary495384 -Node: Functions497489 -Node: Built-in498362 -Node: Calling Built-in499440 -Node: Numeric Functions501428 -Ref: Numeric Functions-Footnote-1506252 -Ref: Numeric Functions-Footnote-2506609 -Ref: Numeric Functions-Footnote-3506657 -Node: String Functions506926 -Ref: String Functions-Footnote-1530398 -Ref: String Functions-Footnote-2530527 -Ref: String Functions-Footnote-3530775 -Node: Gory Details530862 -Ref: table-sub-escapes532643 -Ref: table-sub-proposed534163 -Ref: table-posix-sub535527 -Ref: table-gensub-escapes537067 -Ref: Gory Details-Footnote-1537899 -Node: I/O Functions538050 -Ref: I/O Functions-Footnote-1545151 -Node: Time Functions545298 -Ref: Time Functions-Footnote-1555767 -Ref: Time Functions-Footnote-2555835 -Ref: Time Functions-Footnote-3555993 -Ref: Time Functions-Footnote-4556104 -Ref: Time Functions-Footnote-5556216 -Ref: Time Functions-Footnote-6556443 -Node: Bitwise Functions556709 -Ref: table-bitwise-ops557271 -Ref: Bitwise Functions-Footnote-1561579 -Node: Type Functions561748 -Node: I18N Functions562897 -Node: User-defined564542 -Node: Definition Syntax565346 -Ref: Definition Syntax-Footnote-1570752 -Node: Function Example570821 -Ref: Function Example-Footnote-1573738 -Node: Function Caveats573760 -Node: Calling A Function574278 -Node: Variable Scope575233 -Node: Pass By Value/Reference578221 -Node: Return Statement581731 -Node: Dynamic Typing584715 -Node: Indirect Calls585644 -Ref: Indirect Calls-Footnote-1596948 -Node: Functions Summary597076 -Node: Library Functions599775 -Ref: Library Functions-Footnote-1603393 -Ref: Library Functions-Footnote-2603536 -Node: Library Names603707 -Ref: Library Names-Footnote-1607167 -Ref: Library Names-Footnote-2607387 -Node: General Functions607473 -Node: Strtonum Function608576 -Node: Assert Function611596 -Node: Round Function614920 -Node: Cliff Random Function616461 -Node: Ordinal Functions617477 -Ref: Ordinal Functions-Footnote-1620542 -Ref: Ordinal Functions-Footnote-2620794 -Node: Join Function621005 -Ref: Join Function-Footnote-1622776 -Node: Getlocaltime Function622976 -Node: Readfile Function626717 -Node: Shell Quoting628687 -Node: Data File Management630088 -Node: Filetrans Function630720 -Node: Rewind Function634779 -Node: File Checking636164 -Ref: File Checking-Footnote-1637492 -Node: Empty Files637693 -Node: Ignoring Assigns639672 -Node: Getopt Function641223 -Ref: Getopt Function-Footnote-1652683 -Node: Passwd Functions652886 -Ref: Passwd Functions-Footnote-1661737 -Node: Group Functions661825 -Ref: Group Functions-Footnote-1669728 -Node: Walking Arrays669941 -Node: Library Functions Summary671544 -Node: Library Exercises672945 -Node: Sample Programs674225 -Node: Running Examples674995 -Node: Clones675723 -Node: Cut Program676947 -Node: Egrep Program686677 -Ref: Egrep Program-Footnote-1694181 -Node: Id Program694291 -Node: Split Program697935 -Ref: Split Program-Footnote-1701381 -Node: Tee Program701509 -Node: Uniq Program704296 -Node: Wc Program711717 -Ref: Wc Program-Footnote-1715965 -Node: Miscellaneous Programs716057 -Node: Dupword Program717270 -Node: Alarm Program719301 -Node: Translate Program724105 -Ref: Translate Program-Footnote-1728669 -Node: Labels Program728939 -Ref: Labels Program-Footnote-1732288 -Node: Word Sorting732372 -Node: History Sorting736442 -Node: Extract Program738278 -Node: Simple Sed745810 -Node: Igawk Program748872 -Ref: Igawk Program-Footnote-1763198 -Ref: Igawk Program-Footnote-2763399 -Ref: Igawk Program-Footnote-3763521 -Node: Anagram Program763636 -Node: Signature Program766698 -Node: Programs Summary767945 -Node: Programs Exercises769138 -Ref: Programs Exercises-Footnote-1773269 -Node: Advanced Features773360 -Node: Nondecimal Data775308 -Node: Array Sorting776898 -Node: Controlling Array Traversal777595 -Ref: Controlling Array Traversal-Footnote-1785926 -Node: Array Sorting Functions786044 -Ref: Array Sorting Functions-Footnote-1789936 -Node: Two-way I/O790130 -Ref: Two-way I/O-Footnote-1795074 -Ref: Two-way I/O-Footnote-2795260 -Node: TCP/IP Networking795342 -Node: Profiling798214 -Node: Advanced Features Summary805767 -Node: Internationalization807700 -Node: I18N and L10N809180 -Node: Explaining gettext809866 -Ref: Explaining gettext-Footnote-1814895 -Ref: Explaining gettext-Footnote-2815079 -Node: Programmer i18n815244 -Ref: Programmer i18n-Footnote-1820110 -Node: Translator i18n820159 -Node: String Extraction820953 -Ref: String Extraction-Footnote-1822084 -Node: Printf Ordering822170 -Ref: Printf Ordering-Footnote-1824956 -Node: I18N Portability825020 -Ref: I18N Portability-Footnote-1827469 -Node: I18N Example827532 -Ref: I18N Example-Footnote-1830332 -Node: Gawk I18N830404 -Node: I18N Summary831042 -Node: Debugger832381 -Node: Debugging833403 -Node: Debugging Concepts833844 -Node: Debugging Terms835701 -Node: Awk Debugging838276 -Node: Sample Debugging Session839168 -Node: Debugger Invocation839688 -Node: Finding The Bug841072 -Node: List of Debugger Commands847547 -Node: Breakpoint Control848879 -Node: Debugger Execution Control852571 -Node: Viewing And Changing Data855935 -Node: Execution Stack859300 -Node: Debugger Info860938 -Node: Miscellaneous Debugger Commands864955 -Node: Readline Support870147 -Node: Limitations871039 -Node: Debugging Summary873136 -Node: Arbitrary Precision Arithmetic874304 -Node: Computer Arithmetic875720 -Ref: table-numeric-ranges879321 -Ref: Computer Arithmetic-Footnote-1880180 -Node: Math Definitions880237 -Ref: table-ieee-formats883524 -Ref: Math Definitions-Footnote-1884128 -Node: MPFR features884233 -Node: FP Math Caution885904 -Ref: FP Math Caution-Footnote-1886954 -Node: Inexactness of computations887323 -Node: Inexact representation888271 -Node: Comparing FP Values889626 -Node: Errors accumulate890699 -Node: Getting Accuracy892132 -Node: Try To Round894791 -Node: Setting precision895690 -Ref: table-predefined-precision-strings896374 -Node: Setting the rounding mode898168 -Ref: table-gawk-rounding-modes898532 -Ref: Setting the rounding mode-Footnote-1901986 -Node: Arbitrary Precision Integers902165 -Ref: Arbitrary Precision Integers-Footnote-1907069 -Node: POSIX Floating Point Problems907218 -Ref: POSIX Floating Point Problems-Footnote-1911094 -Node: Floating point summary911132 -Node: Dynamic Extensions913324 -Node: Extension Intro914876 -Node: Plugin License916142 -Node: Extension Mechanism Outline916939 -Ref: figure-load-extension917367 -Ref: figure-register-new-function918847 -Ref: figure-call-new-function919851 -Node: Extension API Description921837 -Node: Extension API Functions Introduction923287 -Node: General Data Types928123 -Ref: General Data Types-Footnote-1933810 -Node: Memory Allocation Functions934109 -Ref: Memory Allocation Functions-Footnote-1936939 -Node: Constructor Functions937035 -Node: Registration Functions938769 -Node: Extension Functions939454 -Node: Exit Callback Functions941750 -Node: Extension Version String942998 -Node: Input Parsers943648 -Node: Output Wrappers953463 -Node: Two-way processors957979 -Node: Printing Messages960183 -Ref: Printing Messages-Footnote-1961260 -Node: Updating `ERRNO'961412 -Node: Requesting Values962152 -Ref: table-value-types-returned962880 -Node: Accessing Parameters963838 -Node: Symbol Table Access965069 -Node: Symbol table by name965583 -Node: Symbol table by cookie967563 -Ref: Symbol table by cookie-Footnote-1971702 -Node: Cached values971765 -Ref: Cached values-Footnote-1975269 -Node: Array Manipulation975360 -Ref: Array Manipulation-Footnote-1976458 -Node: Array Data Types976497 -Ref: Array Data Types-Footnote-1979154 -Node: Array Functions979246 -Node: Flattening Arrays983100 -Node: Creating Arrays989987 -Node: Extension API Variables994754 -Node: Extension Versioning995390 -Node: Extension API Informational Variables997291 -Node: Extension API Boilerplate998379 -Node: Finding Extensions1002195 -Node: Extension Example1002755 -Node: Internal File Description1003527 -Node: Internal File Ops1007594 -Ref: Internal File Ops-Footnote-11019252 -Node: Using Internal File Ops1019392 -Ref: Using Internal File Ops-Footnote-11021775 -Node: Extension Samples1022048 -Node: Extension Sample File Functions1023572 -Node: Extension Sample Fnmatch1031174 -Node: Extension Sample Fork1032656 -Node: Extension Sample Inplace1033869 -Node: Extension Sample Ord1035544 -Node: Extension Sample Readdir1036380 -Ref: table-readdir-file-types1037256 -Node: Extension Sample Revout1038067 -Node: Extension Sample Rev2way1038658 -Node: Extension Sample Read write array1039399 -Node: Extension Sample Readfile1041338 -Node: Extension Sample Time1042433 -Node: Extension Sample API Tests1043782 -Node: gawkextlib1044273 -Node: Extension summary1046923 -Node: Extension Exercises1050605 -Node: Language History1051327 -Node: V7/SVR3.11052984 -Node: SVR41055165 -Node: POSIX1056610 -Node: BTL1057999 -Node: POSIX/GNU1058733 -Node: Feature History1064362 -Node: Common Extensions1077460 -Node: Ranges and Locales1078784 -Ref: Ranges and Locales-Footnote-11083423 -Ref: Ranges and Locales-Footnote-21083450 -Ref: Ranges and Locales-Footnote-31083684 -Node: Contributors1083905 -Node: History summary1089445 -Node: Installation1090814 -Node: Gawk Distribution1091770 -Node: Getting1092254 -Node: Extracting1093078 -Node: Distribution contents1094720 -Node: Unix Installation1100490 -Node: Quick Installation1101107 -Node: Additional Configuration Options1103538 -Node: Configuration Philosophy1105278 -Node: Non-Unix Installation1107629 -Node: PC Installation1108087 -Node: PC Binary Installation1109413 -Node: PC Compiling1111261 -Ref: PC Compiling-Footnote-11114282 -Node: PC Testing1114387 -Node: PC Using1115563 -Node: Cygwin1119678 -Node: MSYS1120501 -Node: VMS Installation1120999 -Node: VMS Compilation1121791 -Ref: VMS Compilation-Footnote-11123013 -Node: VMS Dynamic Extensions1123071 -Node: VMS Installation Details1124755 -Node: VMS Running1127007 -Node: VMS GNV1129848 -Node: VMS Old Gawk1130582 -Node: Bugs1131052 -Node: Other Versions1134956 -Node: Installation summary1141169 -Node: Notes1142225 -Node: Compatibility Mode1143090 -Node: Additions1143872 -Node: Accessing The Source1144797 -Node: Adding Code1146233 -Node: New Ports1152405 -Node: Derived Files1156887 -Ref: Derived Files-Footnote-11162362 -Ref: Derived Files-Footnote-21162396 -Ref: Derived Files-Footnote-31162992 -Node: Future Extensions1163106 -Node: Implementation Limitations1163712 -Node: Extension Design1164960 -Node: Old Extension Problems1166114 -Ref: Old Extension Problems-Footnote-11167631 -Node: Extension New Mechanism Goals1167688 -Ref: Extension New Mechanism Goals-Footnote-11171048 -Node: Extension Other Design Decisions1171237 -Node: Extension Future Growth1173345 -Node: Old Extension Mechanism1174181 -Node: Notes summary1175943 -Node: Basic Concepts1177129 -Node: Basic High Level1177810 -Ref: figure-general-flow1178082 -Ref: figure-process-flow1178681 -Ref: Basic High Level-Footnote-11181910 -Node: Basic Data Typing1182095 -Node: Glossary1185423 -Node: Copying1210581 -Node: GNU Free Documentation License1248137 -Node: Index1273273 +Node: Regexp Operators161878 +Ref: Regexp Operators-Footnote-1169312 +Ref: Regexp Operators-Footnote-2169459 +Node: Bracket Expressions169557 +Ref: table-char-classes171574 +Node: Leftmost Longest174514 +Node: Computed Regexps175816 +Node: GNU Regexp Operators179213 +Node: Case-sensitivity182915 +Ref: Case-sensitivity-Footnote-1185805 +Ref: Case-sensitivity-Footnote-2186040 +Node: Regexp Summary186148 +Node: Reading Files187617 +Node: Records189711 +Node: awk split records190443 +Node: gawk split records195357 +Ref: gawk split records-Footnote-1199896 +Node: Fields199933 +Ref: Fields-Footnote-1202731 +Node: Nonconstant Fields202817 +Ref: Nonconstant Fields-Footnote-1205053 +Node: Changing Fields205255 +Node: Field Separators211187 +Node: Default Field Splitting213891 +Node: Regexp Field Splitting215008 +Node: Single Character Fields218358 +Node: Command Line Field Separator219417 +Node: Full Line Fields222629 +Ref: Full Line Fields-Footnote-1223137 +Node: Field Splitting Summary223183 +Ref: Field Splitting Summary-Footnote-1226314 +Node: Constant Size226415 +Node: Splitting By Content231021 +Ref: Splitting By Content-Footnote-1235094 +Node: Multiple Line235134 +Ref: Multiple Line-Footnote-1241023 +Node: Getline241202 +Node: Plain Getline243413 +Node: Getline/Variable246053 +Node: Getline/File247200 +Node: Getline/Variable/File248584 +Ref: Getline/Variable/File-Footnote-1250185 +Node: Getline/Pipe250272 +Node: Getline/Variable/Pipe252955 +Node: Getline/Coprocess254086 +Node: Getline/Variable/Coprocess255338 +Node: Getline Notes256077 +Node: Getline Summary258869 +Ref: table-getline-variants259281 +Node: Read Timeout260110 +Ref: Read Timeout-Footnote-1263924 +Node: Command-line directories263982 +Node: Input Summary264886 +Node: Input Exercises268138 +Node: Printing268866 +Node: Print270643 +Node: Print Examples272100 +Node: Output Separators274879 +Node: OFMT276897 +Node: Printf278251 +Node: Basic Printf279036 +Node: Control Letters280607 +Node: Format Modifiers284591 +Node: Printf Examples290598 +Node: Redirection293080 +Node: Special FD299919 +Ref: Special FD-Footnote-1303076 +Node: Special Files303150 +Node: Other Inherited Files303766 +Node: Special Network304766 +Node: Special Caveats305627 +Node: Close Files And Pipes306578 +Ref: Close Files And Pipes-Footnote-1313757 +Ref: Close Files And Pipes-Footnote-2313905 +Node: Output Summary314055 +Node: Output Exercises315051 +Node: Expressions315731 +Node: Values316916 +Node: Constants317592 +Node: Scalar Constants318272 +Ref: Scalar Constants-Footnote-1319131 +Node: Nondecimal-numbers319381 +Node: Regexp Constants322381 +Node: Using Constant Regexps322906 +Node: Variables326044 +Node: Using Variables326699 +Node: Assignment Options328609 +Node: Conversion330484 +Node: Strings And Numbers331008 +Ref: Strings And Numbers-Footnote-1334072 +Node: Locale influences conversions334181 +Ref: table-locale-affects336926 +Node: All Operators337514 +Node: Arithmetic Ops338144 +Node: Concatenation340649 +Ref: Concatenation-Footnote-1343468 +Node: Assignment Ops343574 +Ref: table-assign-ops348557 +Node: Increment Ops349835 +Node: Truth Values and Conditions353273 +Node: Truth Values354356 +Node: Typing and Comparison355405 +Node: Variable Typing356198 +Node: Comparison Operators359850 +Ref: table-relational-ops360260 +Node: POSIX String Comparison363775 +Ref: POSIX String Comparison-Footnote-1364847 +Node: Boolean Ops364985 +Ref: Boolean Ops-Footnote-1369464 +Node: Conditional Exp369555 +Node: Function Calls371282 +Node: Precedence375162 +Node: Locales378830 +Node: Expressions Summary380461 +Node: Patterns and Actions383035 +Node: Pattern Overview384155 +Node: Regexp Patterns385834 +Node: Expression Patterns386377 +Node: Ranges390157 +Node: BEGIN/END393263 +Node: Using BEGIN/END394025 +Ref: Using BEGIN/END-Footnote-1396762 +Node: I/O And BEGIN/END396868 +Node: BEGINFILE/ENDFILE399182 +Node: Empty402083 +Node: Using Shell Variables402400 +Node: Action Overview404676 +Node: Statements407003 +Node: If Statement408851 +Node: While Statement410349 +Node: Do Statement412377 +Node: For Statement413519 +Node: Switch Statement416674 +Node: Break Statement419062 +Node: Continue Statement421103 +Node: Next Statement422928 +Node: Nextfile Statement425308 +Node: Exit Statement427938 +Node: Built-in Variables430341 +Node: User-modified431474 +Ref: User-modified-Footnote-1439154 +Node: Auto-set439216 +Ref: Auto-set-Footnote-1452583 +Ref: Auto-set-Footnote-2452788 +Node: ARGC and ARGV452844 +Node: Pattern Action Summary457048 +Node: Arrays459475 +Node: Array Basics460804 +Node: Array Intro461648 +Ref: figure-array-elements463612 +Ref: Array Intro-Footnote-1466136 +Node: Reference to Elements466264 +Node: Assigning Elements468714 +Node: Array Example469205 +Node: Scanning an Array470963 +Node: Controlling Scanning473979 +Ref: Controlling Scanning-Footnote-1479168 +Node: Numeric Array Subscripts479484 +Node: Uninitialized Subscripts481669 +Node: Delete483286 +Ref: Delete-Footnote-1486030 +Node: Multidimensional486087 +Node: Multiscanning489182 +Node: Arrays of Arrays490771 +Node: Arrays Summary495532 +Node: Functions497637 +Node: Built-in498510 +Node: Calling Built-in499588 +Node: Numeric Functions501576 +Ref: Numeric Functions-Footnote-1506400 +Ref: Numeric Functions-Footnote-2506757 +Ref: Numeric Functions-Footnote-3506805 +Node: String Functions507074 +Ref: String Functions-Footnote-1530546 +Ref: String Functions-Footnote-2530675 +Ref: String Functions-Footnote-3530923 +Node: Gory Details531010 +Ref: table-sub-escapes532791 +Ref: table-sub-proposed534311 +Ref: table-posix-sub535675 +Ref: table-gensub-escapes537215 +Ref: Gory Details-Footnote-1538047 +Node: I/O Functions538198 +Ref: I/O Functions-Footnote-1545299 +Node: Time Functions545446 +Ref: Time Functions-Footnote-1555915 +Ref: Time Functions-Footnote-2555983 +Ref: Time Functions-Footnote-3556141 +Ref: Time Functions-Footnote-4556252 +Ref: Time Functions-Footnote-5556364 +Ref: Time Functions-Footnote-6556591 +Node: Bitwise Functions556857 +Ref: table-bitwise-ops557419 +Ref: Bitwise Functions-Footnote-1561727 +Node: Type Functions561896 +Node: I18N Functions563045 +Node: User-defined564690 +Node: Definition Syntax565494 +Ref: Definition Syntax-Footnote-1570900 +Node: Function Example570969 +Ref: Function Example-Footnote-1573886 +Node: Function Caveats573908 +Node: Calling A Function574426 +Node: Variable Scope575381 +Node: Pass By Value/Reference578369 +Node: Return Statement581879 +Node: Dynamic Typing584863 +Node: Indirect Calls585792 +Ref: Indirect Calls-Footnote-1597096 +Node: Functions Summary597224 +Node: Library Functions599923 +Ref: Library Functions-Footnote-1603541 +Ref: Library Functions-Footnote-2603684 +Node: Library Names603855 +Ref: Library Names-Footnote-1607315 +Ref: Library Names-Footnote-2607535 +Node: General Functions607621 +Node: Strtonum Function608724 +Node: Assert Function611744 +Node: Round Function615068 +Node: Cliff Random Function616609 +Node: Ordinal Functions617625 +Ref: Ordinal Functions-Footnote-1620690 +Ref: Ordinal Functions-Footnote-2620942 +Node: Join Function621153 +Ref: Join Function-Footnote-1622924 +Node: Getlocaltime Function623124 +Node: Readfile Function626865 +Node: Shell Quoting628835 +Node: Data File Management630236 +Node: Filetrans Function630868 +Node: Rewind Function634927 +Node: File Checking636312 +Ref: File Checking-Footnote-1637640 +Node: Empty Files637841 +Node: Ignoring Assigns639820 +Node: Getopt Function641371 +Ref: Getopt Function-Footnote-1652831 +Node: Passwd Functions653034 +Ref: Passwd Functions-Footnote-1661885 +Node: Group Functions661973 +Ref: Group Functions-Footnote-1669876 +Node: Walking Arrays670089 +Node: Library Functions Summary671692 +Node: Library Exercises673093 +Node: Sample Programs674373 +Node: Running Examples675143 +Node: Clones675871 +Node: Cut Program677095 +Node: Egrep Program686825 +Ref: Egrep Program-Footnote-1694329 +Node: Id Program694439 +Node: Split Program698083 +Ref: Split Program-Footnote-1701529 +Node: Tee Program701657 +Node: Uniq Program704444 +Node: Wc Program711865 +Ref: Wc Program-Footnote-1716113 +Node: Miscellaneous Programs716205 +Node: Dupword Program717418 +Node: Alarm Program719449 +Node: Translate Program724253 +Ref: Translate Program-Footnote-1728817 +Node: Labels Program729087 +Ref: Labels Program-Footnote-1732436 +Node: Word Sorting732520 +Node: History Sorting736590 +Node: Extract Program738426 +Node: Simple Sed745958 +Node: Igawk Program749020 +Ref: Igawk Program-Footnote-1763346 +Ref: Igawk Program-Footnote-2763547 +Ref: Igawk Program-Footnote-3763669 +Node: Anagram Program763784 +Node: Signature Program766846 +Node: Programs Summary768093 +Node: Programs Exercises769286 +Ref: Programs Exercises-Footnote-1773417 +Node: Advanced Features773508 +Node: Nondecimal Data775456 +Node: Array Sorting777046 +Node: Controlling Array Traversal777743 +Ref: Controlling Array Traversal-Footnote-1786074 +Node: Array Sorting Functions786192 +Ref: Array Sorting Functions-Footnote-1790084 +Node: Two-way I/O790278 +Ref: Two-way I/O-Footnote-1795222 +Ref: Two-way I/O-Footnote-2795408 +Node: TCP/IP Networking795490 +Node: Profiling798362 +Node: Advanced Features Summary806636 +Node: Internationalization808569 +Node: I18N and L10N810049 +Node: Explaining gettext810735 +Ref: Explaining gettext-Footnote-1815764 +Ref: Explaining gettext-Footnote-2815948 +Node: Programmer i18n816113 +Ref: Programmer i18n-Footnote-1820979 +Node: Translator i18n821028 +Node: String Extraction821822 +Ref: String Extraction-Footnote-1822953 +Node: Printf Ordering823039 +Ref: Printf Ordering-Footnote-1825825 +Node: I18N Portability825889 +Ref: I18N Portability-Footnote-1828338 +Node: I18N Example828401 +Ref: I18N Example-Footnote-1831201 +Node: Gawk I18N831273 +Node: I18N Summary831911 +Node: Debugger833250 +Node: Debugging834272 +Node: Debugging Concepts834713 +Node: Debugging Terms836570 +Node: Awk Debugging839145 +Node: Sample Debugging Session840037 +Node: Debugger Invocation840557 +Node: Finding The Bug841941 +Node: List of Debugger Commands848416 +Node: Breakpoint Control849748 +Node: Debugger Execution Control853440 +Node: Viewing And Changing Data856804 +Node: Execution Stack860169 +Node: Debugger Info861807 +Node: Miscellaneous Debugger Commands865824 +Node: Readline Support871016 +Node: Limitations871908 +Node: Debugging Summary874005 +Node: Arbitrary Precision Arithmetic875173 +Node: Computer Arithmetic876589 +Ref: table-numeric-ranges880190 +Ref: Computer Arithmetic-Footnote-1881049 +Node: Math Definitions881106 +Ref: table-ieee-formats884393 +Ref: Math Definitions-Footnote-1884997 +Node: MPFR features885102 +Node: FP Math Caution886773 +Ref: FP Math Caution-Footnote-1887823 +Node: Inexactness of computations888192 +Node: Inexact representation889140 +Node: Comparing FP Values890495 +Node: Errors accumulate891568 +Node: Getting Accuracy893001 +Node: Try To Round895660 +Node: Setting precision896559 +Ref: table-predefined-precision-strings897243 +Node: Setting the rounding mode899037 +Ref: table-gawk-rounding-modes899401 +Ref: Setting the rounding mode-Footnote-1902855 +Node: Arbitrary Precision Integers903034 +Ref: Arbitrary Precision Integers-Footnote-1907938 +Node: POSIX Floating Point Problems908087 +Ref: POSIX Floating Point Problems-Footnote-1911963 +Node: Floating point summary912001 +Node: Dynamic Extensions914193 +Node: Extension Intro915745 +Node: Plugin License917011 +Node: Extension Mechanism Outline917808 +Ref: figure-load-extension918236 +Ref: figure-register-new-function919716 +Ref: figure-call-new-function920720 +Node: Extension API Description922706 +Node: Extension API Functions Introduction924156 +Node: General Data Types928992 +Ref: General Data Types-Footnote-1934679 +Node: Memory Allocation Functions934978 +Ref: Memory Allocation Functions-Footnote-1937808 +Node: Constructor Functions937904 +Node: Registration Functions939638 +Node: Extension Functions940323 +Node: Exit Callback Functions942619 +Node: Extension Version String943867 +Node: Input Parsers944517 +Node: Output Wrappers954332 +Node: Two-way processors958848 +Node: Printing Messages961052 +Ref: Printing Messages-Footnote-1962129 +Node: Updating `ERRNO'962281 +Node: Requesting Values963021 +Ref: table-value-types-returned963749 +Node: Accessing Parameters964707 +Node: Symbol Table Access965938 +Node: Symbol table by name966452 +Node: Symbol table by cookie968432 +Ref: Symbol table by cookie-Footnote-1972571 +Node: Cached values972634 +Ref: Cached values-Footnote-1976138 +Node: Array Manipulation976229 +Ref: Array Manipulation-Footnote-1977327 +Node: Array Data Types977366 +Ref: Array Data Types-Footnote-1980023 +Node: Array Functions980115 +Node: Flattening Arrays983969 +Node: Creating Arrays990856 +Node: Extension API Variables995623 +Node: Extension Versioning996259 +Node: Extension API Informational Variables998160 +Node: Extension API Boilerplate999248 +Node: Finding Extensions1003064 +Node: Extension Example1003624 +Node: Internal File Description1004396 +Node: Internal File Ops1008463 +Ref: Internal File Ops-Footnote-11020121 +Node: Using Internal File Ops1020261 +Ref: Using Internal File Ops-Footnote-11022644 +Node: Extension Samples1022917 +Node: Extension Sample File Functions1024441 +Node: Extension Sample Fnmatch1032043 +Node: Extension Sample Fork1033525 +Node: Extension Sample Inplace1034738 +Node: Extension Sample Ord1036413 +Node: Extension Sample Readdir1037249 +Ref: table-readdir-file-types1038125 +Node: Extension Sample Revout1038936 +Node: Extension Sample Rev2way1039527 +Node: Extension Sample Read write array1040268 +Node: Extension Sample Readfile1042207 +Node: Extension Sample Time1043302 +Node: Extension Sample API Tests1044651 +Node: gawkextlib1045142 +Node: Extension summary1047792 +Node: Extension Exercises1051474 +Node: Language History1052196 +Node: V7/SVR3.11053853 +Node: SVR41056034 +Node: POSIX1057479 +Node: BTL1058868 +Node: POSIX/GNU1059602 +Node: Feature History1065231 +Node: Common Extensions1078329 +Node: Ranges and Locales1079653 +Ref: Ranges and Locales-Footnote-11084292 +Ref: Ranges and Locales-Footnote-21084319 +Ref: Ranges and Locales-Footnote-31084553 +Node: Contributors1084774 +Node: History summary1090314 +Node: Installation1091683 +Node: Gawk Distribution1092639 +Node: Getting1093123 +Node: Extracting1093947 +Node: Distribution contents1095589 +Node: Unix Installation1101359 +Node: Quick Installation1101976 +Node: Additional Configuration Options1104407 +Node: Configuration Philosophy1106147 +Node: Non-Unix Installation1108498 +Node: PC Installation1108956 +Node: PC Binary Installation1110282 +Node: PC Compiling1112130 +Ref: PC Compiling-Footnote-11115151 +Node: PC Testing1115256 +Node: PC Using1116432 +Node: Cygwin1120547 +Node: MSYS1121370 +Node: VMS Installation1121868 +Node: VMS Compilation1122660 +Ref: VMS Compilation-Footnote-11123882 +Node: VMS Dynamic Extensions1123940 +Node: VMS Installation Details1125624 +Node: VMS Running1127876 +Node: VMS GNV1130717 +Node: VMS Old Gawk1131451 +Node: Bugs1131921 +Node: Other Versions1135825 +Node: Installation summary1142038 +Node: Notes1143094 +Node: Compatibility Mode1143959 +Node: Additions1144741 +Node: Accessing The Source1145666 +Node: Adding Code1147102 +Node: New Ports1153274 +Node: Derived Files1157756 +Ref: Derived Files-Footnote-11163231 +Ref: Derived Files-Footnote-21163265 +Ref: Derived Files-Footnote-31163861 +Node: Future Extensions1163975 +Node: Implementation Limitations1164581 +Node: Extension Design1165829 +Node: Old Extension Problems1166983 +Ref: Old Extension Problems-Footnote-11168500 +Node: Extension New Mechanism Goals1168557 +Ref: Extension New Mechanism Goals-Footnote-11171917 +Node: Extension Other Design Decisions1172106 +Node: Extension Future Growth1174214 +Node: Old Extension Mechanism1175050 +Node: Notes summary1176812 +Node: Basic Concepts1177998 +Node: Basic High Level1178679 +Ref: figure-general-flow1178951 +Ref: figure-process-flow1179550 +Ref: Basic High Level-Footnote-11182779 +Node: Basic Data Typing1182964 +Node: Glossary1186292 +Node: Copying1211450 +Node: GNU Free Documentation License1249006 +Node: Index1274142 End Tag Table diff --git a/doc/gawk.texi b/doc/gawk.texi index e43415dc..328c1782 100644 --- a/doc/gawk.texi +++ b/doc/gawk.texi @@ -5091,6 +5091,7 @@ of hexadecimal digits (@samp{0}--@samp{9}, and either @samp{A}--@samp{F} or @samp{a}--@samp{f}). A maximum of two digts are allowed after the @samp{\x}. Any further hexadecimal digits are treated as simple letters or numbers. @value{COMMONEXT} +(The @samp{\x} escape sequence is not allowed in POSIX awk.) @quotation CAUTION In ISO C, the escape sequence continues until the first nonhexadecimal @@ -5099,7 +5100,10 @@ digit is seen. For many years, @command{gawk} would continue incorporating hexadecimal digits into the value until a non-hexadecimal digit or the end of the string was encountered. -However, using more than two hexadecimal digits produces +However, using more than two hexadecimal digits produced +undefined results. +As of @value{PVERSION} @strong{FIXME:} 4.3.0, only two digits +are processed. @end quotation @cindex @code{\} (backslash), @code{\/} escape sequence @@ -27882,8 +27886,7 @@ The profiled version of your program may not look exactly like what you typed when you wrote it. This is because @command{gawk} creates the profiled version by ``pretty printing'' its internal representation of the program. The advantage to this is that @command{gawk} can produce -a standard representation. The disadvantage is that all source-code -comments are lost. +a standard representation. Also, things such as: @example @@ -27980,6 +27983,23 @@ When called this way, @command{gawk} ``pretty prints'' the program into Once upon a time, the @option{--pretty-print} option would also run your program. This is is no longer the case. @end quotation + +There is a significant difference between the output created when +profiling, and that created when pretty-printing. Pretty-printed output +preserves the original comments that were in the program, although their +placement may not correspond exactly to their original locations in the +source code. + +However, as a deliberate design decision, profiling output @emph{omits} +the original program's comments. This allows you to focus on the +execution count data and helps you avoid the temptation to use the +profiler for pretty-printing. + +Additionally, pretty-printed output does not have the leading indentation +that the profiling output does. This makes it easy to pretty-print your +code once development is completed, and then use the result as the final +version of your program. + @c ENDOFRANGE awkp @c ENDOFRANGE proawk diff --git a/doc/gawktexi.in b/doc/gawktexi.in index e2e2a034..2ed967fb 100644 --- a/doc/gawktexi.in +++ b/doc/gawktexi.in @@ -5002,6 +5002,7 @@ of hexadecimal digits (@samp{0}--@samp{9}, and either @samp{A}--@samp{F} or @samp{a}--@samp{f}). A maximum of two digts are allowed after the @samp{\x}. Any further hexadecimal digits are treated as simple letters or numbers. @value{COMMONEXT} +(The @samp{\x} escape sequence is not allowed in POSIX awk.) @quotation CAUTION In ISO C, the escape sequence continues until the first nonhexadecimal @@ -5010,7 +5011,10 @@ digit is seen. For many years, @command{gawk} would continue incorporating hexadecimal digits into the value until a non-hexadecimal digit or the end of the string was encountered. -However, using more than two hexadecimal digits produces +However, using more than two hexadecimal digits produced +undefined results. +As of @value{PVERSION} @strong{FIXME:} 4.3.0, only two digits +are processed. @end quotation @cindex @code{\} (backslash), @code{\/} escape sequence |