aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--awklib/eg/prog/wordfreq.awk4
-rw-r--r--doc/gawk.info1141
-rw-r--r--doc/gawk.texi335
3 files changed, 550 insertions, 930 deletions
diff --git a/awklib/eg/prog/wordfreq.awk b/awklib/eg/prog/wordfreq.awk
index f364c752..6d7195e4 100644
--- a/awklib/eg/prog/wordfreq.awk
+++ b/awklib/eg/prog/wordfreq.awk
@@ -9,10 +9,6 @@
}
END {
- for (word in freq)
- printf "%s\t%d\n", word, freq[word]
-}
-END {
sort = "sort -k 2nr"
for (word in freq)
printf "%s\t%d\n", word, freq[word] | sort
diff --git a/doc/gawk.info b/doc/gawk.info
index 0744ca0f..46368574 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -107,7 +107,6 @@ texts being (a) (see below), and with the Back-Cover Texts being (b)
* Copying:: Your right to copy and distribute
`gawk'.
* GNU Free Documentation License:: The license for this Info file.
-* next-edition:: next-edition.
* Index:: Concept and Variable Index.
* History:: The history of `gawk' and
@@ -338,7 +337,7 @@ texts being (a) (see below), and with the Back-Cover Texts being (b)
* Function Example:: An example function definition and what it
does.
* Function Caveats:: Things to watch out for.
-* Calling A Function:: Don't use blanks.
+* Calling A Function:: Don't use spaces.
* Variable Scope:: Controlling variable scope.
* Pass By Value/Reference:: Passing parameters.
* Return Statement:: Specifying the value a function returns.
@@ -498,9 +497,6 @@ texts being (a) (see below), and with the Back-Cover Texts being (b)
* Unexpected Results:: Floating Point Numbers Are Not Abstract
Numbers.
* POSIX Floating Point Problems:: Standards Versus Existing Practice.
-* unresolved:: unresolved.
-* revision:: revision.
-* consistency:: consistency.
To Miriam, for making me complete.
@@ -2716,7 +2712,7 @@ or:
are valid. The `AWKPATH' environment variable can be of great value
when using `@include'. The same rules for the use of the `AWKPATH'
-variable in command line file searches (*note AWKPATH Variable::) apply
+variable in command-line file searches (*note AWKPATH Variable::) apply
to `@include' also.
This is very helpful in constructing `gawk' function libraries. If
@@ -3569,8 +3565,8 @@ these locales, `[a-dx-z]' is typically not equivalent to `[abcdxyz]';
instead it might be equivalent to `[aBbCcdXxYyz]', for example.
This point needs to be emphasized: Much literature teaches that one
-should use `[a-z]' to match a lower case character. But on systems with
-non-ASCII locales, this also matches all of the upper case characters
+should use `[a-z]' to match a lowercase character. But on systems with
+non-ASCII locales, this also matches all of the uppercase characters
except `Z'! This is a continuous cause of confusion, even well into
the twenty-first century.
@@ -6335,7 +6331,7 @@ closing input or output files, respectively. This value is zero if the
close succeeds, or -1 if it fails.
The POSIX standard is very vague; it says that `close()' returns
-zero on success and non-zero otherwise. In general, different
+zero on success and nonzero otherwise. In general, different
implementations vary in what they report when closing pipes; thus the
return value cannot be used portably. (d.c.) In POSIX mode (*note
Options::), `gawk' just returns zero when closing a pipe.
@@ -6443,7 +6439,7 @@ codes.
---------- Footnotes ----------
(1) The internal representation of all numbers, including integers,
-uses double-precision floating-point numbers. On most modern systems,
+uses double precision floating-point numbers. On most modern systems,
these are in IEEE 754 standard format.

@@ -9297,7 +9293,7 @@ with a pound sign (`#').
`ERRNO' contains a string describing the error.
Starting with version 4.0, `gawk' clears `ERRNO' before opening
- each command line input file. This enables checking if the file is
+ each command-line input file. This enables checking if the file is
readable inside a `BEGINFILE' pattern (*note BEGINFILE/ENDFILE::).
Otherwise, `ERRNO' works similarly to the C variable `errno'.
@@ -11482,7 +11478,7 @@ Optional parameters are enclosed in square brackets ([ ]):
Format the time specified by TIMESTAMP based on the contents of
the FORMAT string and return the result. It is similar to the
function of the same name in ISO C. If UTC-FLAG is present and is
- either non-zero or non-null, the value is formatted as UTC
+ either nonzero or non-null, the value is formatted as UTC
(Coordinated Universal Time, formerly GMT or Greenwich Mean Time).
Otherwise, the value is formatted for the local time zone. The
TIMESTAMP is in the same format as the value returned by the
@@ -11813,7 +11809,7 @@ bitwise operations just described. They are:
`xor(V1, V2)'
Return the bitwise XOR of the values provided by V1 and V2.
- For all of these functions, first the double-precision
+ For all of these functions, first the double precision
floating-point value is converted to the widest C unsigned integer
type, then the bitwise operation is performed. If the result cannot be
represented exactly as a C `double', leading nonzero bits are removed
@@ -12150,7 +12146,7 @@ This section describes how to call a user-defined function.
* Menu:
-* Calling A Function:: Don't use blanks.
+* Calling A Function:: Don't use spaces.
* Variable Scope:: Controlling variable scope.
* Pass By Value/Reference:: Passing parameters.
@@ -14482,7 +14478,7 @@ created with `split()' (*note String Functions::):
An optional additional argument is the separator to use when joining
the strings back together. If the caller supplies a nonempty value,
`join()' uses it; if it is not supplied, it has a null value. In this
-case, `join()' uses a single blank as a default separator for the
+case, `join()' uses a single space as a default separator for the
strings. If the value is equal to `SUBSEP', then `join()' joins the
strings with no separator between them. `SUBSEP' serves as a "magic"
value to indicate that there should be no separation between the
@@ -14690,7 +14686,7 @@ user-defined function to deal with the problem, since the mechanism for
calling it relies on the file being open and at the first record. Thus,
the main reason for `BEGINFILE' is to give you a "hook" to catch files
that cannot be processed. `ENDFILE' exists for symmetry, and because
-it provides an easy way to do per-file clean-up processing.
+it provides an easy way to do per-file cleanup processing.

File: gawk.info, Node: Rewind Function, Next: File Checking, Prev: Filetrans Function, Up: Data File Management
@@ -17360,15 +17356,14 @@ File: gawk.info, Node: Word Sorting, Next: History Sorting, Prev: Labels Prog
13.3.5 Generating Word-Usage Counts
-----------------------------------
-*FIXME: NEXT ED:* Rewrite this whole section and example.
+When working with large amounts of text, it can be interesting to know
+how often different words appear. For example, an author may overuse
+certain words, in which case she might wish to find synonyms to
+substitute for words that appear too often. This node develops a
+program for counting words and presenting the frequency information in
+a useful format.
- The following `awk' program prints the number of occurrences of each
-word in its input. It illustrates the associative nature of `awk'
-arrays by using strings as subscripts. It also demonstrates the `for
-(i in array)' mechanism. Finally, it shows how `awk' is used in
-conjunction with other utility programs to do a useful task of some
-complexity with a minimum of effort. Some explanations follow the
-program listing:
+ At first glance, a program like this would seem to do the job:
# Print list of word frequencies
{
@@ -17381,24 +17376,13 @@ program listing:
printf "%s\t%d\n", word, freq[word]
}
- This program has two rules. The first rule, because it has an empty
-pattern, is executed for every input line. It uses `awk''s
-field-accessing mechanism (*note Fields::) to pick out the individual
-words from the line, and the built-in variable `NF' (*note Built-in
-Variables::) to know how many fields are available. For each input
-word, it increments an element of the array `freq' to reflect that the
-word has been seen an additional time.
+ The program relies on `awk''s default field splitting mechanism to
+break each line up into "words," and uses an associative array named
+`freq', indexed by each word, to count the number of times the word
+occurs. In the `END' rule, it prints the counts.
- The second rule, because it has the pattern `END', is not executed
-until the input has been exhausted. It prints out the contents of the
-`freq' table that has been built up inside the first action. This
-program has several problems that would prevent it from being useful by
-itself on real text files:
-
- * Words are detected using the `awk' convention that fields are
- separated just by whitespace. Other characters in the input
- (except newlines) don't have any special meaning to `awk'. This
- means that punctuation characters count as part of words.
+ This program has several problems that prevent it from being useful
+on real text files:
* The `awk' language considers upper- and lowercase characters to be
distinct. Therefore, "bartender" and "Bartender" are not treated
@@ -17406,15 +17390,20 @@ itself on real text files:
are capitalized if they begin sentences, and a frequency analyzer
should not be sensitive to capitalization.
+ * Words are detected using the `awk' convention that fields are
+ separated just by whitespace. Other characters in the input
+ (except newlines) don't have any special meaning to `awk'. This
+ means that punctuation characters count as part of words.
+
* The output does not come out in any useful order. You're more
likely to be interested in which words occur most frequently or in
having an alphabetized table of how frequently each word occurs.
- The way to solve these problems is to use some of `awk''s more
-advanced features. First, we use `tolower()' to remove case
-distinctions. Next, we use `gsub()' to remove punctuation characters.
-Finally, we use the system `sort' utility to process the output of the
-`awk' script. Here is the new version of the program:
+ The first problem can be solved by using `tolower()' to remove case
+distinctions. The second problem can be solved by using `gsub()' to
+remove punctuation characters. Finally, we solve the third problem by
+using the system `sort' utility to process the output of the `awk'
+script. Here is the new version of the program:
# wordfreq.awk --- print list of word frequencies
@@ -17437,14 +17426,16 @@ and that the data is in `file1', the following pipeline:
awk -f wordfreq.awk file1 | sort -k 2nr
produces a table of the words appearing in `file1' in order of
-decreasing frequency. The `awk' program suitably massages the data and
-produces a word frequency table, which is not ordered.
-
- The `awk' script's output is then sorted by the `sort' utility and
-printed on the screen. The options given to `sort' specify a sort that
-uses the second field of each input line (skipping one field), that the
-sort keys should be treated as numeric quantities (otherwise `15' would
-come before `5'), and that the sorting should be done in descending
+decreasing frequency.
+
+ The `awk' program suitably massages the data and produces a word
+frequency table, which is not ordered. The `awk' script's output is
+then sorted by the `sort' utility and printed on the screen.
+
+ The options given to `sort' specify a sort that uses the second
+field of each input line (skipping one field), that the sort keys
+should be treated as numeric quantities (otherwise `15' would come
+before `5'), and that the sorting should be done in descending
(reverse) order.
The `sort' could even be done from within the program, by changing
@@ -17860,11 +17851,11 @@ language.(1) It works as follows:
command-line arguments that the user supplied (such as the data
file names).
- This program uses shell variables extensively: for storing command
-line arguments, the text of the `awk' program that will expand the
-user's program, for the user's original program, and for the expanded
-program. Doing so removes some potential problems that might arise
-were we to use temporary files instead, at the cost of making the
+ This program uses shell variables extensively: for storing
+command-line arguments, the text of the `awk' program that will expand
+the user's program, for the user's original program, and for the
+expanded program. Doing so removes some potential problems that might
+arise were we to use temporary files instead, at the cost of making the
script somewhat more complicated.
The initial part of the program turns on shell tracing if the first
@@ -18840,7 +18831,7 @@ execution of the program than we saw in our earlier example:
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.
+ 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:
@@ -19200,7 +19191,7 @@ categories, as follows:
-| [ :0x89fa6a8] Op_jmp : [target_jmp = 0x89fa568]
-| [ :0x89fa680] Op_pop_loop :
-|
- -| ...
+ ...
-|
-| [ 8:0x89fa658] Op_K_printf : [expr_count = 17] [redir_type = ""]
-| [ :0x89fa374] Op_no_op :
@@ -19639,7 +19630,7 @@ the current version of `gawk'.
- The `mktime()', `systime()', and `strftime()' functions for
working with timestamps (*note Time Functions::).
- * Changes and/or additions in the command line options:
+ * Changes and/or additions in the command-line options:
- The `AWKPATH' environment variable for specifying a path
search for the `-f' command-line option (*note Options::).
@@ -19686,8 +19677,6 @@ This minor node summarizes the common exceptions supported by `gawk',
Brian Kernighan's `awk', and `mawk', the three most widely-used freely
available versions of `awk' (*note Other Versions::).
- *FIXME:* Check all of these.
-
Feature BWK Awk Mawk GNU Awk
--------------------------------------------------------
`\x' Escape sequence X X X
@@ -19696,8 +19685,8 @@ Feature BWK Awk Mawk GNU Awk
`/dev/stdin' special file X X
`/dev/stdout' special file X X X
`/dev/stderr' special file X X X
-`**' and `**=' operators X X X
-`func' keyword X X X
+`**' and `**=' operators X X
+`func' keyword X X
`nextfile' statement X X X
`delete' without subscript X X X
`length()' of an array X X
@@ -20828,7 +20817,7 @@ Busybox Awk
The OpenSolaris POSIX `awk'
The version of `awk' in `/usr/xpg4/bin' on Solaris is more-or-less
- POSIX compliant. It is based on the `awk' from Mortice Kern
+ POSIX-compliant. It is based on the `awk' from Mortice Kern
Systems for PCs. The source code can be downloaded from the
OpenSolaris web site (http://www.opensolaris.org). This author
was able to make it compile and work under GNU/Linux with 1-2
@@ -22010,10 +21999,10 @@ range from 0 to 18,446,744,073,709,551,615.
i.e., those that do have a fractional part, such as 3.1415927. The
advantage to floating-point numbers is that they can represent a much
larger range of values. The disadvantage is that there are numbers
-that they cannot represent exactly. `awk' uses "double-precision"
-floating-point numbers, which can hold more digits than
-"single-precision" floating-point numbers. Floating-point issues are
-discussed more fully in *note Floating Point Issues::.
+that they cannot represent exactly. `awk' uses "double precision"
+floating-point numbers, which can hold more digits than "single
+precision" floating-point numbers. Floating-point issues are discussed
+more fully in *note Floating Point Issues::.
At the very lowest level, computers store values as groups of binary
digits, or "bits". Modern computers group bits into groups of eight,
@@ -22063,7 +22052,7 @@ D.3 Floating-Point Number Caveats
As mentioned earlier, floating-point numbers represent what are called
"real" numbers, i.e., those that have a fractional part. `awk' uses
-double-precision floating-point numbers to represent all numeric
+double precision floating-point numbers to represent all numeric
values. This minor node describes some of the issues involved in using
floating-point numbers.
@@ -22087,7 +22076,7 @@ File: gawk.info, Node: String Conversion Precision, Next: Unexpected Results,
D.3.1 The String Value Can Lie
------------------------------
-Internally, `awk' keeps both the numeric value (double-precision
+Internally, `awk' keeps both the numeric value (double precision
floating-point) and the string value for a variable. Separately, `awk'
keeps track of what type the variable has (*note Typing and
Comparison::), which plays a role in how variables are used in
@@ -22480,10 +22469,10 @@ Debugger
A program used to help developers remove "bugs" (de-bug) from
their programs.
-Double-Precision
+Double Precision
An internal representation of numbers that can have fractional
- parts. Double-precision numbers keep track of more digits than do
- single-precision numbers, but operations on them are sometimes
+ parts. Double precision numbers keep track of more digits than do
+ single precision numbers, but operations on them are sometimes
more expensive. This is the way `awk' stores numeric values. It
is the C type `double'.
@@ -22542,7 +22531,7 @@ Flag
Floating-Point Number
Often referred to in mathematical terms as a "rational" or real
number, this is just a number that can have a fractional part.
- See also "Double-Precision" and "Single-Precision."
+ See also "Double Precision" and "Single Precision."
Format
Format strings are used to control the appearance of output in the
@@ -22697,8 +22686,8 @@ Null String
Number
A numeric-valued data object. Modern `awk' implementations use
- double-precision floating-point to represent numbers. Very old
- `awk' implementations use single-precision floating-point.
+ double precision floating-point to represent numbers. Very old
+ `awk' implementations use single precision floating-point.
Octal
Base-eight notation, where the digits are `0'-`7'. Octal numbers
@@ -22816,10 +22805,10 @@ Side Effect
decrement expressions, and function calls have side effects.
(*Note Assignment Ops::.)
-Single-Precision
+Single Precision
An internal representation of numbers that can have fractional
- parts. Single-precision numbers keep track of fewer digits than
- do double-precision numbers, but operations on them are sometimes
+ parts. Single precision numbers keep track of fewer digits than
+ do double precision numbers, but operations on them are sometimes
less expensive in terms of CPU time. This is the type used by
some very old versions of `awk' to store numeric values. It is
the C type `float'.
@@ -23601,7 +23590,7 @@ GNU Lesser General Public License instead of this License. But first,
please read `http://www.gnu.org/philosophy/why-not-lgpl.html'.

-File: gawk.info, Node: GNU Free Documentation License, Next: next-edition, Prev: Copying, Up: Top
+File: gawk.info, Node: GNU Free Documentation License, Next: Index, Prev: Copying, Up: Top
GNU Free Documentation License
******************************
@@ -24087,177 +24076,7 @@ free software license, such as the GNU General Public License, to
permit their use in free software.

-File: gawk.info, Node: next-edition, Next: Index, Prev: GNU Free Documentation License, Up: Top
-
-Appendix A To Do In The Next Edition
-************************************
-
-Stuff for working on the manual
-
-* Menu:
-
-* unresolved:: unresolved.
-* revision:: revision.
-* consistency:: consistency.
-
-
-File: gawk.info, Node: unresolved, Next: revision, Up: next-edition
-
-A.1 Unresolved Issues
-=====================
-
- 1. Robert J. Chassell points out that awk programs should have some
- indication of how to use them. It would be useful to perhaps have
- a "programming style" section of the manual that would include
- this and other tips.
-
- 2. The default AWKPATH search path should be configurable via
- `configure' The default and how this changes needs to be
- documented.
-
-
-File: gawk.info, Node: revision, Next: consistency, Prev: unresolved, Up: next-edition
-
-A.2 Revisions To Make
-=====================
-
- 1. Talk about common extensions, those in nawk, gawk, mawk.
-
- 2. Use `foo' for variables and `foo()' for functions.
-
- 3. Standardize the error messages from the functions and programs in
- Chapters 12 and 13.
-
- 4. Nuke the BBS stuff and use something that won't be obsolete.
-
-
-File: gawk.info, Node: consistency, Prev: revision, Up: next-edition
-
-A.3 Consistency Issues
-======================
-
- * /.../ regexps are in @code, not @samp
-
- * ".." strings are in @code, not @samp
-
- * no @print before @dots
-
- * values of expressions in the text (`x' has the value 15), should
- be in roman, not @code
-
- * Use TAB and not tab
-
- * Use ESC and not ESCAPE
-
- * Use space and not blank to describe the space bar's
- character The term "blank" is thus basically reserved for "blank
- lines" etc.
-
- * To make dark corners work, the @value{DARKCORNER} has to be outside
- closing `.' of a sentence and after (@pxref{...}). This is a
- change from earlier versions.
-
- * " " should have an around it
-
- * Use "non-" only with language names or acronyms, or the words bug
- and option
-
- * Use `ftp' when talking about anonymous ftp
-
- * Use uppercase and lowercase, not "upper-case" and "lower-case" or
- "upper case" and "lower case"
-
- * Use "single precision" and "double precision", not
- "single-precision" or "double-precision"
-
- * Use alphanumeric, not alpha-numeric
-
- * Use POSIX-compliant, not POSIX compliant
-
- * Use -foo, not -Wfoo when describing long options
-
- * Use "Bell Laboratories", but not "Bell Labs".
-
- * Use "behavior" instead of "behaviour".
-
- * Use "zeros" instead of "zeroes".
-
- * Use "nonzero" not "non-zero".
-
- * Use "runtime" not "run time" or "run-time".
-
- * Use "command-line" not "command line".
-
- * Use "online" not "on-line".
-
- * Use "whitespace" not "white space".
-
- * Use "Input/Output", not "input/output". Also "I/O", not "i/o".
-
- * Use "lefthand"/"righthand", not "left-hand"/"right-hand".
-
- * Use "workaround", not "work-around".
-
- * Use "startup"/"cleanup", not "start-up"/"clean-up"
-
- * Use `do', and not `do'-`while', except where actually discussing
- the do-while.
-
- * Use "versus" in text and "vs." in index entries
-
- * The words "a", "and", "as", "between", "for", "from", "in", "of",
- "on", "that", "the", "to", "with", and "without", should not be
- capitalized in @chapter, @section etc. "Into" and "How" should.
-
- * Search for @dfn; make sure important items are also indexed.
-
- * "e.g." should always be followed by a comma.
-
- * "i.e." should always be followed by a comma.
-
- * The numbers zero through ten should be spelled out, except when
- talking about file descriptor numbers. > 10 and < 0, it's ok to
- use numbers.
-
- * In tables, put command-line options in @code, while in the text,
- put them in @option.
-
- * When using @strong, use "Note:" or "Caution:" with colons and not
- exclamation points. Do not surround the paragraphs with
- @quotation ... @end quotation.
-
- * For most cases, do NOT put a comma before "and", "or" or "but".
- But exercise taste with this rule.
-
- * Don't show the awk command with a program in quotes when it's just
- the program. I.e.
-
- {
- ...
- }
-
- and not
- awk '{
- ...
- }'
-
- * Do show it when showing command-line arguments, data files, etc,
- even if there is no output shown.
-
- * Use numbered lists only to show a sequential series of steps.
-
- * Use @code{xxx} for the xxx operator in indexing statements, not
- @samp.
-
- * Use MS-Windows not MS Windows
-
- * Use MS-DOS not MS-DOS
-
- * Use an empty set of parentheses after built-in and awk function
- names.
-
-
-File: gawk.info, Node: Index, Prev: next-edition, Up: Top
+File: gawk.info, Node: Index, Prev: GNU Free Documentation License, Up: Top
Index
*****
@@ -25268,10 +25087,10 @@ Index
* dollar sign ($), $ field operator: Fields. (line 19)
* dollar sign ($), incrementing fields and arrays: Increment Ops.
(line 30)
+* double precision floating-point: Basic Data Typing. (line 36)
* double quote (") <1>: Quoting. (line 37)
* double quote ("): Read Terminal. (line 25)
* double quote ("), regexp constants: Computed Regexps. (line 28)
-* double-precision floating-point: Basic Data Typing. (line 36)
* down debugger command: Dgawk Stack. (line 21)
* Drepper, Ulrich: Acknowledgments. (line 52)
* DuBois, John: Acknowledgments. (line 60)
@@ -26681,6 +26500,7 @@ Index
* silent debugger command: Dgawk Execution Control.
(line 10)
* sin() function: Numeric Functions. (line 74)
+* single precision floating-point: Basic Data Typing. (line 36)
* single quote (') <1>: Quoting. (line 31)
* single quote (') <2>: Long. (line 33)
* single quote ('): One-shot. (line 15)
@@ -26688,12 +26508,11 @@ Index
* single quote ('), with double quotes: Quoting. (line 53)
* single-character fields: Single Character Fields.
(line 6)
-* single-precision floating-point: Basic Data Typing. (line 36)
* Skywalker, Luke: Undocumented. (line 6)
* sleep utility: Alarm Program. (line 109)
-* Solaris, POSIX compliant awk: Other Versions. (line 86)
+* Solaris, POSIX-compliant awk: Other Versions. (line 86)
* sort function, arrays, sorting: Array Sorting. (line 6)
-* sort utility: Word Sorting. (line 56)
+* sort utility: Word Sorting. (line 49)
* sort utility, coprocesses and: Two-way I/O. (line 83)
* sorting characters in different languages: Explaining gettext.
(line 93)
@@ -26998,7 +26817,7 @@ Index
(line 6)
* word-boundary operator (gawk): GNU Regexp Operators.
(line 63)
-* wordfreq.awk program: Word Sorting. (line 62)
+* wordfreq.awk program: Word Sorting. (line 55)
* words, counting: Wc Program. (line 6)
* words, duplicate, searching for: Dupword Program. (line 6)
* words, usage counts, generating: Word Sorting. (line 6)
@@ -27042,409 +26861,405 @@ Index

Tag Table:
Node: Top1340
-Node: Foreword30098
-Node: Preface34426
-Ref: Preface-Footnote-137378
-Ref: Preface-Footnote-237484
-Node: History37716
-Node: Names39950
-Ref: Names-Footnote-141427
-Node: This Manual41499
-Ref: This Manual-Footnote-146397
-Node: Conventions46497
-Node: Manual History48613
-Ref: Manual History-Footnote-151791
-Ref: Manual History-Footnote-251832
-Node: How To Contribute51906
-Node: Acknowledgments53050
-Node: Getting Started57299
-Node: Running gawk59678
-Node: One-shot60864
-Node: Read Terminal62089
-Ref: Read Terminal-Footnote-163739
-Ref: Read Terminal-Footnote-264013
-Node: Long64184
-Node: Executable Scripts65560
-Ref: Executable Scripts-Footnote-167421
-Ref: Executable Scripts-Footnote-267523
-Node: Comments67974
-Node: Quoting70441
-Node: DOS Quoting75058
-Node: Sample Data Files75733
-Node: Very Simple78765
-Node: Two Rules83362
-Node: More Complex85509
-Ref: More Complex-Footnote-188439
-Node: Statements/Lines88519
-Ref: Statements/Lines-Footnote-192981
-Node: Other Features93246
-Node: When94115
-Node: Invoking Gawk96258
-Node: Command Line97643
-Node: Options98426
-Ref: Options-Footnote-1111480
-Node: Other Arguments111505
-Node: Naming Standard Input114168
-Node: Environment Variables115132
-Node: AWKPATH Variable115576
-Ref: AWKPATH Variable-Footnote-1118313
-Node: Other Environment Variables118573
-Node: Exit Status120921
-Node: Include Files121596
-Node: Obsolete124989
-Node: Undocumented125675
-Node: Regexp125916
-Node: Regexp Usage127368
-Node: Escape Sequences129394
-Node: Regexp Operators135137
-Ref: Regexp Operators-Footnote-1142326
-Ref: Regexp Operators-Footnote-2142473
-Node: Character Lists142571
-Ref: table-char-classes144362
-Node: GNU Regexp Operators147006
-Node: Case-sensitivity150725
-Ref: Case-sensitivity-Footnote-1153684
-Ref: Case-sensitivity-Footnote-2153919
-Node: Leftmost Longest154027
-Node: Computed Regexps155228
-Node: Locales158649
-Node: Reading Files162191
-Node: Records164132
-Ref: Records-Footnote-1172811
-Node: Fields172848
-Ref: Fields-Footnote-1175880
-Node: Nonconstant Fields175966
-Node: Changing Fields178168
-Node: Field Separators183458
-Node: Default Field Splitting186087
-Node: Regexp Field Splitting187204
-Node: Single Character Fields190563
-Node: Command Line Field Separator191622
-Node: Field Splitting Summary195061
-Ref: Field Splitting Summary-Footnote-1198247
-Node: Constant Size198348
-Node: Splitting By Content202910
-Ref: Splitting By Content-Footnote-1206636
-Node: Multiple Line206676
-Ref: Multiple Line-Footnote-1212523
-Node: Getline212702
-Node: Plain Getline214930
-Node: Getline/Variable217019
-Node: Getline/File218160
-Node: Getline/Variable/File219482
-Ref: Getline/Variable/File-Footnote-1221081
-Node: Getline/Pipe221168
-Node: Getline/Variable/Pipe223716
-Node: Getline/Coprocess224823
-Node: Getline/Variable/Coprocess226066
-Node: Getline Notes226780
-Node: Getline Summary228722
-Ref: table-getline-variants229006
-Node: Command line directories229911
-Node: Printing230536
-Node: Print232167
-Node: Print Examples233504
-Node: Output Separators236288
-Node: OFMT238047
-Node: Printf239405
-Node: Basic Printf240311
-Node: Control Letters241848
-Node: Format Modifiers245660
-Node: Printf Examples251671
-Node: Redirection254386
-Node: Special Files261364
-Node: Special FD261897
-Ref: Special FD-Footnote-1265508
-Node: Special Network265582
-Node: Special Caveats266437
-Node: Close Files And Pipes267231
-Ref: Close Files And Pipes-Footnote-1274255
-Ref: Close Files And Pipes-Footnote-2274403
-Node: Expressions274553
-Node: Values275622
-Node: Constants276298
-Node: Scalar Constants276978
-Ref: Scalar Constants-Footnote-1277837
-Node: Nondecimal-numbers278019
-Node: Regexp Constants281078
-Node: Using Constant Regexps281553
-Node: Variables284558
-Node: Using Variables285213
-Node: Assignment Options286940
-Node: Conversion288821
-Ref: table-locale-affects294195
-Ref: Conversion-Footnote-1294819
-Node: All Operators294928
-Node: Arithmetic Ops295558
-Node: Concatenation298064
-Ref: Concatenation-Footnote-1300857
-Node: Assignment Ops300976
-Ref: table-assign-ops305964
-Node: Increment Ops307372
-Node: Truth Values and Conditions310850
-Node: Truth Values311933
-Node: Typing and Comparison312981
-Node: Variable Typing313770
-Ref: Variable Typing-Footnote-1317667
-Node: Comparison Operators317789
-Ref: table-relational-ops318199
-Node: POSIX String Comparison321748
-Ref: POSIX String Comparison-Footnote-1322705
-Node: Boolean Ops322843
-Ref: Boolean Ops-Footnote-1326921
-Node: Conditional Exp327012
-Node: Function Calls328744
-Node: Precedence332334
-Node: Patterns and Actions335987
-Node: Pattern Overview337041
-Node: Regexp Patterns338707
-Node: Expression Patterns339250
-Node: Ranges342824
-Node: BEGIN/END345790
-Node: Using BEGIN/END346540
-Ref: Using BEGIN/END-Footnote-1349271
-Node: I/O And BEGIN/END349385
-Node: Empty351654
-Node: BEGINFILE/ENDFILE351988
-Node: Using Shell Variables354812
-Node: Action Overview357091
-Node: Statements359448
-Node: If Statement361307
-Node: While Statement362806
-Node: Do Statement364850
-Node: For Statement366006
-Node: Switch Statement369158
-Node: Break Statement371255
-Node: Continue Statement373231
-Node: Next Statement374932
-Node: Nextfile Statement377314
-Node: Exit Statement379839
-Node: Built-in Variables382170
-Node: User-modified383265
-Ref: User-modified-Footnote-1391266
-Node: Auto-set391328
-Ref: Auto-set-Footnote-1400592
-Node: ARGC and ARGV400797
-Node: Arrays404556
-Node: Array Basics406127
-Node: Array Intro406838
-Node: Reference to Elements411156
-Node: Assigning Elements413426
-Node: Array Example413917
-Node: Scanning an Array415649
-Node: Delete419097
-Ref: Delete-Footnote-1421528
-Node: Numeric Array Subscripts421585
-Node: Uninitialized Subscripts423768
-Node: Multi-dimensional425396
-Node: Multi-scanning428487
-Node: Array Sorting430071
-Ref: Array Sorting-Footnote-1433269
-Node: Arrays of Arrays433463
-Node: Functions438002
-Node: Built-in438824
-Node: Calling Built-in439902
-Node: Numeric Functions441878
-Ref: Numeric Functions-Footnote-1445635
-Ref: Numeric Functions-Footnote-2445971
-Ref: Numeric Functions-Footnote-3446019
-Node: String Functions446288
-Ref: String Functions-Footnote-1468094
-Ref: String Functions-Footnote-2468223
-Ref: String Functions-Footnote-3468471
-Node: Gory Details468558
-Ref: table-sub-escapes470215
-Ref: table-posix-sub471529
-Ref: table-gensub-escapes472429
-Node: I/O Functions473600
-Ref: I/O Functions-Footnote-1480295
-Node: Time Functions480442
-Ref: Time Functions-Footnote-1491309
-Ref: Time Functions-Footnote-2491377
-Ref: Time Functions-Footnote-3491535
-Ref: Time Functions-Footnote-4491646
-Ref: Time Functions-Footnote-5491758
-Ref: Time Functions-Footnote-6491985
-Node: Bitwise Functions492251
-Ref: table-bitwise-ops492809
-Ref: Bitwise Functions-Footnote-1496969
-Node: Type Functions497153
-Node: I18N Functions497591
-Node: User-defined499218
-Node: Definition Syntax500022
-Ref: Definition Syntax-Footnote-1504659
-Node: Function Example504728
-Node: Function Caveats507322
-Node: Calling A Function507743
-Node: Variable Scope508858
-Node: Pass By Value/Reference510786
-Node: Return Statement514226
-Node: Dynamic Typing517168
-Node: Indirect Calls517905
-Node: Internationalization527587
-Node: I18N and L10N529015
-Node: Explaining gettext529701
-Ref: Explaining gettext-Footnote-1534763
-Ref: Explaining gettext-Footnote-2534946
-Node: Programmer i18n535111
-Node: Translator i18n539402
-Node: String Extraction540195
-Ref: String Extraction-Footnote-1541156
-Node: Printf Ordering541242
-Ref: Printf Ordering-Footnote-1544026
-Node: I18N Portability544090
-Ref: I18N Portability-Footnote-1546539
-Node: I18N Example546602
-Ref: I18N Example-Footnote-1549237
-Node: Gawk I18N549309
-Node: Advanced Features549926
-Node: Nondecimal Data551245
-Node: Two-way I/O552826
-Ref: Two-way I/O-Footnote-1558240
-Node: TCP/IP Networking558317
-Node: Profiling561160
-Node: Library Functions568560
-Ref: Library Functions-Footnote-1571599
-Node: Library Names571770
-Ref: Library Names-Footnote-1575241
-Ref: Library Names-Footnote-2575461
-Node: General Functions575547
-Node: Nextfile Function576610
-Node: Strtonum Function580991
-Node: Assert Function583942
-Node: Round Function587268
-Node: Cliff Random Function588809
-Node: Ordinal Functions589825
-Ref: Ordinal Functions-Footnote-1592895
-Ref: Ordinal Functions-Footnote-2593147
-Node: Join Function593363
-Ref: Join Function-Footnote-1595134
-Node: Gettimeofday Function595334
-Node: Data File Management599049
-Node: Filetrans Function599681
-Node: Rewind Function603918
-Node: File Checking605371
-Node: Empty Files606465
-Node: Ignoring Assigns608695
-Node: Getopt Function610248
-Ref: Getopt Function-Footnote-1621573
-Node: Passwd Functions621776
-Ref: Passwd Functions-Footnote-1630763
-Node: Group Functions630851
-Node: Walking Arrays638953
-Node: Sample Programs640519
-Node: Running Examples641184
-Node: Clones641912
-Node: Cut Program643035
-Node: Egrep Program652884
-Ref: Egrep Program-Footnote-1660655
-Node: Id Program660765
-Node: Split Program664381
-Ref: Split Program-Footnote-1667900
-Node: Tee Program668028
-Node: Uniq Program670831
-Node: Wc Program678254
-Ref: Wc Program-Footnote-1682518
-Node: Miscellaneous Programs682718
-Node: Dupword Program683906
-Node: Alarm Program685937
-Node: Translate Program690659
-Ref: Translate Program-Footnote-1695038
-Ref: Translate Program-Footnote-2695266
-Node: Labels Program695400
-Ref: Labels Program-Footnote-1698771
-Node: Word Sorting698855
-Node: History Sorting703200
-Node: Extract Program705038
-Ref: Extract Program-Footnote-1712519
-Node: Simple Sed712647
-Node: Igawk Program715709
-Ref: Igawk Program-Footnote-1730741
-Ref: Igawk Program-Footnote-2730942
-Node: Anagram Program731080
-Node: Signature Program734178
-Node: Debugger735281
-Node: Debugging736192
-Node: Debugging Concepts736506
-Node: Debugging Terms738362
-Node: Awk Debugging740907
-Node: Sample dgawk session741799
-Node: dgawk invocation742291
-Node: Finding The Bug743473
-Node: List of Debugger Commands749958
-Node: Breakpoint Control751269
-Node: Dgawk Execution Control754745
-Node: Viewing And Changing Data758096
-Node: Dgawk Stack761405
-Node: Dgawk Info762865
-Node: Miscellaneous Dgawk Commands766813
-Node: Readline Support772241
-Node: Dgawk Limitations773068
-Node: Language History775207
-Node: V7/SVR3.1776639
-Node: SVR4778934
-Node: POSIX780376
-Node: BTL781374
-Node: POSIX/GNU782108
-Node: Common Extensions787294
-Node: Contributors788428
-Node: Installation792463
-Node: Gawk Distribution793357
-Node: Getting793841
-Node: Extracting794667
-Node: Distribution contents796345
-Node: Unix Installation801363
-Node: Quick Installation801980
-Node: Additional Configuration Options803942
-Node: Configuration Philosophy805419
-Node: Non-Unix Installation807761
-Node: PC Installation808219
-Node: PC Binary Installation809518
-Node: PC Compiling811366
-Node: PC Testing814310
-Node: PC Using815486
-Node: Cygwin819671
-Node: MSYS820668
-Node: VMS Installation821182
-Node: VMS Compilation821788
-Ref: VMS Compilation-Footnote-1822795
-Node: VMS Installation Details822853
-Node: VMS Running824488
-Node: VMS Old Gawk826088
-Node: Bugs826562
-Node: Other Versions830427
-Node: Notes835706
-Node: Compatibility Mode836398
-Node: Additions837181
-Node: Accessing The Source837993
-Node: Adding Code839416
-Node: New Ports844964
-Node: Dynamic Extensions849077
-Node: Internals850453
-Node: Plugin License859569
-Node: Sample Library860203
-Node: Internal File Description860889
-Node: Internal File Ops864596
-Ref: Internal File Ops-Footnote-1869364
-Node: Using Internal File Ops869512
-Node: Future Extensions871889
-Node: Basic Concepts874393
-Node: Basic High Level875150
-Ref: Basic High Level-Footnote-1879185
-Node: Basic Data Typing879370
-Node: Floating Point Issues883895
-Node: String Conversion Precision884978
-Ref: String Conversion Precision-Footnote-1886672
-Node: Unexpected Results886781
-Node: POSIX Floating Point Problems888607
-Ref: POSIX Floating Point Problems-Footnote-1892309
-Node: Glossary892347
-Node: Copying916446
-Node: GNU Free Documentation License954003
-Node: next-edition979147
-Node: unresolved979499
-Node: revision979999
-Node: consistency980422
-Node: Index983921
+Node: Foreword29909
+Node: Preface34237
+Ref: Preface-Footnote-137189
+Ref: Preface-Footnote-237295
+Node: History37527
+Node: Names39761
+Ref: Names-Footnote-141238
+Node: This Manual41310
+Ref: This Manual-Footnote-146208
+Node: Conventions46308
+Node: Manual History48424
+Ref: Manual History-Footnote-151602
+Ref: Manual History-Footnote-251643
+Node: How To Contribute51717
+Node: Acknowledgments52861
+Node: Getting Started57110
+Node: Running gawk59489
+Node: One-shot60675
+Node: Read Terminal61900
+Ref: Read Terminal-Footnote-163550
+Ref: Read Terminal-Footnote-263824
+Node: Long63995
+Node: Executable Scripts65371
+Ref: Executable Scripts-Footnote-167232
+Ref: Executable Scripts-Footnote-267334
+Node: Comments67785
+Node: Quoting70252
+Node: DOS Quoting74869
+Node: Sample Data Files75544
+Node: Very Simple78576
+Node: Two Rules83173
+Node: More Complex85320
+Ref: More Complex-Footnote-188250
+Node: Statements/Lines88330
+Ref: Statements/Lines-Footnote-192792
+Node: Other Features93057
+Node: When93926
+Node: Invoking Gawk96069
+Node: Command Line97454
+Node: Options98237
+Ref: Options-Footnote-1111291
+Node: Other Arguments111316
+Node: Naming Standard Input113979
+Node: Environment Variables114943
+Node: AWKPATH Variable115387
+Ref: AWKPATH Variable-Footnote-1118124
+Node: Other Environment Variables118384
+Node: Exit Status120732
+Node: Include Files121407
+Node: Obsolete124800
+Node: Undocumented125486
+Node: Regexp125727
+Node: Regexp Usage127179
+Node: Escape Sequences129205
+Node: Regexp Operators134948
+Ref: Regexp Operators-Footnote-1142137
+Ref: Regexp Operators-Footnote-2142284
+Node: Character Lists142382
+Ref: table-char-classes144173
+Node: GNU Regexp Operators146817
+Node: Case-sensitivity150536
+Ref: Case-sensitivity-Footnote-1153495
+Ref: Case-sensitivity-Footnote-2153730
+Node: Leftmost Longest153838
+Node: Computed Regexps155039
+Node: Locales158460
+Node: Reading Files162000
+Node: Records163941
+Ref: Records-Footnote-1172620
+Node: Fields172657
+Ref: Fields-Footnote-1175689
+Node: Nonconstant Fields175775
+Node: Changing Fields177977
+Node: Field Separators183267
+Node: Default Field Splitting185896
+Node: Regexp Field Splitting187013
+Node: Single Character Fields190372
+Node: Command Line Field Separator191431
+Node: Field Splitting Summary194870
+Ref: Field Splitting Summary-Footnote-1198056
+Node: Constant Size198157
+Node: Splitting By Content202719
+Ref: Splitting By Content-Footnote-1206445
+Node: Multiple Line206485
+Ref: Multiple Line-Footnote-1212332
+Node: Getline212511
+Node: Plain Getline214739
+Node: Getline/Variable216828
+Node: Getline/File217969
+Node: Getline/Variable/File219291
+Ref: Getline/Variable/File-Footnote-1220890
+Node: Getline/Pipe220977
+Node: Getline/Variable/Pipe223525
+Node: Getline/Coprocess224632
+Node: Getline/Variable/Coprocess225875
+Node: Getline Notes226589
+Node: Getline Summary228531
+Ref: table-getline-variants228815
+Node: Command line directories229720
+Node: Printing230345
+Node: Print231976
+Node: Print Examples233313
+Node: Output Separators236097
+Node: OFMT237856
+Node: Printf239214
+Node: Basic Printf240120
+Node: Control Letters241657
+Node: Format Modifiers245469
+Node: Printf Examples251480
+Node: Redirection254195
+Node: Special Files261173
+Node: Special FD261706
+Ref: Special FD-Footnote-1265317
+Node: Special Network265391
+Node: Special Caveats266246
+Node: Close Files And Pipes267040
+Ref: Close Files And Pipes-Footnote-1274063
+Ref: Close Files And Pipes-Footnote-2274211
+Node: Expressions274361
+Node: Values275430
+Node: Constants276106
+Node: Scalar Constants276786
+Ref: Scalar Constants-Footnote-1277645
+Node: Nondecimal-numbers277827
+Node: Regexp Constants280886
+Node: Using Constant Regexps281361
+Node: Variables284366
+Node: Using Variables285021
+Node: Assignment Options286748
+Node: Conversion288629
+Ref: table-locale-affects294003
+Ref: Conversion-Footnote-1294627
+Node: All Operators294736
+Node: Arithmetic Ops295366
+Node: Concatenation297872
+Ref: Concatenation-Footnote-1300665
+Node: Assignment Ops300784
+Ref: table-assign-ops305772
+Node: Increment Ops307180
+Node: Truth Values and Conditions310658
+Node: Truth Values311741
+Node: Typing and Comparison312789
+Node: Variable Typing313578
+Ref: Variable Typing-Footnote-1317475
+Node: Comparison Operators317597
+Ref: table-relational-ops318007
+Node: POSIX String Comparison321556
+Ref: POSIX String Comparison-Footnote-1322513
+Node: Boolean Ops322651
+Ref: Boolean Ops-Footnote-1326729
+Node: Conditional Exp326820
+Node: Function Calls328552
+Node: Precedence332142
+Node: Patterns and Actions335795
+Node: Pattern Overview336849
+Node: Regexp Patterns338515
+Node: Expression Patterns339058
+Node: Ranges342632
+Node: BEGIN/END345598
+Node: Using BEGIN/END346348
+Ref: Using BEGIN/END-Footnote-1349079
+Node: I/O And BEGIN/END349193
+Node: Empty351462
+Node: BEGINFILE/ENDFILE351796
+Node: Using Shell Variables354620
+Node: Action Overview356899
+Node: Statements359256
+Node: If Statement361115
+Node: While Statement362614
+Node: Do Statement364658
+Node: For Statement365814
+Node: Switch Statement368966
+Node: Break Statement371063
+Node: Continue Statement373039
+Node: Next Statement374740
+Node: Nextfile Statement377122
+Node: Exit Statement379647
+Node: Built-in Variables381978
+Node: User-modified383073
+Ref: User-modified-Footnote-1391074
+Node: Auto-set391136
+Ref: Auto-set-Footnote-1400400
+Node: ARGC and ARGV400605
+Node: Arrays404364
+Node: Array Basics405935
+Node: Array Intro406646
+Node: Reference to Elements410964
+Node: Assigning Elements413234
+Node: Array Example413725
+Node: Scanning an Array415457
+Node: Delete418905
+Ref: Delete-Footnote-1421336
+Node: Numeric Array Subscripts421393
+Node: Uninitialized Subscripts423576
+Node: Multi-dimensional425204
+Node: Multi-scanning428295
+Node: Array Sorting429879
+Ref: Array Sorting-Footnote-1433077
+Node: Arrays of Arrays433271
+Node: Functions437810
+Node: Built-in438632
+Node: Calling Built-in439710
+Node: Numeric Functions441686
+Ref: Numeric Functions-Footnote-1445443
+Ref: Numeric Functions-Footnote-2445779
+Ref: Numeric Functions-Footnote-3445827
+Node: String Functions446096
+Ref: String Functions-Footnote-1467902
+Ref: String Functions-Footnote-2468031
+Ref: String Functions-Footnote-3468279
+Node: Gory Details468366
+Ref: table-sub-escapes470023
+Ref: table-posix-sub471337
+Ref: table-gensub-escapes472237
+Node: I/O Functions473408
+Ref: I/O Functions-Footnote-1480103
+Node: Time Functions480250
+Ref: Time Functions-Footnote-1491116
+Ref: Time Functions-Footnote-2491184
+Ref: Time Functions-Footnote-3491342
+Ref: Time Functions-Footnote-4491453
+Ref: Time Functions-Footnote-5491565
+Ref: Time Functions-Footnote-6491792
+Node: Bitwise Functions492058
+Ref: table-bitwise-ops492616
+Ref: Bitwise Functions-Footnote-1496776
+Node: Type Functions496960
+Node: I18N Functions497398
+Node: User-defined499025
+Node: Definition Syntax499829
+Ref: Definition Syntax-Footnote-1504466
+Node: Function Example504535
+Node: Function Caveats507129
+Node: Calling A Function507550
+Node: Variable Scope508665
+Node: Pass By Value/Reference510593
+Node: Return Statement514033
+Node: Dynamic Typing516975
+Node: Indirect Calls517712
+Node: Internationalization527394
+Node: I18N and L10N528822
+Node: Explaining gettext529508
+Ref: Explaining gettext-Footnote-1534570
+Ref: Explaining gettext-Footnote-2534753
+Node: Programmer i18n534918
+Node: Translator i18n539209
+Node: String Extraction540002
+Ref: String Extraction-Footnote-1540963
+Node: Printf Ordering541049
+Ref: Printf Ordering-Footnote-1543833
+Node: I18N Portability543897
+Ref: I18N Portability-Footnote-1546346
+Node: I18N Example546409
+Ref: I18N Example-Footnote-1549044
+Node: Gawk I18N549116
+Node: Advanced Features549733
+Node: Nondecimal Data551052
+Node: Two-way I/O552633
+Ref: Two-way I/O-Footnote-1558047
+Node: TCP/IP Networking558124
+Node: Profiling560967
+Node: Library Functions568367
+Ref: Library Functions-Footnote-1571406
+Node: Library Names571577
+Ref: Library Names-Footnote-1575048
+Ref: Library Names-Footnote-2575268
+Node: General Functions575354
+Node: Nextfile Function576417
+Node: Strtonum Function580798
+Node: Assert Function583749
+Node: Round Function587075
+Node: Cliff Random Function588616
+Node: Ordinal Functions589632
+Ref: Ordinal Functions-Footnote-1592702
+Ref: Ordinal Functions-Footnote-2592954
+Node: Join Function593170
+Ref: Join Function-Footnote-1594941
+Node: Gettimeofday Function595141
+Node: Data File Management598856
+Node: Filetrans Function599488
+Node: Rewind Function603724
+Node: File Checking605177
+Node: Empty Files606271
+Node: Ignoring Assigns608501
+Node: Getopt Function610054
+Ref: Getopt Function-Footnote-1621379
+Node: Passwd Functions621582
+Ref: Passwd Functions-Footnote-1630569
+Node: Group Functions630657
+Node: Walking Arrays638759
+Node: Sample Programs640325
+Node: Running Examples640990
+Node: Clones641718
+Node: Cut Program642841
+Node: Egrep Program652690
+Ref: Egrep Program-Footnote-1660461
+Node: Id Program660571
+Node: Split Program664187
+Ref: Split Program-Footnote-1667706
+Node: Tee Program667834
+Node: Uniq Program670637
+Node: Wc Program678060
+Ref: Wc Program-Footnote-1682324
+Node: Miscellaneous Programs682524
+Node: Dupword Program683712
+Node: Alarm Program685743
+Node: Translate Program690465
+Ref: Translate Program-Footnote-1694844
+Ref: Translate Program-Footnote-2695072
+Node: Labels Program695206
+Ref: Labels Program-Footnote-1698577
+Node: Word Sorting698661
+Node: History Sorting702544
+Node: Extract Program704382
+Ref: Extract Program-Footnote-1711863
+Node: Simple Sed711991
+Node: Igawk Program715053
+Ref: Igawk Program-Footnote-1730085
+Ref: Igawk Program-Footnote-2730286
+Node: Anagram Program730424
+Node: Signature Program733522
+Node: Debugger734625
+Node: Debugging735536
+Node: Debugging Concepts735850
+Node: Debugging Terms737706
+Node: Awk Debugging740251
+Node: Sample dgawk session741143
+Node: dgawk invocation741635
+Node: Finding The Bug742817
+Node: List of Debugger Commands749302
+Node: Breakpoint Control750613
+Node: Dgawk Execution Control754089
+Node: Viewing And Changing Data757441
+Node: Dgawk Stack760750
+Node: Dgawk Info762210
+Node: Miscellaneous Dgawk Commands766158
+Node: Readline Support771583
+Node: Dgawk Limitations772410
+Node: Language History774549
+Node: V7/SVR3.1775981
+Node: SVR4778276
+Node: POSIX779718
+Node: BTL780716
+Node: POSIX/GNU781450
+Node: Common Extensions786636
+Node: Contributors787737
+Node: Installation791772
+Node: Gawk Distribution792666
+Node: Getting793150
+Node: Extracting793976
+Node: Distribution contents795654
+Node: Unix Installation800672
+Node: Quick Installation801289
+Node: Additional Configuration Options803251
+Node: Configuration Philosophy804728
+Node: Non-Unix Installation807070
+Node: PC Installation807528
+Node: PC Binary Installation808827
+Node: PC Compiling810675
+Node: PC Testing813619
+Node: PC Using814795
+Node: Cygwin818980
+Node: MSYS819977
+Node: VMS Installation820491
+Node: VMS Compilation821097
+Ref: VMS Compilation-Footnote-1822104
+Node: VMS Installation Details822162
+Node: VMS Running823797
+Node: VMS Old Gawk825397
+Node: Bugs825871
+Node: Other Versions829736
+Node: Notes835015
+Node: Compatibility Mode835707
+Node: Additions836490
+Node: Accessing The Source837302
+Node: Adding Code838725
+Node: New Ports844273
+Node: Dynamic Extensions848386
+Node: Internals849762
+Node: Plugin License858878
+Node: Sample Library859512
+Node: Internal File Description860198
+Node: Internal File Ops863905
+Ref: Internal File Ops-Footnote-1868673
+Node: Using Internal File Ops868821
+Node: Future Extensions871198
+Node: Basic Concepts873702
+Node: Basic High Level874459
+Ref: Basic High Level-Footnote-1878494
+Node: Basic Data Typing878679
+Node: Floating Point Issues883204
+Node: String Conversion Precision884287
+Ref: String Conversion Precision-Footnote-1885981
+Node: Unexpected Results886090
+Node: POSIX Floating Point Problems887916
+Ref: POSIX Floating Point Problems-Footnote-1891618
+Node: Glossary891656
+Node: Copying915755
+Node: GNU Free Documentation License953312
+Node: Index978449

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 7f3c3d91..ef8cc40f 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -303,7 +303,6 @@ particular records in a file and perform operations upon them.
* Copying:: Your right to copy and distribute
@command{gawk}.
* GNU Free Documentation License:: The license for this @value{DOCUMENT}.
-* next-edition:: next-edition.
* Index:: Concept and Variable Index.
@detailmenu
@@ -535,7 +534,7 @@ particular records in a file and perform operations upon them.
* Function Example:: An example function definition and what it
does.
* Function Caveats:: Things to watch out for.
-* Calling A Function:: Don't use blanks.
+* Calling A Function:: Don't use spaces.
* Variable Scope:: Controlling variable scope.
* Pass By Value/Reference:: Passing parameters.
* Return Statement:: Specifying the value a function returns.
@@ -695,9 +694,6 @@ particular records in a file and perform operations upon them.
* Unexpected Results:: Floating Point Numbers Are Not Abstract
Numbers.
* POSIX Floating Point Problems:: Standards Versus Existing Practice.
-* unresolved:: unresolved.
-* revision:: revision.
-* consistency:: consistency.
@end detailmenu
@end menu
@@ -3758,7 +3754,7 @@ or:
@noindent
are valid. The @code{AWKPATH} environment variable can be of great
value when using @samp{@@include}. The same rules for the use
-of the @code{AWKPATH} variable in command line file searches
+of the @code{AWKPATH} variable in command-line file searches
(@pxref{AWKPATH Variable}) apply to
@samp{@@include} also.
@@ -4471,7 +4467,7 @@ As in arithmetic, parentheses can change how operators are grouped.
@cindex @command{gawk}, regular expressions, precedence
In POSIX @command{awk} and @command{gawk}, the @samp{*}, @samp{+}, and @samp{?} operators
stand for themselves when there is nothing in the regexp that precedes them.
-For example, @samp{/+/} matches a literal plus sign. However, many other versions of
+For example, @code{/+/} matches a literal plus sign. However, many other versions of
@command{awk} treat such a usage as a syntax error.
If @command{gawk} is in compatibility mode
@@ -5060,8 +5056,8 @@ and in these locales, @samp{[a-dx-z]} is typically not equivalent to
for example.
This point needs to be emphasized: Much literature teaches that one should
-use @samp{[a-z]} to match a lower case character. But on systems with
-non-ASCII locales, this also matches all of the upper case characters
+use @samp{[a-z]} to match a lowercase character. But on systems with
+non-ASCII locales, this also matches all of the uppercase characters
except @samp{Z}! This is a continuous cause of confusion, even well
into the twenty-first century.
@@ -6593,7 +6589,7 @@ This is in addition to whatever field separations result from
@code{FS}.@footnote{When @code{FS} is the null string (@code{""})
or a regexp, this special feature of @code{RS} does not apply.
It does apply to the default field separator of a single space:
-@samp{FS = " "}.}
+@samp{FS = @w{" "}}.}
The original motivation for this special exception was probably to provide
useful behavior in the default case (i.e., @code{FS} is equal
@@ -8653,7 +8649,7 @@ This value is zero if the close succeeds, or @minus{}1 if
it fails.
The POSIX standard is very vague; it says that @code{close()}
-returns zero on success and non-zero otherwise. In general,
+returns zero on success and nonzero otherwise. In general,
different implementations vary in what they report when closing
pipes; thus the return value cannot be used portably.
@value{DARKCORNER}
@@ -8731,7 +8727,7 @@ have different forms, but are stored identically internally.
A @dfn{numeric constant} stands for a number. This number can be an
integer, a decimal fraction, or a number in scientific (exponential)
notation.@footnote{The internal representation of all numbers,
-including integers, uses double-precision
+including integers, uses double precision
floating-point numbers.
On most modern systems, these are in IEEE 754 standard format.}
Here are some examples of numeric constants that all
@@ -9755,7 +9751,7 @@ For maximum portability, do not use the @samp{**=} operator.
@cindex ambiguity, syntactic: @code{/=} operator vs. @code{/=@dots{}/} regexp constant
@cindex syntactic ambiguity: @code{/=} operator vs. @code{/=@dots{}/} regexp constant
@cindex @code{/=} operator vs. @code{/=@dots{}/} regexp constant
-There is a syntactic ambiguity between the @samp{/=} assignment
+There is a syntactic ambiguity between the @code{/=} assignment
operator and regexp constants whose first character is an @samp{=}.
@value{DARKCORNER}
This is most notable in commercial @command{awk} versions.
@@ -12605,7 +12601,7 @@ during a read for @code{getline}, or during a @code{close()} operation,
then @code{ERRNO} contains a string describing the error.
Starting with @value{PVERSION} 4.0, @command{gawk} clears @code{ERRNO}
-before opening each command line input file. This enables checking if
+before opening each command-line input file. This enables checking if
the file is readable inside a @code{BEGINFILE} pattern (@pxref{BEGINFILE/ENDFILE}).
Otherwise,
@@ -15641,7 +15637,7 @@ is out of range, @code{mktime()} returns @minus{}1.
Format the time specified by @var{timestamp}
based on the contents of the @var{format} string and return the result.
It is similar to the function of the same name in ISO C.
-If @var{utc-flag} is present and is either non-zero or non-null, the value
+If @var{utc-flag} is present and is either nonzero or non-null, the value
is formatted as UTC (Coordinated Universal Time, formerly GMT or Greenwich
Mean Time). Otherwise, the value is formatted for the local time zone.
The @var{timestamp} is in the same format as the value returned by the
@@ -16138,7 +16134,7 @@ Return the value of @var{val}, shifted right by @var{count} bits.
Return the bitwise XOR of the values provided by @var{v1} and @var{v2}.
@end table
-For all of these functions, first the double-precision floating-point value is
+For all of these functions, first the double precision floating-point value is
converted to the widest C unsigned integer type, then the bitwise operation is
performed. If the result cannot be represented exactly as a C @code{double},
leading nonzero bits are removed one by one until it can be represented
@@ -16567,7 +16563,7 @@ function ctime(ts, format)
This section describes how to call a user-defined function.
@menu
-* Calling A Function:: Don't use blanks.
+* Calling A Function:: Don't use spaces.
* Variable Scope:: Controlling variable scope.
* Pass By Value/Reference:: Passing parameters.
@end menu
@@ -19632,7 +19628,7 @@ function join(array, start, end, sep, result, i)
An optional additional argument is the separator to use when joining the
strings back together. If the caller supplies a nonempty value,
@code{join()} uses it; if it is not supplied, it has a null
-value. In this case, @code{join()} uses a single blank as a default
+value. In this case, @code{join()} uses a single space as a default
separator for the strings. If the value is equal to @code{SUBSEP},
then @code{join()} joins the strings with no separator between them.
@code{SUBSEP} serves as a ``magic'' value to indicate that there should
@@ -19882,7 +19878,7 @@ user-defined function to deal with the problem, since the mechanism for
calling it relies on the file being open and at the first record. Thus,
the main reason for @code{BEGINFILE} is to give you a ``hook'' to catch
files that cannot be processed. @code{ENDFILE} exists for symmetry,
-and because it provides an easy way to do per-file clean-up processing.
+and because it provides an easy way to do per-file cleanup processing.
@node Rewind Function
@subsection Rereading the Current File
@@ -23461,15 +23457,15 @@ END \
@c STARTOFRANGE worus
@cindex words, usage counts@comma{} generating
-@strong{FIXME: NEXT ED:} Rewrite this whole section and example.
-The following @command{awk} program prints
-the number of occurrences of each word in its input. It illustrates the
-associative nature of @command{awk} arrays by using strings as subscripts. It
-also demonstrates the @samp{for (i in array)} mechanism.
-Finally, it shows how @command{awk} is used in conjunction with other
-utility programs to do a useful task of some complexity with a minimum of
-effort. Some explanations follow the program listing:
+When working with large amounts of text, it can be interesting to know
+how often different words appear. For example, an author may overuse
+certain words, in which case she might wish to find synonyms to substitute
+for words that appear too often. This @value{SUBSECTION} develops a
+program for counting words and presenting the frequency information
+in a useful format.
+
+At first glance, a program like this would seem to do the job:
@example
# Print list of word frequencies
@@ -23484,31 +23480,17 @@ END @{
@}
@end example
-@c Exercise: Use asort() here
-
-This program has two rules. The
-first rule, because it has an empty pattern, is executed for every input line.
-It uses @command{awk}'s field-accessing mechanism
-(@pxref{Fields}) to pick out the individual words from
-the line, and the built-in variable @code{NF} (@pxref{Built-in Variables})
-to know how many fields are available.
-For each input word, it increments an element of the array @code{freq} to
-reflect that the word has been seen an additional time.
+The program relies on @command{awk}'s default field splitting
+mechanism to break each line up into ``words,'' and uses an
+associative array named @code{freq}, indexed by each word, to count
+the number of times the word occurs. In the @code{END} rule,
+it prints the counts.
-The second rule, because it has the pattern @code{END}, is not executed
-until the input has been exhausted. It prints out the contents of the
-@code{freq} table that has been built up inside the first action.
-This program has several problems that would prevent it from being
-useful by itself on real text files:
+This program has several problems that prevent it from being
+useful on real text files:
@itemize @bullet
@item
-Words are detected using the @command{awk} convention that fields are
-separated just by whitespace. Other characters in the input (except
-newlines) don't have any special meaning to @command{awk}. This means that
-punctuation characters count as part of words.
-
-@item
The @command{awk} language considers upper- and lowercase characters to be
distinct. Therefore, ``bartender'' and ``Bartender'' are not treated
as the same word. This is undesirable, since in normal text, words
@@ -23516,18 +23498,23 @@ are capitalized if they begin sentences, and a frequency analyzer should not
be sensitive to capitalization.
@item
+Words are detected using the @command{awk} convention that fields are
+separated just by whitespace. Other characters in the input (except
+newlines) don't have any special meaning to @command{awk}. This means that
+punctuation characters count as part of words.
+
+@item
The output does not come out in any useful order. You're more likely to be
interested in which words occur most frequently or in having an alphabetized
table of how frequently each word occurs.
@end itemize
@cindex @command{sort} utility
-The way to solve these problems is to use some of @command{awk}'s more advanced
-features. First, we use @code{tolower()} to remove
-case distinctions. Next, we use @code{gsub()} to remove punctuation
-characters. Finally, we use the system @command{sort} utility to process the
-output of the @command{awk} script. Here is the new version of
-the program:
+The first problem can be solved by using @code{tolower()} to remove case
+distinctions. The second problem can be solved by using @code{gsub()}
+to remove punctuation characters. Finally, we solve the third problem
+by using the system @command{sort} utility to process the output of the
+@command{awk} script. Here is the new version of the program:
@cindex @code{wordfreq.awk} program
@example
@@ -23542,11 +23529,11 @@ the program:
freq[$i]++
@}
+@c endfile
END @{
for (word in freq)
printf "%s\t%d\n", word, freq[word]
@}
-@c endfile
@end example
Assuming we have saved this program in a file named @file{wordfreq.awk},
@@ -23558,11 +23545,14 @@ awk -f wordfreq.awk file1 | sort -k 2nr
@noindent
produces a table of the words appearing in @file{file1} in order of
-decreasing frequency. The @command{awk} program suitably massages the
-data and produces a word frequency table, which is not ordered.
+decreasing frequency.
+The @command{awk} program suitably massages the
+data and produces a word frequency table, which is not ordered.
The @command{awk} script's output is then sorted by the @command{sort}
-utility and printed on the screen. The options given to @command{sort}
+utility and printed on the screen.
+
+The options given to @command{sort}
specify a sort that uses the second field of each input line (skipping
one field), that the sort keys should be treated as numeric quantities
(otherwise @samp{15} would come before @samp{5}), and that the sorting
@@ -24135,7 +24125,7 @@ Run the expanded program with @command{gawk} and any other original command-line
arguments that the user supplied (such as the data @value{FN}s).
@end enumerate
-This program uses shell variables extensively: for storing command line arguments,
+This program uses shell variables extensively: for storing command-line arguments,
the text of the @command{awk} program that will expand the user's program, for the
user's original program, and for the expanded program. Doing so removes some
potential problems that might arise were we to use temporary files instead,
@@ -25336,7 +25326,7 @@ 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
+in the list that resumes execution (e.g., @code{continue}) terminates the list
(an implicit @code{end}), and subsequent commands are ignored.
For example:
@@ -25782,7 +25772,7 @@ dgawk> @kbd{dump}
@print{} [ :0x89fa6a8] Op_jmp : [target_jmp = 0x89fa568]
@print{} [ :0x89fa680] Op_pop_loop :
@print{}
-@print{} @dots{}
+@dots{}
@print{}
@print{} [ 8:0x89fa658] Op_K_printf : [expr_count = 17] [redir_type = ""]
@print{} [ :0x89fa374] Op_no_op :
@@ -26447,7 +26437,7 @@ functions for working with timestamps
@item
-Changes and/or additions in the command line options:
+Changes and/or additions in the command-line options:
@itemize @minus
@item
@@ -26535,8 +26525,6 @@ by @command{gawk}, Brian Kernighan's @command{awk}, and @command{mawk},
the three most widely-used freely available versions of @command{awk}
(@pxref{Other Versions}).
-@strong{FIXME:} Check all of these.
-
@multitable {@file{/dev/stderr} special file} {BWK Awk} {Mawk} {GNU Awk}
@headitem Feature @tab BWK Awk @tab Mawk @tab GNU Awk
@item @samp{\x} Escape sequence @tab X @tab X @tab X
@@ -26545,8 +26533,8 @@ the three most widely-used freely available versions of @command{awk}
@item @file{/dev/stdin} special file @tab X @tab @tab X
@item @file{/dev/stdout} special file @tab X @tab X @tab X
@item @file{/dev/stderr} special file @tab X @tab X @tab X
-@item @code{**} and @code{**=} operators @tab X @tab X @tab X
-@item @code{func} keyword @tab X @tab X @tab X
+@item @code{**} and @code{**=} operators @tab X @tab @tab X
+@item @code{func} keyword @tab X @tab @tab X
@item @code{nextfile} statement @tab X @tab X @tab X
@item @code{delete} without subscript @tab X @tab X @tab X
@item @code{length()} of an array @tab X @tab @tab X
@@ -27479,7 +27467,7 @@ allows control over these translations and is interpreted as follows:
@itemize @bullet
@item
-If @code{BINMODE} is @samp{"r"}, or one,
+If @code{BINMODE} is @code{"r"}, or one,
then
binary mode is set on read (i.e., no translations on reads).
@@ -28019,12 +28007,12 @@ copies of other applications in your @file{/usr/local/bin}. For more
information, see the @uref{http://busybox.net, project's home page}.
@cindex OpenSolaris
-@cindex Solaris, POSIX compliant @command{awk}
+@cindex Solaris, POSIX-compliant @command{awk}
@cindex source code, Solaris @command{awk}
@item The OpenSolaris POSIX @command{awk}
The version of @command{awk} in @file{/usr/xpg4/bin} on Solaris is
more-or-less
-POSIX compliant. It is based on the @command{awk} from Mortice Kern
+POSIX-compliant. It is based on the @command{awk} from Mortice Kern
Systems for PCs. The source code can be downloaded from
the @uref{http://www.opensolaris.org, OpenSolaris web site}.
This author was able to make it compile and work under GNU/Linux
@@ -29544,16 +29532,16 @@ the range is from 0 to 4,294,967,295.
However, many systems now support a range from
0 to 18,446,744,073,709,551,615.
-@cindex double-precision floating-point
-@cindex single-precision floating-point
+@cindex double precision floating-point
+@cindex single precision floating-point
Floating-point numbers represent what are called ``real'' numbers; i.e.,
those that do have a fractional part, such as 3.1415927.
The advantage to floating-point numbers is that they
can represent a much larger range of values.
The disadvantage is that there are numbers that they cannot represent
exactly.
-@command{awk} uses @dfn{double-precision} floating-point numbers, which
-can hold more digits than @dfn{single-precision}
+@command{awk} uses @dfn{double precision} floating-point numbers, which
+can hold more digits than @dfn{single precision}
floating-point numbers.
Floating-point issues are discussed more fully in
@ref{Floating Point Issues}.
@@ -29609,7 +29597,7 @@ Where it makes sense, POSIX @command{awk} is compatible with 1999 ISO C.
As mentioned earlier, floating-point numbers represent what are called
``real'' numbers, i.e., those that have a fractional part. @command{awk}
-uses double-precision floating-point numbers to represent all
+uses double precision floating-point numbers to represent all
numeric values. This @value{SECTION} describes some of the issues
involved in using floating-point numbers.
@@ -29632,7 +29620,7 @@ but it does require a background in computer science.
@appendixsubsec The String Value Can Lie
Internally, @command{awk} keeps both the numeric value
-(double-precision floating-point) and the string value for a variable.
+(double precision floating-point) and the string value for a variable.
Separately, @command{awk} keeps
track of what type the variable has
(@pxref{Typing and Comparison}),
@@ -30111,9 +30099,9 @@ for the other to perform an action.
A program used to help developers remove ``bugs'' (de-bug) from
their programs.
-@item Double-Precision
+@item Double Precision
An internal representation of numbers that can have fractional parts.
-Double-precision numbers keep track of more digits than do single-precision
+Double precision numbers keep track of more digits than do single precision
numbers, but operations on them are sometimes more expensive. This is the way
@command{awk} stores numeric values. It is the C type @code{double}.
@@ -30175,7 +30163,7 @@ of some condition.
@item Floating-Point Number
Often referred to in mathematical terms as a ``rational'' or real number,
this is just a number that can have a fractional part.
-See also ``Double-Precision'' and ``Single-Precision.''
+See also ``Double Precision'' and ``Single Precision.''
@item Format
Format strings are used to control the appearance of output in the
@@ -30361,8 +30349,8 @@ occurrences of the field separator appear next to each other.
@item Number
A numeric-valued data object. Modern @command{awk} implementations use
-double-precision floating-point to represent numbers.
-Very old @command{awk} implementations use single-precision floating-point.
+double precision floating-point to represent numbers.
+Very old @command{awk} implementations use single precision floating-point.
@item Octal
Base-eight notation, where the digits are @code{0}--@code{7}.
@@ -30483,9 +30471,9 @@ producing a value. Assignment expressions, increment and decrement
expressions, and function calls have side effects.
(@xref{Assignment Ops}.)
-@item Single-Precision
+@item Single Precision
An internal representation of numbers that can have fractional parts.
-Single-precision numbers keep track of fewer digits than do double-precision
+Single precision numbers keep track of fewer digits than do double precision
numbers, but operations on them are sometimes less expensive in terms of CPU time.
This is the type used by some very old versions of @command{awk} to store
numeric values. It is the C type @code{float}.
@@ -31788,181 +31776,6 @@ to permit their use in free software.
@c ispell-local-pdict: "ispell-dict"
@c End:
-@node next-edition
-@appendix To Do In The Next Edition
-
-Stuff for working on the manual
-
-@menu
-* unresolved:: unresolved.
-* revision:: revision.
-* consistency:: consistency.
-@end menu
-
-@node unresolved
-@appendixsec Unresolved Issues
-
-@enumerate
-@item
-Robert J. Chassell points out that awk programs should have some indication
-of how to use them. It would be useful to perhaps have a ``programming
-style'' section of the manual that would include this and other tips.
-
-@item
-The default AWKPATH search path should be configurable via @command{configure}
-The default and how this changes needs to be documented.
-@end enumerate
-
-@node revision
-@appendixsec Revisions To Make
-
-@enumerate 1
-@item
-Talk about common extensions, those in nawk, gawk, mawk.
-@item
-Use @code{foo} for variables and @code{foo()} for functions.
-@item
-Standardize the error messages from the functions and programs
-in Chapters 12 and 13.
-@item
-Nuke the BBS stuff and use something that won't be obsolete.
-@end enumerate
-
-
-@node consistency
-@appendixsec Consistency Issues
-
-@itemize @bullet
-@item
-/.../ regexps are in @@code, not @@samp
-@item
-".." strings are in @@code, not @@samp
-@item
-no @@print before @@dots
-@item
-values of expressions in the text (@code{x} has the value 15),
-should be in roman, not @@code
-@item
-Use TAB and not tab
-@item
-Use ESC and not ESCAPE
-@item
-Use space and not blank to describe the space bar's character
-The term "blank" is thus basically reserved for "blank lines" etc.
-@item
-To make dark corners work, the @@value@{DARKCORNER@} has to be outside
-closing `.' of a sentence and after (@@pxref@{@dots{}@}). This is
-a change from earlier versions.
-@item
-" " should have an @w{} around it
-@item
-Use "non-" only with language names or acronyms, or the words bug and option
-@item
-Use @command{ftp} when talking about anonymous ftp
-@item
-Use uppercase and lowercase, not "upper-case" and "lower-case"
-or "upper case" and "lower case"
-@item
-Use "single precision" and "double precision",
-not "single-precision" or "double-precision"
-@item
-Use alphanumeric, not alpha-numeric
-@item
-Use POSIX-compliant, not POSIX compliant
-@item
-Use --foo, not -Wfoo when describing long options
-@item
-Use "Bell Laboratories", but not "Bell Labs".
-@item
-Use "behavior" instead of "behaviour".
-@item
-Use "zeros" instead of "zeroes".
-@item
-Use "nonzero" not "non-zero".
-@item
-Use "runtime" not "run time" or "run-time".
-@item
-Use "command-line" not "command line".
-@item
-Use "online" not "on-line".
-@item
-Use "whitespace" not "white space".
-@item
-Use "Input/Output", not "input/output". Also "I/O", not "i/o".
-@item
-Use "lefthand"/"righthand", not "left-hand"/"right-hand".
-@item
-Use "workaround", not "work-around".
-@item
-Use "startup"/"cleanup", not "start-up"/"clean-up"
-@item
-Use @code{do}, and not @code{do}-@code{while}, except where
-actually discussing the do-while.
-@item
-Use "versus" in text and "vs." in index entries
-@item
-The words "a", "and", "as", "between", "for", "from", "in", "of",
-"on", "that", "the", "to", "with", and "without",
-should not be capitalized in @@chapter, @@section etc.
-"Into" and "How" should.
-@item
-Search for @@dfn; make sure important items are also indexed.
-@item
-"e.g." should always be followed by a comma.
-@item
-"i.e." should always be followed by a comma.
-@item
-The numbers zero through ten should be spelled out, except when
-talking about file descriptor numbers. > 10 and < 0, it's
-ok to use numbers.
-@item
-In tables, put command-line options in @@code, while in the text,
-put them in @@option.
-@item
-When using @@strong, use "Note:" or "Caution:" with colons and
-not exclamation points. Do not surround the paragraphs
-with @@quotation ... @@end quotation.
-@item
-For most cases, do NOT put a comma before "and", "or" or "but".
-But exercise taste with this rule.
-@item
-Don't show the awk command with a program in quotes when it's
-just the program. I.e.
-
-@example
-@{
- @dots{}
-@}
-@end example
-
-@noindent
-and not
-@example
-awk '@{
- @dots{}
-@}'
-@end example
-
-@item
-Do show it when showing command-line arguments, data files, etc, even
-if there is no output shown.
-
-@item
-Use numbered lists only to show a sequential series of steps.
-
-@item
-Use @@code@{xxx@} for the xxx operator in indexing statements, not @@samp.
-
-@item
-Use MS-Windows not MS Windows
-
-@item
-Use MS-DOS not MS-DOS
-
-@item
-Use an empty set of parentheses after built-in and awk function names.
-@end itemize
-
@node Index
@unnumbered Index
@printindex cp
@@ -31991,10 +31804,9 @@ Consistency issues:
Use space and not blank to describe the space bar's character
The term "blank" is thus basically reserved for "blank lines" etc.
To make dark corners work, the @value{DARKCORNER} has to be outside
- closing `.' of a sentence and after (pxref{...}). This is
- a change from earlier versions.
+ closing `.' of a sentence and after (pxref{...}).
" " should have an @w{} around it
- Use "non-" only with language names or acronyms, or the words bug and option
+ Use "non-" only with language names or acronyms, or the words bug and option and null
Use @command{ftp} when talking about anonymous ftp
Use uppercase and lowercase, not "upper-case" and "lower-case"
or "upper case" and "lower case"
@@ -32030,9 +31842,6 @@ Consistency issues:
ok to use numbers.
In tables, put command-line options in @code, while in the text,
put them in @option.
- When using @strong, use "Note:" or "Caution:" with colons and
- not exclamation points. Do not surround the paragraphs
- with @quotation ... @end quotation.
For most cases, do NOT put a comma before "and", "or" or "but".
But exercise taste with this rule.
Don't show the awk command with a program in quotes when it's