aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/gawk.info936
-rw-r--r--doc/gawk.texi106
2 files changed, 533 insertions, 509 deletions
diff --git a/doc/gawk.info b/doc/gawk.info
index 88ad79ad..5aa4ad96 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -2339,6 +2339,11 @@ The following list describes options mandated by the POSIX standard:
remains both for backward compatibility, and for use in
combination with the `--traditional' option.
+`-R FILE'
+`--command=FILE'
+ `dgawk' only. Read `dgawk' debugger options and commands from
+ FILE. *Note Dgawk Info::, for more information.
+
`-S'
`--sandbox'
Disable the `system()' function, input redirections with `getline',
@@ -18099,8 +18104,8 @@ any complexity. Thus, most programming languages have facilities
available for "debugging" programs, and now `awk' is no exception.
The `dgawk' debugger is purposely modeled after the GNU Debugger
-(GDB) command-line debugger. If you are familiar with GDB, learning
-`dgawk' is easy.
+(GDB) (http://www.gnu.org/software/gdb/) command-line debugger. If you
+are familiar with GDB, learning `dgawk' is easy.
* Menu:
@@ -18137,7 +18142,7 @@ has no way of knowing what you or your users consider a "bug" and what
is a "feature." (Sometimes, we humans have a hard time with this
ourselves.) In that case, what can you expect from such a tool? The
answer to that depends on the language being debugged, but in general,
-it includes at least the following:
+you can expect at least the following:
* The ability to watch a program execute its instructions one by one,
giving you, the programmer, the opportunity to think about what is
@@ -18160,7 +18165,7 @@ it includes at least the following:
All of these tools provide a great amount of help in using your own
skills and understanding of the goals of your program to find where it
is going wrong (or, for that matter, to better comprehend a perfectly
-functional program that you or someone else wrote.)
+functional program that you or someone else wrote).

File: gawk.info, Node: Debugging Terms, Next: Awk Debugging, Prev: Debugging Concepts, Up: Debugging
@@ -18168,9 +18173,8 @@ File: gawk.info, Node: Debugging Terms, Next: Awk Debugging, Prev: Debugging
14.1.2 Additional Debugging Concepts
------------------------------------
-Before diving in to the details, we need to introduce a few more
-important concepts that apply to just about all debuggers, including
-`dgawk'.
+Before diving in to the details, we need to introduce several important
+concepts that apply to just about all debuggers, including `dgawk'.
"Stack Frame"
Programs generally call functions during the course of their
@@ -18266,7 +18270,7 @@ case, we call `dgawk' like this:
$ dgawk -f getopt.awk -f join.awk -f uniq.awk inputfile
where both `getopt.awk' and `uniq.awk' are in `$AWKPATH'. (Experienced
-users of `gdb' or similar debuggers should note that this syntax is
+users of GDB or similar debuggers should note that this syntax is
slightly different from what they are used to. With `dgawk', the
arguments for running the program are given in the command line to the
debugger rather than as part of the `run' command at the debugger
@@ -18324,7 +18328,8 @@ breakpoint the first time:
dgawk> r
-| Starting program:
-| Stopping in Rule ...
- -| Breakpoint 1, are_equal(n, m, clast, cline, alast, aline) at `awklib/eg/prog/uniq.awk':64
+ -| Breakpoint 1, are_equal(n, m, clast, cline, alast, aline)
+ at `awklib/eg/prog/uniq.awk':64
-| 64 if (fcount == 0 && charcount == 0)
dgawk>
@@ -18334,7 +18339,8 @@ let's see how we got to where we are. At the prompt, we type `bt'
current stack frames:
dgawk> bt
- -| #0 are_equal(n, m, clast, cline, alast, aline) at `awklib/eg/prog/uniq.awk':69
+ -| #0 are_equal(n, m, clast, cline, alast, aline)
+ at `awklib/eg/prog/uniq.awk':69
-| #1 in main() at `awklib/eg/prog/uniq.awk':89
This tells us that `are_equal()' was called by the main program at
@@ -18501,9 +18507,9 @@ The `dgawk' command set can be divided into the following categories:
Each of these are discussed in the following subsections. In the
following descriptions, commands which may be abbreviated show the
abbreviation on a second description line. A `dgawk' command name may
-also be truncated if that partial name is unambiguous. `dgawk' does
-have a built-in capability to automatically repeat the previous command
-when just hitting <Enter>. This works for the commands `list', `next',
+also be truncated if that partial name is unambiguous. `dgawk' has the
+built-in capability to automatically repeat the previous command when
+just hitting <Enter>. This works for the commands `list', `next',
`nexti', `step', `stepi' and `continue' executed without any argument.
* Menu:
@@ -18553,7 +18559,8 @@ controlling breakpoints are:
Without any argument, delete any breakpoint at the next instruction
to be executed in the selected stack frame. If the program stops at
a breakpoint, this deletes that breakpoint so that the program
- does not stop at that location again.
+ does not stop at that location again. Arguments can be one of the
+ following:
N
Delete breakpoint(s) set at line number N in the current
@@ -18569,9 +18576,9 @@ controlling breakpoints are:
`condition' N `"EXPRESSION"'
Add a condition to existing breakpoint or watchpoint N. The
condition is an `awk' expression that `dgawk' evaluates whenever
- the breakpoint is reached. If the condition is true, then `dgawk'
- stops execution and prompts for a command. Otherwise, `dgawk'
- continues executing the program.
+ the breakpoint or watchpoint is reached. If the condition is true,
+ then `dgawk' stops execution and prompts for a command. Otherwise,
+ `dgawk' continues executing the program.
`delete' [N1 N2 ...] [N-M]
`d' [N1 N2 ...] [N-M]
@@ -18589,19 +18596,20 @@ controlling breakpoints are:
specify how to enable the breakpoint:
`del'
- Enable breakpoint(s) tempoarily, then delete it when the
+ Enable the breakpoint(s) tempoarily, then delete it when the
program stops at the breakpoint.
`once'
- Enable breakpoint(s) temporarily, then disable it when the
- program stops at the breakpoint.
+ Enable the breakpoint(s) temporarily, then disable it when
+ the program stops at the breakpoint.
`ignore' N COUNT
Ignore breakpoint number N the next COUNT times it is hit.
`tbreak' [[FILENAME`:']N | FUNCTION]
`t' [[FILENAME`:']N | FUNCTION]
- Set a temporary breakpoint (enabled for only one stop).
+ Set a temporary breakpoint (enabled for only one stop). The
+ arguments are the same as for `break'.

File: gawk.info, Node: Dgawk Execution Control, Next: Viewing And Changing Data, Prev: Breakpoint Control, Up: List of Debugger Commands
@@ -18619,12 +18627,12 @@ execution of the program than we saw in our earlier example:
`end'
Set a list of commands to be executed upon stopping at a
breakpoint or watchpoint. N is the breakpoint or watchpoint
- number. Without a number, last one set is used. The actual
- commands follow starting on the next line and are terminated by
- the `end' command. If the command `silent' is in the list, the
- usual messages about stopping at a breakpoint and the source line
- are not printed. Any command in the list that resumes execution
- (e.g. `continue') terminates the list (an implicit `end'), and
+ number. Without a number, the last one set is used. The actual
+ commands follow, starting on the next line, and terminated by the
+ `end' command. If the command `silent' is in the list, the usual
+ messages about stopping at a breakpoint and the source line are
+ not printed. Any command in the list that resumes execution (e.g.
+ `continue') terminates the list (an implicit `end'), and
subsequent commands are ignored. For example:
dgawk> commands
@@ -18643,7 +18651,7 @@ execution of the program than we saw in our earlier example:
COUNT times before stopping.
`finish'
- Execute until the selected stack frame returns. Prints the
+ Execute until the selected stack frame returns. Print the
returned value.
`next' [COUNT]
@@ -18684,14 +18692,14 @@ execution of the program than we saw in our earlier example:
Execute one (or COUNT) instruction(s), stepping inside function
calls. (For illustration of what is meant by an "instruction" in
`gawk', see the output shown under `dump' in *note Miscellaneous
- Dgawk Commands::).
+ Dgawk Commands::.)
`until' [[FILENAME`:']N | FUNCTION]
`u' [[FILENAME`:']N | FUNCTION]
- Without any argument, continues execution until a line past the
- current line in current stack frame is reached. With argument,
- continues execution until the specified location is reached, or
- the current stack frame returns.
+ Without any argument, continue execution until a line past the
+ current line in current stack frame is reached. With an argument,
+ continue execution until the specified location is reached, or the
+ current stack frame returns.

File: gawk.info, Node: Viewing And Changing Data, Next: Dgawk Stack, Prev: Dgawk Execution Control, Up: List of Debugger Commands
@@ -18736,16 +18744,16 @@ AWK STATEMENTS
dgawk> print $3
- prints the third field in the input record (if the specified field
- does not exist, it prints `Null field'). A variable can be an
- array element, with the subscripts being constant values. To print
- the contents of an array, prefix the name of the array with the
- `@' symbol:
+ This prints the third field in the input record (if the specified
+ field does not exist, it prints `Null field'). A variable can be
+ an array element, with the subscripts being constant values. To
+ print the contents of an array, prefix the name of the array with
+ the `@' symbol:
gawk> print @a
- prints the index and the corresponding value for all elements in
- the array `a'.
+ This prints the indices and the corresponding values for all
+ elements in the array `a'.
`printf' FORMAT [`,' ARG ...]
Print formatted text. The FORMAT may include escape sequences,
@@ -18789,11 +18797,11 @@ File: gawk.info, Node: Dgawk Stack, Next: Dgawk Info, Prev: Viewing And Chang
-----------------------------
Whenever you run a program which contains any function calls, `gawk'
-maintains a stack which has all of the functions leading up to where
-the program is right now. You can see how you got to where you are,
-and also move around in the stack to see what the state of things was
-in the functions which called the one you are in. The commands for
-doing this are:
+maintains a stack of all of the function calls leading up to where the
+program is right now. You can see how you got to where you are, and
+also move around in the stack to see what the state of things was in the
+functions which called the one you are in. The commands for doing this
+are:
`backtrace' [COUNT]
`bt' [COUNT]
@@ -18817,7 +18825,7 @@ doing this are:
`up' [COUNT]
Move COUNT (default 1) frames up the stack toward the outermost
- frame. The select and print the frame.
+ frame. Then select and print the frame.

File: gawk.info, Node: Dgawk Info, Next: Miscellaneous Dgawk Commands, Prev: Dgawk Stack, Up: List of Debugger Commands
@@ -18829,7 +18837,7 @@ Besides looking at the values of variables, there is often a need to get
other sorts of information about the state of your program and of the
debugging environment itself. `dgawk' has one command which provides
this information, appropriately called `info'. `info' is used with one
-of a number of arguments which tell it exactly what you want to know:
+of a number of arguments that tell it exactly what you want to know:
`info' WHAT
`i' WHAT
@@ -18842,7 +18850,7 @@ of a number of arguments which tell it exactly what you want to know:
List all currently set breakpoints.
`display'
- List of all items in the automatic display list.
+ List all items in the automatic display list.
`frame'
Description of the selected stack frame.
@@ -18869,7 +18877,7 @@ of a number of arguments which tell it exactly what you want to know:
List all global variables.
`watch'
- List of all items in the watch list.
+ List all items in the watch list.
Additional commands give you control over the debugger, the ability
to save the debugger's state, and the ability to run debugger commands
@@ -18890,12 +18898,12 @@ from a file. The commands are:
The number of lines that `list' prints. The default is 15.
`outfile'
- Sends `gawk' output to a file; debugger output still goes to
+ Send `gawk' output to a file; debugger output still goes to
standard output. An empty string (`""') resets output to
standard output.
`prompt'
- The debugger prompt. The default is `dgawk>'.
+ The debugger prompt. The default is `dgawk> '.
`save_history [on | off]'
Save command history to file `./.dgawk_history'. The default
@@ -18925,7 +18933,7 @@ from a file. The commands are:
In addition to, or instead of the `source' command, you can use
the `-R FILE' or `--command=FILE' command-line options to execute
- commands from a file non-interactively.
+ commands from a file non-interactively (*note Options::.

File: gawk.info, Node: Miscellaneous Dgawk Commands, Prev: Dgawk Info, Up: List of Debugger Commands
@@ -19034,9 +19042,9 @@ categories, as follows:
`quit'
`q'
Exit the debugger. Debugging is great fun, but sometimes we all
- have to tend to other obligations in life (and sometimes we find
- the bug, and are free to go on to the next one!). As we saw
- above, if you are running a program, `dgawk' warns you if you
+ have to tend to other obligations in life, and sometimes we find
+ the bug, and are free to go on to the next one! As we saw above,
+ if you are running a program, `dgawk' warns you if you
accidentally type `q' or `quit', to make sure you really want to
quit.
@@ -19056,9 +19064,9 @@ File: gawk.info, Node: Readline Support, Next: Dgawk Limitations, Prev: List
14.4 Readline Support
=====================
-If compiled with the `readline' library, you can take advantage of its
-command completion and history expansion features. The following types
-of completion are available:
+If `dgawk' is compiled with the `readline' library, you can take
+advantage of its command completion and history expansion features. The
+following types of completion are available:
Command completion
Command names.
@@ -19068,8 +19076,8 @@ Source file name completion
`tbreak', and `until'.
Argument completion
- Non-numeric arguments to a command. Relevant commands are `info'
- and `enable'.
+ Non-numeric arguments to a command. Relevant commands are
+ `enable' and `info'.
Variable name completion
Global variable names, and function arguments in the current
@@ -19092,17 +19100,17 @@ limitations. A few which are worth being aware of are:
Rather, it just responds `syntax error'. When you do figure out
what your mistake was, though, you'll feel like a real guru.
- * If you perused the dump of opcodes in *Note Miscellaneous Dgawk
- Commands::, (or you are already familiar with `gawk' internals),
+ * If you perused the dump of opcodes in *note Miscellaneous Dgawk
+ Commands::, (or if you are already familiar with `gawk' internals),
you will realize that much of the internal manipulation of data in
`gawk', as in many interpreters, is done on a stack. `Op_push',
`Op_pop', etc., are the "bread and butter" of most `gawk' code.
- Unfortunately, as of now, `dgawk' does not provide the capability
- of examining the stack's contents.
+ Unfortunately, as of now, `dgawk' does not allow you to examine
+ the stack's contents.
That is, the intermediate results of expression evaluation are on
the stack, but cannot be printed. Rather, only variables which
- are defined in the program can actually be printed. Of course, a
+ are defined in the program can be printed. Of course, a
workaround for this is to use more explicit variables at the
debugging stage and then change back to obscure, perhaps more
optimal code later.
@@ -19120,7 +19128,7 @@ limitations. A few which are worth being aware of are:
Look forward to a future release when these and other missing
features may be added, and of course feel free to try to add them
-yourself if you want.
+yourself!

File: gawk.info, Node: Language History, Next: Installation, Prev: Debugger, Up: Top
@@ -24543,6 +24551,7 @@ Index
* --assign option: Options. (line 32)
* --c option: Options. (line 78)
* --characters-as-bytes option: Options. (line 68)
+* --command option: Options. (line 241)
* --copyright option: Options. (line 86)
* --disable-lint configuration option: Additional Configuration Options.
(line 13)
@@ -24556,10 +24565,10 @@ Index
* --gen-pot option <1>: String Extraction. (line 6)
* --gen-pot option: Options. (line 135)
* --help option: Options. (line 142)
-* --L option: Options. (line 250)
+* --L option: Options. (line 255)
* --lint option <1>: Options. (line 147)
* --lint option: Command Line. (line 20)
-* --lint-old option: Options. (line 250)
+* --lint-old option: Options. (line 255)
* --non-decimal-data option <1>: Nondecimal Data. (line 6)
* --non-decimal-data option: Options. (line 166)
* --non-decimal-data option, strtonum() function and: Nondecimal Data.
@@ -24570,7 +24579,7 @@ Index
* --profile option <1>: Profiling. (line 15)
* --profile option: Options. (line 186)
* --re-interval option: Options. (line 234)
-* --sandbox option: Options. (line 241)
+* --sandbox option: Options. (line 246)
* --sandbox option, disabling system function: I/O Functions. (line 86)
* --sandbox option, input redirection with getline: Getline. (line 19)
* --sandbox option, output redirection with print, printf: Redirection.
@@ -24579,7 +24588,7 @@ Index
* --traditional option: Options. (line 78)
* --traditional option, --posix option and: Options. (line 228)
* --use-lc-numeric option: Options. (line 174)
-* --version option: Options. (line 255)
+* --version option: Options. (line 260)
* --with-whiny-user-strftime configuration option: Additional Configuration Options.
(line 9)
* -b option: Options. (line 68)
@@ -24592,8 +24601,8 @@ 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 263)
-* -f option, on command line: Options. (line 268)
+* -F option, -Ft sets FS to TAB: Options. (line 268)
+* -f option, on command line: Options. (line 273)
* -g option: Options. (line 135)
* -h option: Options. (line 142)
* -l option: Options. (line 147)
@@ -24602,9 +24611,10 @@ Index
* -O option: Options. (line 179)
* -P option: Options. (line 198)
* -p option: Options. (line 186)
+* -R option: Options. (line 241)
* -r option: Options. (line 234)
-* -S option: Options. (line 241)
-* -V option: Options. (line 255)
+* -S option: Options. (line 246)
+* -V option: Options. (line 260)
* -v option: Options. (line 32)
* -v option, variables, assigning: Assignment Options. (line 12)
* -W option: Options. (line 46)
@@ -25155,7 +25165,7 @@ Index
* complement, bitwise: Bitwise Functions. (line 25)
* compound statements, control statements and: Statements. (line 10)
* concatenating: Concatenation. (line 9)
-* condition debugger command: Breakpoint Control. (line 50)
+* condition debugger command: Breakpoint Control. (line 51)
* conditional expressions: Conditional Exp. (line 6)
* configuration option, --disable-lint: Additional Configuration Options.
(line 13)
@@ -25188,7 +25198,7 @@ Index
* cos() function: Numeric Functions. (line 14)
* counting: Wc Program. (line 6)
* csh utility: Statements/Lines. (line 44)
-* csh utility, POSIXLY_CORRECT environment variable: Options. (line 306)
+* csh utility, POSIXLY_CORRECT environment variable: Options. (line 311)
* csh utility, |& operator, comparison with: Two-way I/O. (line 44)
* ctime() user-defined function: Function Example. (line 72)
* currency symbols, localization: Explaining gettext. (line 103)
@@ -25197,7 +25207,7 @@ Index
* cut utility: Cut Program. (line 6)
* cut.awk program: Cut Program. (line 45)
* Cygwin build of gawk: Cygwin. (line 6)
-* d debugger command (alias for break): Breakpoint Control. (line 57)
+* d debugger command (alias for break): Breakpoint Control. (line 58)
* d.c., See dark corner: Conventions. (line 37)
* dark corner <1>: Glossary. (line 187)
* dark corner <2>: Truth Values. (line 24)
@@ -25269,19 +25279,19 @@ Index
* debugger commands, clear: Breakpoint Control. (line 33)
* debugger commands, commands: Dgawk Execution Control.
(line 10)
-* debugger commands, condition: Breakpoint Control. (line 50)
+* debugger commands, condition: Breakpoint Control. (line 51)
* debugger commands, continue: Dgawk Execution Control.
(line 33)
-* debugger commands, d (delete): Breakpoint Control. (line 57)
-* debugger commands, delete: Breakpoint Control. (line 57)
-* debugger commands, disable: Breakpoint Control. (line 62)
+* debugger commands, d (delete): Breakpoint Control. (line 58)
+* debugger commands, delete: Breakpoint Control. (line 58)
+* debugger commands, disable: Breakpoint Control. (line 63)
* debugger commands, display: Viewing And Changing Data.
(line 8)
* debugger commands, down: Dgawk Stack. (line 21)
* debugger commands, dump: Miscellaneous Dgawk Commands.
(line 9)
-* debugger commands, e (enable): Breakpoint Control. (line 66)
-* debugger commands, enable: Breakpoint Control. (line 66)
+* debugger commands, e (enable): Breakpoint Control. (line 67)
+* debugger commands, enable: Breakpoint Control. (line 67)
* debugger commands, end: Dgawk Execution Control.
(line 10)
* debugger commands, eval: Viewing And Changing Data.
@@ -25295,7 +25305,7 @@ Index
* debugger commands, help: Miscellaneous Dgawk Commands.
(line 71)
* debugger commands, i (info): Dgawk Info. (line 12)
-* debugger commands, ignore: Breakpoint Control. (line 80)
+* debugger commands, ignore: Breakpoint Control. (line 81)
* debugger commands, info: Dgawk Info. (line 12)
* debugger commands, l (list): Miscellaneous Dgawk Commands.
(line 77)
@@ -25339,8 +25349,8 @@ Index
(line 68)
* debugger commands, stepi: Dgawk Execution Control.
(line 76)
-* debugger commands, t (tbreak): Breakpoint Control. (line 83)
-* debugger commands, tbreak: Breakpoint Control. (line 83)
+* debugger commands, t (tbreak): Breakpoint Control. (line 84)
+* debugger commands, tbreak: Breakpoint Control. (line 84)
* debugger commands, trace: Miscellaneous Dgawk Commands.
(line 113)
* debugger commands, u (until): Dgawk Execution Control.
@@ -25363,7 +25373,7 @@ Index
* Deifik, Scott <1>: Bugs. (line 69)
* Deifik, Scott <2>: Contributors. (line 53)
* Deifik, Scott: Acknowledgments. (line 59)
-* delete debugger command: Breakpoint Control. (line 57)
+* delete debugger command: Breakpoint Control. (line 58)
* delete statement: Delete. (line 6)
* deleting elements in arrays: Delete. (line 6)
* deleting entire arrays: Delete. (line 39)
@@ -25438,7 +25448,7 @@ Index
(line 6)
* directories, searching <1>: Igawk Program. (line 364)
* directories, searching: AWKPATH Variable. (line 6)
-* disable debugger command: Breakpoint Control. (line 62)
+* disable debugger command: Breakpoint Control. (line 63)
* display debugger command: Viewing And Changing Data.
(line 8)
* division: Arithmetic Ops. (line 44)
@@ -25463,7 +25473,7 @@ Index
(line 9)
* dupnode internal function: Internals. (line 87)
* dupword.awk program: Dupword Program. (line 31)
-* e debugger command (alias for break): Breakpoint Control. (line 66)
+* e debugger command (alias for break): Breakpoint Control. (line 67)
* EBCDIC: Ordinal Functions. (line 45)
* egrep utility <1>: Egrep Program. (line 6)
* egrep utility: Character Lists. (line 23)
@@ -25479,7 +25489,7 @@ Index
* empty pattern: Empty. (line 6)
* empty strings, See null strings: Regexp Field Splitting.
(line 43)
-* enable debugger command: Breakpoint Control. (line 66)
+* enable debugger command: Breakpoint Control. (line 67)
* end debugger command: Dgawk Execution Control.
(line 10)
* END pattern: BEGIN/END. (line 6)
@@ -25843,7 +25853,7 @@ Index
* gawk, string-translation functions: I18N Functions. (line 6)
* gawk, timestamps: Time Functions. (line 6)
* gawk, uses for: Preface. (line 35)
-* gawk, versions of, information about, printing: Options. (line 255)
+* gawk, versions of, information about, printing: Options. (line 260)
* gawk, word-boundary operator: GNU Regexp Operators.
(line 63)
* General Public License (GPL): Glossary. (line 295)
@@ -25950,7 +25960,7 @@ Index
* if statement: Regexp Usage. (line 19)
* if statement, actions, changing: Ranges. (line 25)
* igawk.sh program: Igawk Program. (line 124)
-* ignore debugger command: Breakpoint Control. (line 80)
+* ignore debugger command: Breakpoint Control. (line 81)
* IGNORECASE variable <1>: User-modified. (line 82)
* IGNORECASE variable: Case-sensitivity. (line 26)
* IGNORECASE variable, array sorting and: Array Sorting. (line 69)
@@ -26122,7 +26132,7 @@ Index
* lint checking, empty programs: Command Line. (line 16)
* lint checking, issuing warnings: Options. (line 147)
* lint checking, POSIXLY_CORRECT environment variable: Options.
- (line 293)
+ (line 298)
* lint checking, undefined functions: Pass By Value/Reference.
(line 88)
* LINT variable: User-modified. (line 98)
@@ -26427,7 +26437,7 @@ Index
* portability, NF variable, decrementing: Changing Fields. (line 115)
* portability, operators: Increment Ops. (line 61)
* portability, operators, not in POSIX awk: Precedence. (line 98)
-* portability, POSIXLY_CORRECT environment variable: Options. (line 311)
+* portability, POSIXLY_CORRECT environment variable: Options. (line 316)
* portability, substr() function: String Functions. (line 484)
* portable object files <1>: Translator i18n. (line 6)
* portable object files: Explaining gettext. (line 36)
@@ -26479,7 +26489,7 @@ Index
* POSIX, awk and: Preface. (line 22)
* POSIX, gawk extensions not included in: POSIX/GNU. (line 6)
* POSIX, programs, implementing in awk: Clones. (line 6)
-* POSIXLY_CORRECT environment variable: Options. (line 293)
+* POSIXLY_CORRECT environment variable: Options. (line 298)
* precedence <1>: Precedence. (line 6)
* precedence: Increment Ops. (line 61)
* precedence, regexp operators: Regexp Operators. (line 151)
@@ -26704,7 +26714,7 @@ Index
* rvalues/lvalues: Assignment Ops. (line 32)
* s debugger command (alias for step): Dgawk Execution Control.
(line 68)
-* sandbox mode: Options. (line 241)
+* sandbox mode: Options. (line 246)
* scalar values: Basic Data Typing. (line 13)
* Schorr, Andrew: Acknowledgments. (line 59)
* Schreiber, Bert: Acknowledgments. (line 37)
@@ -26871,9 +26881,9 @@ Index
(line 148)
* system() function: I/O Functions. (line 64)
* systime() function (gawk): Time Functions. (line 64)
-* t debugger command (alias for tbreak): Breakpoint Control. (line 83)
+* t debugger command (alias for tbreak): Breakpoint Control. (line 84)
* tandem: Tandem Installation. (line 6)
-* tbreak debugger command: Breakpoint Control. (line 83)
+* tbreak debugger command: Breakpoint Control. (line 84)
* Tcl: Library Names. (line 57)
* TCP/IP: TCP/IP Networking. (line 6)
* TCP/IP, support for: Special Network. (line 6)
@@ -27157,370 +27167,370 @@ Node: When94106
Node: Invoking Gawk96249
Node: Command Line97634
Node: Options98417
-Ref: Options-Footnote-1111613
-Node: Other Arguments111638
-Node: Naming Standard Input114301
-Node: Environment Variables115265
-Node: AWKPATH Variable115709
-Ref: AWKPATH Variable-Footnote-1118446
-Node: Other Environment Variables118706
-Node: Exit Status121054
-Node: Include Files121729
-Node: Obsolete125120
-Node: Undocumented125806
-Node: Regexp126047
-Node: Regexp Usage127499
-Node: Escape Sequences129525
-Node: Regexp Operators135268
-Ref: Regexp Operators-Footnote-1142440
-Ref: Regexp Operators-Footnote-2142587
-Node: Character Lists142685
-Ref: table-char-classes144460
-Node: GNU Regexp Operators147085
-Node: Case-sensitivity150798
-Ref: Case-sensitivity-Footnote-1153753
-Ref: Case-sensitivity-Footnote-2153988
-Node: Leftmost Longest154096
-Node: Computed Regexps155297
-Node: Locales158714
-Node: Reading Files162256
-Node: Records164197
-Ref: Records-Footnote-1172869
-Node: Fields172906
-Ref: Fields-Footnote-1175938
-Node: Nonconstant Fields176024
-Node: Changing Fields178226
-Node: Field Separators183511
-Node: Default Field Splitting186140
-Node: Regexp Field Splitting187257
-Node: Single Character Fields190607
-Node: Command Line Field Separator191658
-Node: Field Splitting Summary195097
-Ref: Field Splitting Summary-Footnote-1198283
-Node: Constant Size198384
-Node: Splitting By Content202946
-Ref: Splitting By Content-Footnote-1206672
-Node: Multiple Line206712
-Ref: Multiple Line-Footnote-1212559
-Node: Getline212738
-Node: Plain Getline214966
-Node: Getline/Variable217055
-Node: Getline/File218196
-Node: Getline/Variable/File219518
-Ref: Getline/Variable/File-Footnote-1221117
-Node: Getline/Pipe221204
-Node: Getline/Variable/Pipe223752
-Node: Getline/Coprocess224859
-Node: Getline/Variable/Coprocess226102
-Node: Getline Notes226816
-Node: Getline Summary228758
-Ref: table-getline-variants229042
-Node: Command line directories229947
-Node: Printing230572
-Node: Print232203
-Node: Print Examples233540
-Node: Output Separators236324
-Node: OFMT238083
-Node: Printf239441
-Node: Basic Printf240347
-Node: Control Letters241884
-Node: Format Modifiers245696
-Node: Printf Examples251707
-Node: Redirection254422
-Node: Special Files261400
-Node: Special FD261933
-Ref: Special FD-Footnote-1265508
-Node: Special Network265582
-Node: Special Caveats266437
-Node: Close Files And Pipes267231
-Ref: Close Files And Pipes-Footnote-1274175
-Ref: Close Files And Pipes-Footnote-2274323
-Node: Expressions274473
-Node: Values275542
-Node: Constants276218
-Node: Scalar Constants276898
-Ref: Scalar Constants-Footnote-1277757
-Node: Nondecimal-numbers277939
-Node: Regexp Constants280998
-Node: Using Constant Regexps281473
-Node: Variables284478
-Node: Using Variables285133
-Node: Assignment Options286860
-Node: Conversion288741
-Ref: table-locale-affects294115
-Ref: Conversion-Footnote-1294739
-Node: All Operators294848
-Node: Arithmetic Ops295478
-Node: Concatenation297977
-Ref: Concatenation-Footnote-1300770
-Node: Assignment Ops300889
-Ref: table-assign-ops305877
-Node: Increment Ops307278
-Node: Truth Values and Conditions310756
-Node: Truth Values311839
-Node: Typing and Comparison312887
-Node: Variable Typing313676
-Ref: Variable Typing-Footnote-1317573
-Node: Comparison Operators317695
-Ref: table-relational-ops318105
-Node: POSIX String Comparison321654
-Ref: POSIX String Comparison-Footnote-1322611
-Node: Boolean Ops322749
-Ref: Boolean Ops-Footnote-1326827
-Node: Conditional Exp326918
-Node: Function Calls328650
-Node: Precedence332209
-Node: Patterns and Actions335862
-Node: Pattern Overview336916
-Node: Regexp Patterns338582
-Node: Expression Patterns339125
-Node: Ranges342699
-Node: BEGIN/END345665
-Node: Using BEGIN/END346415
-Ref: Using BEGIN/END-Footnote-1349146
-Node: I/O And BEGIN/END349260
-Node: Empty351529
-Node: BEGINFILE/ENDFILE351863
-Node: Using Shell Variables354688
-Node: Action Overview356967
-Node: Statements359324
-Node: If Statement361183
-Node: While Statement362682
-Node: Do Statement364726
-Node: For Statement365882
-Node: Switch Statement369034
-Node: Break Statement371131
-Node: Continue Statement373107
-Node: Next Statement374808
-Node: Nextfile Statement377190
-Node: Exit Statement379708
-Node: Built-in Variables382039
-Node: User-modified383134
-Ref: User-modified-Footnote-1391135
-Node: Auto-set391197
-Ref: Auto-set-Footnote-1400180
-Node: ARGC and ARGV400385
-Node: Arrays404144
-Node: Array Basics405715
-Node: Array Intro406426
-Node: Reference to Elements410744
-Node: Assigning Elements413014
-Node: Array Example413505
-Node: Scanning an Array415237
-Node: Delete417514
-Ref: Delete-Footnote-1419912
-Node: Numeric Array Subscripts419969
-Node: Uninitialized Subscripts422152
-Node: Multi-dimensional423780
-Node: Multi-scanning426871
-Node: Array Sorting428455
-Ref: Array Sorting-Footnote-1431653
-Node: Arrays of Arrays431847
-Node: Functions436009
-Node: Built-in436831
-Node: Calling Built-in437845
-Node: Numeric Functions439821
-Ref: Numeric Functions-Footnote-1443530
-Ref: Numeric Functions-Footnote-2443866
-Ref: Numeric Functions-Footnote-3443914
-Node: String Functions444183
-Ref: String Functions-Footnote-1465982
-Ref: String Functions-Footnote-2466111
-Ref: String Functions-Footnote-3466359
-Node: Gory Details466446
-Ref: table-sub-escapes468103
-Ref: table-posix-sub469417
-Ref: table-gensub-escapes470317
-Node: I/O Functions471488
-Ref: I/O Functions-Footnote-1478185
-Node: Time Functions478332
-Ref: Time Functions-Footnote-1489199
-Ref: Time Functions-Footnote-2489267
-Ref: Time Functions-Footnote-3489425
-Ref: Time Functions-Footnote-4489536
-Ref: Time Functions-Footnote-5489648
-Ref: Time Functions-Footnote-6489875
-Node: Bitwise Functions490141
-Ref: table-bitwise-ops490699
-Ref: Bitwise Functions-Footnote-1494859
-Node: I18N Functions495043
-Node: User-defined496673
-Node: Definition Syntax497477
-Ref: Definition Syntax-Footnote-1502107
-Node: Function Example502176
-Node: Function Caveats504770
-Node: Calling A Function505191
-Node: Variable Scope506280
-Node: Pass By Value/Reference508208
-Node: Return Statement511648
-Node: Dynamic Typing514590
-Node: Indirect Calls515327
-Node: Internationalization525012
-Node: I18N and L10N526440
-Node: Explaining gettext527126
-Ref: Explaining gettext-Footnote-1532188
-Ref: Explaining gettext-Footnote-2532371
-Node: Programmer i18n532536
-Node: Translator i18n536799
-Node: String Extraction537592
-Ref: String Extraction-Footnote-1538553
-Node: Printf Ordering538639
-Ref: Printf Ordering-Footnote-1541423
-Node: I18N Portability541487
-Ref: I18N Portability-Footnote-1543936
-Node: I18N Example543999
-Ref: I18N Example-Footnote-1546634
-Node: Gawk I18N546706
-Node: Advanced Features547275
-Node: Nondecimal Data548594
-Node: Two-way I/O550155
-Ref: Two-way I/O-Footnote-1555569
-Node: TCP/IP Networking555646
-Node: Profiling558418
-Node: Library Functions565818
-Ref: Library Functions-Footnote-1568788
-Node: Library Names568959
-Ref: Library Names-Footnote-1572430
-Ref: Library Names-Footnote-2572650
-Node: General Functions572736
-Node: Nextfile Function573799
-Node: Strtonum Function578180
-Node: Assert Function581131
-Node: Round Function584457
-Node: Cliff Random Function585998
-Node: Ordinal Functions587014
-Ref: Ordinal Functions-Footnote-1590084
-Ref: Ordinal Functions-Footnote-2590336
-Node: Join Function590552
-Ref: Join Function-Footnote-1592323
-Node: Gettimeofday Function592523
-Node: Data File Management596238
-Node: Filetrans Function596870
-Node: Rewind Function601107
-Node: File Checking602560
-Node: Empty Files603654
-Node: Ignoring Assigns605884
-Node: Getopt Function607437
-Ref: Getopt Function-Footnote-1618762
-Node: Passwd Functions618965
-Ref: Passwd Functions-Footnote-1627953
-Node: Group Functions628041
-Node: Sample Programs636121
-Node: Running Examples636786
-Node: Clones637514
-Node: Cut Program638637
-Node: Egrep Program648478
-Ref: Egrep Program-Footnote-1656249
-Node: Id Program656359
-Node: Split Program659975
-Ref: Split Program-Footnote-1663494
-Node: Tee Program663622
-Node: Uniq Program666425
-Node: Wc Program673848
-Ref: Wc Program-Footnote-1678112
-Node: Miscellaneous Programs678312
-Node: Dupword Program679432
-Node: Alarm Program681463
-Node: Translate Program686185
-Ref: Translate Program-Footnote-1690564
-Ref: Translate Program-Footnote-2690792
-Node: Labels Program690926
-Ref: Labels Program-Footnote-1694297
-Node: Word Sorting694381
-Node: History Sorting698726
-Node: Extract Program700564
-Ref: Extract Program-Footnote-1707990
-Node: Simple Sed708118
-Node: Igawk Program711180
-Ref: Igawk Program-Footnote-1726214
-Ref: Igawk Program-Footnote-2726415
-Node: Signature Program726553
-Node: Debugger727633
-Node: Debugging728509
-Node: Debugging Concepts728823
-Node: Debugging Terms730676
-Node: Awk Debugging733224
-Node: Sample dgawk session734116
-Node: dgawk invocation734608
-Node: Finding The Bug735792
-Node: List of Debugger Commands742323
-Node: Breakpoint Control743638
-Node: Dgawk Execution Control746848
-Node: Viewing And Changing Data750197
-Node: Dgawk Stack753493
-Node: Dgawk Info754954
-Node: Miscellaneous Dgawk Commands758892
-Node: Readline Support764608
-Node: Dgawk Limitations765424
-Node: Language History767596
-Node: V7/SVR3.1768973
-Node: SVR4771268
-Node: POSIX772713
-Node: BTL774425
-Node: POSIX/GNU776115
-Node: Contributors785921
-Node: Installation789530
-Node: Gawk Distribution790501
-Node: Getting790985
-Node: Extracting791811
-Node: Distribution contents793199
-Node: Unix Installation798272
-Node: Quick Installation798863
-Node: Additional Configuration Options800565
-Node: Configuration Philosophy802328
-Node: Non-Unix Installation804692
-Node: PC Installation805157
-Node: PC Binary Installation806432
-Node: PC Compiling808275
-Node: PC Testing811681
-Node: PC Using812502
-Node: Cygwin816669
-Node: MSYS817662
-Node: VMS Installation818170
-Node: VMS Compilation818774
-Node: VMS Installation Details820351
-Node: VMS Running821981
-Node: VMS POSIX823578
-Node: VMS Old Gawk824876
-Node: Unsupported825345
-Node: Atari Installation825807
-Node: Atari Compiling827094
-Node: Atari Using828983
-Node: BeOS Installation831830
-Node: Tandem Installation832975
-Node: Bugs834654
-Node: Other Versions838486
-Node: Notes843849
-Node: Compatibility Mode844541
-Node: Additions845324
-Node: Adding Code846074
-Node: New Ports852126
-Node: Dynamic Extensions856258
-Node: Internals857639
-Node: Plugin License868044
-Node: Sample Library868678
-Node: Internal File Description869342
-Node: Internal File Ops873037
-Ref: Internal File Ops-Footnote-1877913
-Node: Using Internal File Ops878061
-Node: Future Extensions880086
-Node: Basic Concepts884123
-Node: Basic High Level884880
-Ref: Basic High Level-Footnote-1888999
-Node: Basic Data Typing889193
-Node: Floating Point Issues893630
-Node: String Conversion Precision894713
-Ref: String Conversion Precision-Footnote-1896407
-Node: Unexpected Results896516
-Node: POSIX Floating Point Problems898342
-Ref: POSIX Floating Point Problems-Footnote-1902041
-Node: Glossary902079
-Node: Copying925862
-Node: GNU Free Documentation License963419
-Node: next-edition988563
-Node: unresolved988915
-Node: revision989415
-Node: consistency989838
-Node: Index993191
+Ref: Options-Footnote-1111763
+Node: Other Arguments111788
+Node: Naming Standard Input114451
+Node: Environment Variables115415
+Node: AWKPATH Variable115859
+Ref: AWKPATH Variable-Footnote-1118596
+Node: Other Environment Variables118856
+Node: Exit Status121204
+Node: Include Files121879
+Node: Obsolete125270
+Node: Undocumented125956
+Node: Regexp126197
+Node: Regexp Usage127649
+Node: Escape Sequences129675
+Node: Regexp Operators135418
+Ref: Regexp Operators-Footnote-1142590
+Ref: Regexp Operators-Footnote-2142737
+Node: Character Lists142835
+Ref: table-char-classes144610
+Node: GNU Regexp Operators147235
+Node: Case-sensitivity150948
+Ref: Case-sensitivity-Footnote-1153903
+Ref: Case-sensitivity-Footnote-2154138
+Node: Leftmost Longest154246
+Node: Computed Regexps155447
+Node: Locales158864
+Node: Reading Files162406
+Node: Records164347
+Ref: Records-Footnote-1173019
+Node: Fields173056
+Ref: Fields-Footnote-1176088
+Node: Nonconstant Fields176174
+Node: Changing Fields178376
+Node: Field Separators183661
+Node: Default Field Splitting186290
+Node: Regexp Field Splitting187407
+Node: Single Character Fields190757
+Node: Command Line Field Separator191808
+Node: Field Splitting Summary195247
+Ref: Field Splitting Summary-Footnote-1198433
+Node: Constant Size198534
+Node: Splitting By Content203096
+Ref: Splitting By Content-Footnote-1206822
+Node: Multiple Line206862
+Ref: Multiple Line-Footnote-1212709
+Node: Getline212888
+Node: Plain Getline215116
+Node: Getline/Variable217205
+Node: Getline/File218346
+Node: Getline/Variable/File219668
+Ref: Getline/Variable/File-Footnote-1221267
+Node: Getline/Pipe221354
+Node: Getline/Variable/Pipe223902
+Node: Getline/Coprocess225009
+Node: Getline/Variable/Coprocess226252
+Node: Getline Notes226966
+Node: Getline Summary228908
+Ref: table-getline-variants229192
+Node: Command line directories230097
+Node: Printing230722
+Node: Print232353
+Node: Print Examples233690
+Node: Output Separators236474
+Node: OFMT238233
+Node: Printf239591
+Node: Basic Printf240497
+Node: Control Letters242034
+Node: Format Modifiers245846
+Node: Printf Examples251857
+Node: Redirection254572
+Node: Special Files261550
+Node: Special FD262083
+Ref: Special FD-Footnote-1265658
+Node: Special Network265732
+Node: Special Caveats266587
+Node: Close Files And Pipes267381
+Ref: Close Files And Pipes-Footnote-1274325
+Ref: Close Files And Pipes-Footnote-2274473
+Node: Expressions274623
+Node: Values275692
+Node: Constants276368
+Node: Scalar Constants277048
+Ref: Scalar Constants-Footnote-1277907
+Node: Nondecimal-numbers278089
+Node: Regexp Constants281148
+Node: Using Constant Regexps281623
+Node: Variables284628
+Node: Using Variables285283
+Node: Assignment Options287010
+Node: Conversion288891
+Ref: table-locale-affects294265
+Ref: Conversion-Footnote-1294889
+Node: All Operators294998
+Node: Arithmetic Ops295628
+Node: Concatenation298127
+Ref: Concatenation-Footnote-1300920
+Node: Assignment Ops301039
+Ref: table-assign-ops306027
+Node: Increment Ops307428
+Node: Truth Values and Conditions310906
+Node: Truth Values311989
+Node: Typing and Comparison313037
+Node: Variable Typing313826
+Ref: Variable Typing-Footnote-1317723
+Node: Comparison Operators317845
+Ref: table-relational-ops318255
+Node: POSIX String Comparison321804
+Ref: POSIX String Comparison-Footnote-1322761
+Node: Boolean Ops322899
+Ref: Boolean Ops-Footnote-1326977
+Node: Conditional Exp327068
+Node: Function Calls328800
+Node: Precedence332359
+Node: Patterns and Actions336012
+Node: Pattern Overview337066
+Node: Regexp Patterns338732
+Node: Expression Patterns339275
+Node: Ranges342849
+Node: BEGIN/END345815
+Node: Using BEGIN/END346565
+Ref: Using BEGIN/END-Footnote-1349296
+Node: I/O And BEGIN/END349410
+Node: Empty351679
+Node: BEGINFILE/ENDFILE352013
+Node: Using Shell Variables354838
+Node: Action Overview357117
+Node: Statements359474
+Node: If Statement361333
+Node: While Statement362832
+Node: Do Statement364876
+Node: For Statement366032
+Node: Switch Statement369184
+Node: Break Statement371281
+Node: Continue Statement373257
+Node: Next Statement374958
+Node: Nextfile Statement377340
+Node: Exit Statement379858
+Node: Built-in Variables382189
+Node: User-modified383284
+Ref: User-modified-Footnote-1391285
+Node: Auto-set391347
+Ref: Auto-set-Footnote-1400330
+Node: ARGC and ARGV400535
+Node: Arrays404294
+Node: Array Basics405865
+Node: Array Intro406576
+Node: Reference to Elements410894
+Node: Assigning Elements413164
+Node: Array Example413655
+Node: Scanning an Array415387
+Node: Delete417664
+Ref: Delete-Footnote-1420062
+Node: Numeric Array Subscripts420119
+Node: Uninitialized Subscripts422302
+Node: Multi-dimensional423930
+Node: Multi-scanning427021
+Node: Array Sorting428605
+Ref: Array Sorting-Footnote-1431803
+Node: Arrays of Arrays431997
+Node: Functions436159
+Node: Built-in436981
+Node: Calling Built-in437995
+Node: Numeric Functions439971
+Ref: Numeric Functions-Footnote-1443680
+Ref: Numeric Functions-Footnote-2444016
+Ref: Numeric Functions-Footnote-3444064
+Node: String Functions444333
+Ref: String Functions-Footnote-1466132
+Ref: String Functions-Footnote-2466261
+Ref: String Functions-Footnote-3466509
+Node: Gory Details466596
+Ref: table-sub-escapes468253
+Ref: table-posix-sub469567
+Ref: table-gensub-escapes470467
+Node: I/O Functions471638
+Ref: I/O Functions-Footnote-1478335
+Node: Time Functions478482
+Ref: Time Functions-Footnote-1489349
+Ref: Time Functions-Footnote-2489417
+Ref: Time Functions-Footnote-3489575
+Ref: Time Functions-Footnote-4489686
+Ref: Time Functions-Footnote-5489798
+Ref: Time Functions-Footnote-6490025
+Node: Bitwise Functions490291
+Ref: table-bitwise-ops490849
+Ref: Bitwise Functions-Footnote-1495009
+Node: I18N Functions495193
+Node: User-defined496823
+Node: Definition Syntax497627
+Ref: Definition Syntax-Footnote-1502257
+Node: Function Example502326
+Node: Function Caveats504920
+Node: Calling A Function505341
+Node: Variable Scope506430
+Node: Pass By Value/Reference508358
+Node: Return Statement511798
+Node: Dynamic Typing514740
+Node: Indirect Calls515477
+Node: Internationalization525162
+Node: I18N and L10N526590
+Node: Explaining gettext527276
+Ref: Explaining gettext-Footnote-1532338
+Ref: Explaining gettext-Footnote-2532521
+Node: Programmer i18n532686
+Node: Translator i18n536949
+Node: String Extraction537742
+Ref: String Extraction-Footnote-1538703
+Node: Printf Ordering538789
+Ref: Printf Ordering-Footnote-1541573
+Node: I18N Portability541637
+Ref: I18N Portability-Footnote-1544086
+Node: I18N Example544149
+Ref: I18N Example-Footnote-1546784
+Node: Gawk I18N546856
+Node: Advanced Features547425
+Node: Nondecimal Data548744
+Node: Two-way I/O550305
+Ref: Two-way I/O-Footnote-1555719
+Node: TCP/IP Networking555796
+Node: Profiling558568
+Node: Library Functions565968
+Ref: Library Functions-Footnote-1568938
+Node: Library Names569109
+Ref: Library Names-Footnote-1572580
+Ref: Library Names-Footnote-2572800
+Node: General Functions572886
+Node: Nextfile Function573949
+Node: Strtonum Function578330
+Node: Assert Function581281
+Node: Round Function584607
+Node: Cliff Random Function586148
+Node: Ordinal Functions587164
+Ref: Ordinal Functions-Footnote-1590234
+Ref: Ordinal Functions-Footnote-2590486
+Node: Join Function590702
+Ref: Join Function-Footnote-1592473
+Node: Gettimeofday Function592673
+Node: Data File Management596388
+Node: Filetrans Function597020
+Node: Rewind Function601257
+Node: File Checking602710
+Node: Empty Files603804
+Node: Ignoring Assigns606034
+Node: Getopt Function607587
+Ref: Getopt Function-Footnote-1618912
+Node: Passwd Functions619115
+Ref: Passwd Functions-Footnote-1628103
+Node: Group Functions628191
+Node: Sample Programs636271
+Node: Running Examples636936
+Node: Clones637664
+Node: Cut Program638787
+Node: Egrep Program648628
+Ref: Egrep Program-Footnote-1656399
+Node: Id Program656509
+Node: Split Program660125
+Ref: Split Program-Footnote-1663644
+Node: Tee Program663772
+Node: Uniq Program666575
+Node: Wc Program673998
+Ref: Wc Program-Footnote-1678262
+Node: Miscellaneous Programs678462
+Node: Dupword Program679582
+Node: Alarm Program681613
+Node: Translate Program686335
+Ref: Translate Program-Footnote-1690714
+Ref: Translate Program-Footnote-2690942
+Node: Labels Program691076
+Ref: Labels Program-Footnote-1694447
+Node: Word Sorting694531
+Node: History Sorting698876
+Node: Extract Program700714
+Ref: Extract Program-Footnote-1708140
+Node: Simple Sed708268
+Node: Igawk Program711330
+Ref: Igawk Program-Footnote-1726364
+Ref: Igawk Program-Footnote-2726565
+Node: Signature Program726703
+Node: Debugger727783
+Node: Debugging728694
+Node: Debugging Concepts729008
+Node: Debugging Terms730864
+Node: Awk Debugging733409
+Node: Sample dgawk session734301
+Node: dgawk invocation734793
+Node: Finding The Bug735975
+Node: List of Debugger Commands742534
+Node: Breakpoint Control743845
+Node: Dgawk Execution Control747171
+Node: Viewing And Changing Data750522
+Node: Dgawk Stack753831
+Node: Dgawk Info755291
+Node: Miscellaneous Dgawk Commands759239
+Node: Readline Support764953
+Node: Dgawk Limitations765780
+Node: Language History767919
+Node: V7/SVR3.1769296
+Node: SVR4771591
+Node: POSIX773036
+Node: BTL774748
+Node: POSIX/GNU776438
+Node: Contributors786244
+Node: Installation789853
+Node: Gawk Distribution790824
+Node: Getting791308
+Node: Extracting792134
+Node: Distribution contents793522
+Node: Unix Installation798595
+Node: Quick Installation799186
+Node: Additional Configuration Options800888
+Node: Configuration Philosophy802651
+Node: Non-Unix Installation805015
+Node: PC Installation805480
+Node: PC Binary Installation806755
+Node: PC Compiling808598
+Node: PC Testing812004
+Node: PC Using812825
+Node: Cygwin816992
+Node: MSYS817985
+Node: VMS Installation818493
+Node: VMS Compilation819097
+Node: VMS Installation Details820674
+Node: VMS Running822304
+Node: VMS POSIX823901
+Node: VMS Old Gawk825199
+Node: Unsupported825668
+Node: Atari Installation826130
+Node: Atari Compiling827417
+Node: Atari Using829306
+Node: BeOS Installation832153
+Node: Tandem Installation833298
+Node: Bugs834977
+Node: Other Versions838809
+Node: Notes844172
+Node: Compatibility Mode844864
+Node: Additions845647
+Node: Adding Code846397
+Node: New Ports852449
+Node: Dynamic Extensions856581
+Node: Internals857962
+Node: Plugin License868367
+Node: Sample Library869001
+Node: Internal File Description869665
+Node: Internal File Ops873360
+Ref: Internal File Ops-Footnote-1878236
+Node: Using Internal File Ops878384
+Node: Future Extensions880409
+Node: Basic Concepts884446
+Node: Basic High Level885203
+Ref: Basic High Level-Footnote-1889322
+Node: Basic Data Typing889516
+Node: Floating Point Issues893953
+Node: String Conversion Precision895036
+Ref: String Conversion Precision-Footnote-1896730
+Node: Unexpected Results896839
+Node: POSIX Floating Point Problems898665
+Ref: POSIX Floating Point Problems-Footnote-1902364
+Node: Glossary902402
+Node: Copying926185
+Node: GNU Free Documentation License963742
+Node: next-edition988886
+Node: unresolved989238
+Node: revision989738
+Node: consistency990161
+Node: Index993514

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index c3d0a8d3..59e1f2fd 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -1,13 +1,14 @@
\input texinfo @c -*-texinfo-*-
@ignore
TODO:
- Globally add () after built in and awk function names.
+ Globally add () after awk function names.
Go through CAUTION, NOTE, @strong, @quotation, etc.
Document common extensions with COMMONEXT marking & index entry.
Pick a reasonable name for BWK awk and use it everywhere (search
for Bell Laboratories)
Review use of "Modern xxx systems..."
DONE:
+ Globally add () after built in function names.
@end ignore
@c %**start of header (This is for running Texinfo on a region.)
@setfilename gawk.info
@@ -3309,6 +3310,14 @@ This is now @command{gawk}'s default behavior.
Nevertheless, this option remains both for backward compatibility,
and for use in combination with the @option{--traditional} option.
+@item -R @var{file}
+@itemx --command=@var{file}
+@cindex @code{-R} option
+@cindex @code{--command} option
+@command{dgawk} only.
+Read @command{dgawk} debugger options and commands from @var{file}.
+@xref{Dgawk Info}, for more information.
+
@item -S
@itemx --sandbox
@cindex @code{-S} option
@@ -24376,8 +24385,9 @@ were run, but in real life, this rarely happens for programs of
any complexity. Thus, most programming languages have facilities available
for ``debugging'' programs, and now @command{awk} is no exception.
-The @command{dgawk} debugger is purposely modeled after the GNU Debugger
-(GDB) command-line debugger. If you are familiar with GDB, learning
+The @command{dgawk} debugger is purposely modeled after
+@uref{http://www.gnu.org/software/gdb/, the GNU Debugger (GDB)}
+command-line debugger. If you are familiar with GDB, learning
@command{dgawk} is easy.
@menu
@@ -24408,7 +24418,7 @@ Of course, a debugging program cannot remove bugs for you, since it has
no way of knowing what you or your users consider a ``bug'' and what is a
``feature.'' (Sometimes, we humans have a hard time with this ourselves.)
In that case, what can you expect from such a tool? The answer to that
-depends on the language being debugged, but in general, it includes at
+depends on the language being debugged, but in general, you can expect at
least the following:
@itemize @bullet
@@ -24438,12 +24448,12 @@ or even its internal structure.
All of these tools provide a great amount of help in using your own
skills and understanding of the goals of your program to find where it
is going wrong (or, for that matter, to better comprehend a perfectly
-functional program that you or someone else wrote.)
+functional program that you or someone else wrote).
@node Debugging Terms
@subsection Additional Debugging Concepts
-Before diving in to the details, we need to introduce a few more
+Before diving in to the details, we need to introduce several
important concepts that apply to just about all debuggers, including
@command{dgawk}.
@@ -24536,7 +24546,7 @@ $ @kbd{dgawk -f getopt.awk -f join.awk -f uniq.awk inputfile}
@noindent
where both @file{getopt.awk} and @file{uniq.awk} are in @env{$AWKPATH}.
-(Experienced users of @command{gdb} or similar debuggers should note that
+(Experienced users of GDB or similar debuggers should note that
this syntax is slightly different from what they are used to.
With @command{dgawk}, the arguments for running the program are given
in the command line to the debugger rather than as part of the @code{run}
@@ -24597,26 +24607,28 @@ dgawk> @kbd{b are_equal}
@end example
The debugger tells us the file and line number where the breakpoint is.
-Now type @code{r} or @code{run} and the program runs until it hits
+Now type @samp{r} or @samp{run} and the program runs until it hits
the breakpoint the first time:
@example
dgawk> @kbd{r}
@print{} Starting program:
@print{} Stopping in Rule ...
-@print{} Breakpoint 1, are_equal(n, m, clast, cline, alast, aline) at `awklib/eg/prog/uniq.awk':64
+@print{} Breakpoint 1, are_equal(n, m, clast, cline, alast, aline)
+ at `awklib/eg/prog/uniq.awk':64
@print{} 64 if (fcount == 0 && charcount == 0)
dgawk>
@end example
Now we can look at what's going on inside our program. First of all,
-let's see how we got to where we are. At the prompt, we type @code{bt}
+let's see how we got to where we are. At the prompt, we type @samp{bt}
(short for ``backtrace''), and @command{dgawk} responds with a
listing of the current stack frames:
@example
dgawk> @kbd{bt}
-@print{} #0 are_equal(n, m, clast, cline, alast, aline) at `awklib/eg/prog/uniq.awk':69
+@print{} #0 are_equal(n, m, clast, cline, alast, aline)
+ at `awklib/eg/prog/uniq.awk':69
@print{} #1 in main() at `awklib/eg/prog/uniq.awk':89
@end example
@@ -24680,7 +24692,7 @@ Everything we have done so far has verified that the program has worked as
planned, up to and including the call to @code{are_equal()}, so the problem must
be inside this function. To investigate further, we have to begin
``stepping through'' the lines of @code{are_equal()}. We start by typing
-@code{n} (for ``next''):
+@samp{n} (for ``next''):
@example
dgawk> @kbd{n}
@@ -24832,7 +24844,7 @@ Each of these are discussed in the following subsections.
In the following descriptions, commands which may be abbreviated
show the abbreviation on a second description line.
A @command{dgawk} command name may also be truncated if that partial
-name is unambiguous. @command{dgawk} does have a built-in capability to
+name is unambiguous. @command{dgawk} has the built-in capability to
automatically repeat the previous command when just hitting @key{Enter}.
This works for the commands @code{list}, @code{next}, @code{nexti}, @code{step}, @code{stepi}
and @code{continue} executed without any argument.
@@ -24891,7 +24903,7 @@ continues executing the program.
Without any argument, delete any breakpoint at the next instruction
to be executed in the selected stack frame. If the program stops at
a breakpoint, this deletes that breakpoint so that the program
-does not stop at that location again.
+does not stop at that location again. Arguments can be one of the following:
@c nested table
@table @var
@@ -24910,7 +24922,7 @@ Delete breakpoint(s) set at entry to function @var{function}.
@item @code{condition} @var{n} @code{"@var{expression}"}
Add a condition to existing breakpoint or watchpoint @var{n}. The
condition is an @command{awk} expression that @command{dgawk} evaluates
-whenever the breakpoint is reached. If the condition is true, then
+whenever the breakpoint or watchpoint is reached. If the condition is true, then
@command{dgawk} stops execution and prompts for a command. Otherwise,
@command{dgawk} continues executing the program.
@@ -24942,11 +24954,11 @@ Optionally, you can specify how to enable the breakpoint:
@c nested table
@table @code
@item del
-Enable breakpoint(s) tempoarily, then delete it when
+Enable the breakpoint(s) tempoarily, then delete it when
the program stops at the breakpoint.
@item once
-Enable breakpoint(s) temporarily, then disable it when
+Enable the breakpoint(s) temporarily, then disable it when
the program stops at the breakpoint.
@end table
@@ -24963,6 +24975,7 @@ hit.
@item @code{tbreak} [[@var{filename}@code{:}]@var{n} | @var{function}]
@itemx @code{t} [[@var{filename}@code{:}]@var{n} | @var{function}]
Set a temporary breakpoint (enabled for only one stop).
+The arguments are the same as for @code{break}.
@end table
@node Dgawk Execution Control
@@ -24985,8 +24998,8 @@ execution of the program than we saw in our earlier example:
@itemx @code{end}
Set a list of commands to be executed upon stopping at
a breakpoint or watchpoint. @var{n} is the breakpoint or watchpoint number.
-Without a number, last one set is used. The actual commands follow
-starting on the next line and are terminated by the @code{end} command.
+Without a number, the last one set is used. The actual commands follow,
+starting on the next line, and terminated by the @code{end} command.
If the command @code{silent} is in the list, the usual messages about
stopping at a breakpoint and the source line are not printed. Any command
in the list that resumes execution (e.g. @code{continue}) terminates the list
@@ -25016,7 +25029,7 @@ before stopping.
@cindex @code{finish} debugger command
@item @code{finish}
Execute until the selected stack frame returns.
-Prints the returned value.
+Print the returned value.
@cindex debugger commands, @code{n} (@code{next})
@cindex debugger commands, @code{next}
@@ -25074,7 +25087,7 @@ stopping, unless it encounters a breakpoint or watchpoint.
@itemx @code{si} [@var{count}]
Execute one (or @var{count}) instruction(s), stepping inside function calls.
(For illustration of what is meant by an ``instruction'' in @command{gawk},
-see the output shown under @code{dump} in @ref{Miscellaneous Dgawk Commands}).
+see the output shown under @code{dump} in @ref{Miscellaneous Dgawk Commands}.)
@cindex debugger commands, @code{u} (@code{until})
@cindex debugger commands, @code{until}
@@ -25082,9 +25095,9 @@ see the output shown under @code{dump} in @ref{Miscellaneous Dgawk Commands}).
@cindex @code{u} debugger command (alias for @code{until})
@item @code{until} [[@var{filename}@code{:}]@var{n} | @var{function}]
@itemx @code{u} [[@var{filename}@code{:}]@var{n} | @var{function}]
-Without any argument, continues execution until a line past the current
-line in current stack frame is reached. With argument,
-continues execution until the specified location is reached, or the current
+Without any argument, continue execution until a line past the current
+line in current stack frame is reached. With an argument,
+continue execution until the specified location is reached, or the current
stack frame returns.
@end table
@@ -25143,7 +25156,7 @@ dgawk> @kbd{print $3}
@end example
@noindent
-prints the third field in the input record (if the specified field does not
+This prints the third field in the input record (if the specified field does not
exist, it prints @samp{Null field}). A variable can be an array element, with
the subscripts being constant values. To print the contents of an array,
prefix the name of the array with the @samp{@@} symbol:
@@ -25153,7 +25166,7 @@ gawk> @kbd{print @@a}
@end example
@noindent
-prints the index and the corresponding value for all elements in
+This prints the indices and the corresponding values for all elements in
the array @code{a}.
@cindex debugger commands, @code{printf}
@@ -25210,7 +25223,7 @@ watch list.
@subsection Dealing With The Stack
Whenever you run a program which contains any function calls,
-@command{gawk} maintains a stack which has all of the functions leading up
+@command{gawk} maintains a stack of all of the function calls leading up
to where the program is right now. You can see how you got to where you are,
and also move around in the stack to see what the state of things was in the
functions which called the one you are in. The commands for doing this are:
@@ -25248,7 +25261,7 @@ innermost one. The highest numbered frame is the one for the main program.
@cindex @code{up} debugger command
@item @code{up} [@var{count}]
Move @var{count} (default 1) frames up the stack toward the outermost frame.
-The select and print the frame.
+Then select and print the frame.
@end table
@node Dgawk Info
@@ -25258,7 +25271,7 @@ Besides looking at the values of variables, there is often a need to get
other sorts of information about the state of your program and of the
debugging environment itself. @command{dgawk} has one command which
provides this information, appropriately called @code{info}. @code{info}
-is used with one of a number of arguments which tell it exactly what
+is used with one of a number of arguments that tell it exactly what
you want to know:
@table @asis
@@ -25279,7 +25292,7 @@ Arguments of the selected frame.
List all currently set breakpoints.
@item display
-List of all items in the automatic display list.
+List all items in the automatic display list.
@item frame
Description of the selected stack frame.
@@ -25306,7 +25319,7 @@ List all program sources.
List all global variables.
@item watch
-List of all items in the watch list.
+List all items in the watch list.
@end table
@end table
@@ -25337,12 +25350,12 @@ The default is 100.
The number of lines that @code{list} prints. The default is 15.
@item outfile
-Sends @command{gawk} output to a file; debugger output still goes
+Send @command{gawk} output to a file; debugger output still goes
to standard output. An empty string (@code{""}) resets output to
standard output.
@item prompt
-The debugger prompt. The default is @samp{dgawk>}.
+The debugger prompt. The default is @samp{@w{dgawk> }}.
@item save_history @r{[}on @r{|} off@r{]}
Save command history to file @file{./.dgawk_history}.
@@ -25374,7 +25387,8 @@ same file more than once in order to avoid infinite recursion.
In addition to, or instead of the @code{source} command, you can use
the @option{-R @var{file}} or @option{--command=@var{file}} command-line
-options to execute commands from a file non-interactively.
+options to execute commands from a file non-interactively
+(@pxref{Options}.
@end table
@node Miscellaneous Dgawk Commands
@@ -25501,10 +25515,10 @@ function @var{function}. This command may change the current source file.
@item @code{quit}
@itemx @code{q}
Exit the debugger. Debugging is great fun, but sometimes we all have
-to tend to other obligations in life (and sometimes we find the bug,
-and are free to go on to the next one!). As we saw above, if you are
+to tend to other obligations in life, and sometimes we find the bug,
+and are free to go on to the next one! As we saw above, if you are
running a program, @command{dgawk} warns you if you accidentally type
-@code{q} or @code{quit}, to make sure you really want to quit.
+@samp{q} or @samp{quit}, to make sure you really want to quit.
@cindex debugger commands, @code{trace}
@cindex @code{trace} debugger command
@@ -25522,9 +25536,9 @@ fairly self-explanatory, and using @code{stepi} and @code{nexti} while
@node Readline Support
@section Readline Support
-If compiled with the @code{readline} library, you can take advantage of
-its command completion and history expansion features. The following types
-of completion are available:
+If @command{dgawk} is compiled with the @code{readline} library, you
+can take advantage of its command completion and history expansion
+features. The following types of completion are available:
@table @asis
@item Command completion
@@ -25541,7 +25555,7 @@ and
@item Argument completion
Non-numeric arguments to a command.
-Relevant commands are @code{info} and @code{enable}.
+Relevant commands are @code{enable} and @code{info}.
@item Variable name completion
Global variable names, and function arguments in the current context
@@ -25569,17 +25583,17 @@ responds @samp{syntax error}. When you do figure out what your mistake was,
though, you'll feel like a real guru.
@item
-If you perused the dump of opcodes in @xref{Miscellaneous Dgawk Commands},
-(or you are already familiar with @command{gawk} internals),
+If you perused the dump of opcodes in @ref{Miscellaneous Dgawk Commands},
+(or if you are already familiar with @command{gawk} internals),
you will realize that much of the internal manipulation of data
in @command{gawk}, as in many interpreters, is done on a stack.
@code{Op_push}, @code{Op_pop}, etc., are the ``bread and butter'' of
most @command{gawk} code. Unfortunately, as of now, @command{dgawk}
-does not provide the capability of examining the stack's contents.
+does not allow you to examine the stack's contents.
That is, the intermediate results of expression evaluation are on the
stack, but cannot be printed. Rather, only variables which are defined
-in the program can actually be printed. Of course, a workaround for
+in the program can be printed. Of course, a workaround for
this is to use more explicit variables at the debugging stage and then
change back to obscure, perhaps more optimal code later.
@@ -25598,7 +25612,7 @@ executing, short programs.
@end itemize
Look forward to a future release when these and other missing features may
-be added, and of course feel free to try to add them yourself if you want.
+be added, and of course feel free to try to add them yourself!
@ignore
@c Try this