[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gawk-diffs] [SCM] gawk branch, gawk-4.1-stable, updated. gawk-4.1.0-590
From: |
Arnold Robbins |
Subject: |
[gawk-diffs] [SCM] gawk branch, gawk-4.1-stable, updated. gawk-4.1.0-590-gcde2383 |
Date: |
Fri, 13 Feb 2015 09:21:24 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gawk".
The branch, gawk-4.1-stable has been updated
via cde238397af273f91deeaadf7e87713fbcb8ffbb (commit)
via 1d4fd43cb95fed18c9885ba5b30b28eb1f8f713b (commit)
from dea37a9bcb88cf1ba65c7ad5c439425352a01f40 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=cde238397af273f91deeaadf7e87713fbcb8ffbb
commit cde238397af273f91deeaadf7e87713fbcb8ffbb
Author: Arnold D. Robbins <address@hidden>
Date: Fri Feb 13 11:19:17 2015 +0200
Through QC1 review of doc!
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 9af9ef0..53dc566 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,7 @@
+2015-02-13 Arnold D. Robbins <address@hidden>
+
+ * gawktexi.in: O'Reilly fixes. Through QC1 review.
+
2015-02-11 Arnold D. Robbins <address@hidden>
* gawktexi.in: O'Reilly fixes.
diff --git a/doc/gawk.info b/doc/gawk.info
index 8061bbd..44fbd8d 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -26168,56 +26168,56 @@ available in System V Release 3.1 (1987). This minor
node summarizes
the changes, with cross-references to further details:
* The requirement for `;' to separate rules on a line (*note
- Statements/Lines::).
+ Statements/Lines::)
* User-defined functions and the `return' statement (*note
- User-defined::).
+ User-defined::)
* The `delete' statement (*note Delete::).
- * The `do'-`while' statement (*note Do Statement::).
+ * The `do'-`while' statement (*note Do Statement::)
* The built-in functions `atan2()', `cos()', `sin()', `rand()', and
- `srand()' (*note Numeric Functions::).
+ `srand()' (*note Numeric Functions::)
* The built-in functions `gsub()', `sub()', and `match()' (*note
- String Functions::).
+ String Functions::)
* The built-in functions `close()' and `system()' (*note I/O
- Functions::).
+ Functions::)
* The `ARGC', `ARGV', `FNR', `RLENGTH', `RSTART', and `SUBSEP'
- predefined variables (*note Built-in Variables::).
+ predefined variables (*note Built-in Variables::)
- * Assignable `$0' (*note Changing Fields::).
+ * Assignable `$0' (*note Changing Fields::)
* The conditional expression using the ternary operator `?:' (*note
- Conditional Exp::).
+ Conditional Exp::)
- * The expression `INDEX-VARIABLE in ARRAY' outside of `for'
- statements (*note Reference to Elements::).
+ * The expression `INDX in ARRAY' outside of `for' statements (*note
+ Reference to Elements::)
* The exponentiation operator `^' (*note Arithmetic Ops::) and its
- assignment operator form `^=' (*note Assignment Ops::).
+ assignment operator form `^=' (*note Assignment Ops::)
* C-compatible operator precedence, which breaks some old `awk'
- programs (*note Precedence::).
+ programs (*note Precedence::)
* Regexps as the value of `FS' (*note Field Separators::) and as the
third argument to the `split()' function (*note String
- Functions::), rather than using only the first character of `FS'.
+ Functions::), rather than using only the first character of `FS'
* Dynamic regexps as operands of the `~' and `!~' operators (*note
- Computed Regexps::).
+ Computed Regexps::)
* The escape sequences `\b', `\f', and `\r' (*note Escape
- Sequences::).
+ Sequences::)
- * Redirection of input for the `getline' function (*note Getline::).
+ * Redirection of input for the `getline' function (*note Getline::)
- * Multiple `BEGIN' and `END' rules (*note BEGIN/END::).
+ * Multiple `BEGIN' and `END' rules (*note BEGIN/END::)
- * Multidimensional arrays (*note Multidimensional::).
+ * Multidimensional arrays (*note Multidimensional::)
File: gawk.info, Node: SVR4, Next: POSIX, Prev: V7/SVR3.1, Up: Language
History
@@ -26228,37 +26228,37 @@ A.2 Changes Between SVR3.1 and SVR4
The System V Release 4 (1989) version of Unix `awk' added these features
(some of which originated in `gawk'):
- * The `ENVIRON' array (*note Built-in Variables::).
+ * The `ENVIRON' array (*note Built-in Variables::)
- * Multiple `-f' options on the command line (*note Options::).
+ * Multiple `-f' options on the command line (*note Options::)
* The `-v' option for assigning variables before program execution
- begins (*note Options::).
+ begins (*note Options::)
- * The `--' signal for terminating command-line options.
+ * The `--' signal for terminating command-line options
* The `\a', `\v', and `\x' escape sequences (*note Escape
- Sequences::).
+ Sequences::)
* A defined return value for the `srand()' built-in function (*note
- Numeric Functions::).
+ Numeric Functions::)
* The `toupper()' and `tolower()' built-in string functions for case
- translation (*note String Functions::).
+ translation (*note String Functions::)
* A cleaner specification for the `%c' format-control letter in the
- `printf' function (*note Control Letters::).
+ `printf' function (*note Control Letters::)
* The ability to dynamically pass the field width and precision
(`"%*.*d"') in the argument list of `printf' and `sprintf()'
- (*note Control Letters::).
+ (*note Control Letters::)
* The use of regexp constants, such as `/foo/', as expressions, where
they are equivalent to using the matching operator, as in `$0 ~
- /foo/' (*note Using Constant Regexps::).
+ /foo/' (*note Using Constant Regexps::)
* Processing of escape sequences inside command-line variable
- assignments (*note Assignment Options::).
+ assignments (*note Assignment Options::)
File: gawk.info, Node: POSIX, Next: BTL, Prev: SVR4, Up: Language History
@@ -26270,30 +26270,30 @@ The POSIX Command Language and Utilities standard for
`awk' (1992)
introduced the following changes into the language:
* The use of `-W' for implementation-specific options (*note
- Options::).
+ Options::)
* The use of `CONVFMT' for controlling the conversion of numbers to
- strings (*note Conversion::).
+ strings (*note Conversion::)
* The concept of a numeric string and tighter comparison rules to go
- with it (*note Typing and Comparison::).
+ with it (*note Typing and Comparison::)
* The use of predefined variables as function parameter names is
- forbidden (*note Definition Syntax::).
+ forbidden (*note Definition Syntax::)
* More complete documentation of many of the previously undocumented
- features of the language.
+ features of the language
In 2012, a number of extensions that had been commonly available for
many years were finally added to POSIX. They are:
* The `fflush()' built-in function for flushing buffered output
- (*note I/O Functions::).
+ (*note I/O Functions::)
- * The `nextfile' statement (*note Nextfile Statement::).
+ * The `nextfile' statement (*note Nextfile Statement::)
* The ability to delete all of an array at once with `delete ARRAY'
- (*note Delete::).
+ (*note Delete::)
*Note Common Extensions::, for a list of common extensions not
@@ -26315,13 +26315,13 @@ Other Versions::).
in his version of `awk':
* The `**' and `**=' operators (*note Arithmetic Ops:: and *note
- Assignment Ops::).
+ Assignment Ops::)
* The use of `func' as an abbreviation for `function' (*note
- Definition Syntax::).
+ Definition Syntax::)
* The `fflush()' built-in function for flushing buffered output
- (*note I/O Functions::).
+ (*note I/O Functions::)
*Note Common Extensions::, for a full list of the extensions
@@ -26343,104 +26343,102 @@ the current version of `gawk'.
* Additional predefined variables:
- - The `ARGIND' `BINMODE', `ERRNO', `FIELDWIDTHS', `FPAT',
+ - The `ARGIND', `BINMODE', `ERRNO', `FIELDWIDTHS', `FPAT',
`IGNORECASE', `LINT', `PROCINFO', `RT', and `TEXTDOMAIN'
- variables (*note Built-in Variables::).
+ variables (*note Built-in Variables::)
* Special files in I/O redirections:
- - The `/dev/stdin', `/dev/stdout', `/dev/stderr' and
- `/dev/fd/N' special file names (*note Special Files::).
+ - The `/dev/stdin', `/dev/stdout', `/dev/stderr', and
+ `/dev/fd/N' special file names (*note Special Files::)
- The `/inet', `/inet4', and `/inet6' special files for TCP/IP
networking using `|&' to specify which version of the IP
- protocol to use (*note TCP/IP Networking::).
+ protocol to use (*note TCP/IP Networking::)
* Changes and/or additions to the language:
- - The `\x' escape sequence (*note Escape Sequences::).
+ - The `\x' escape sequence (*note Escape Sequences::)
- - Full support for both POSIX and GNU regexps (*note Regexp::).
+ - Full support for both POSIX and GNU regexps (*note Regexp::)
- The ability for `FS' and for the third argument to `split()'
- to be null strings (*note Single Character Fields::).
+ to be null strings (*note Single Character Fields::)
- - The ability for `RS' to be a regexp (*note Records::).
+ - The ability for `RS' to be a regexp (*note Records::)
- The ability to use octal and hexadecimal constants in `awk'
- program source code (*note Nondecimal-numbers::).
+ program source code (*note Nondecimal-numbers::)
- The `|&' operator for two-way I/O to a coprocess (*note
- Two-way I/O::).
+ Two-way I/O::)
- - Indirect function calls (*note Indirect Calls::).
+ - Indirect function calls (*note Indirect Calls::)
- Directories on the command line produce a warning and are
- skipped (*note Command-line directories::).
+ skipped (*note Command-line directories::)
* New keywords:
- The `BEGINFILE' and `ENDFILE' special patterns (*note
- BEGINFILE/ENDFILE::).
+ BEGINFILE/ENDFILE::)
- - The `switch' statement (*note Switch Statement::).
+ - The `switch' statement (*note Switch Statement::)
* Changes to standard `awk' functions:
- The optional second argument to `close()' that allows closing
- one end of a two-way pipe to a coprocess (*note Two-way
- I/O::).
+ one end of a two-way pipe to a coprocess (*note Two-way I/O::)
- - POSIX compliance for `gsub()' and `sub()' with `--posix'.
+ - POSIX compliance for `gsub()' and `sub()' with `--posix'
- The `length()' function accepts an array argument and returns
- the number of elements in the array (*note String
- Functions::).
+ the number of elements in the array (*note String Functions::)
- The optional third argument to the `match()' function for
capturing text-matching subexpressions within a regexp (*note
- String Functions::).
+ String Functions::)
- Positional specifiers in `printf' formats for making
- translations easier (*note Printf Ordering::).
+ translations easier (*note Printf Ordering::)
- - The `split()' function's additional optional fourth argument
+ - The `split()' function's additional optional fourth argument,
which is an array to hold the text of the field separators
- (*note String Functions::).
+ (*note String Functions::)
* Additional functions only in `gawk':
- The `gensub()', `patsplit()', and `strtonum()' functions for
- more powerful text manipulation (*note String Functions::).
+ more powerful text manipulation (*note String Functions::)
- The `asort()' and `asorti()' functions for sorting arrays
- (*note Array Sorting::).
+ (*note Array Sorting::)
- The `mktime()', `systime()', and `strftime()' functions for
- working with timestamps (*note Time Functions::).
+ working with timestamps (*note Time Functions::)
- The `and()', `compl()', `lshift()', `or()', `rshift()', and
`xor()' functions for bit manipulation (*note Bitwise
- Functions::).
+ Functions::)
- The `isarray()' function to check if a variable is an array
- or not (*note Type Functions::).
+ or not (*note Type Functions::)
- - The `bindtextdomain()', `dcgettext()' and `dcngettext()'
- functions for internationalization (*note Programmer i18n::).
+ - The `bindtextdomain()', `dcgettext()', and `dcngettext()'
+ functions for internationalization (*note Programmer i18n::)
* 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::).
+ search for the `-f' command-line option (*note Options::)
- The `AWKLIBPATH' environment variable for specifying a path
- search for the `-l' command-line option (*note Options::).
+ search for the `-l' command-line option (*note Options::)
- The `-b', `-c', `-C', `-d', `-D', `-e', `-E', `-g', `-h',
`-i', `-l', `-L', `-M', `-n', `-N', `-o', `-O', `-p', `-P',
`-r', `-S', `-t', and `-V' short options. Also, the ability
- to use GNU-style long-named options that start with `--' and
+ to use GNU-style long-named options that start with `--', and
the `--assign', `--bignum', `--characters-as-bytes',
`--copyright', `--debug', `--dump-variables', `--exec',
`--field-separator', `--file', `--gen-pot', `--help',
@@ -26478,8 +26476,8 @@ the current version of `gawk'.
- GCC for VAX and Alpha has not been tested for a while.
- * Support for the following obsolete systems was removed from the
- code for `gawk' version 4.1:
+ * Support for the following obsolete system was removed from the code
+ for `gawk' version 4.1:
- Ultrix
@@ -26879,22 +26877,22 @@ The following table summarizes the common extensions
supported by
`gawk', Brian Kernighan's `awk', and `mawk', the three most widely used
freely available versions of `awk' (*note Other Versions::).
-Feature BWK Awk Mawk GNU Awk Now standard
------------------------------------------------------------------------
-`\x' Escape sequence X X X
-`FS' as null string X X X
-`/dev/stdin' special file X X X
-`/dev/stdout' special file X X X
-`/dev/stderr' special file X X X
-`delete' without subscript X X X X
-`fflush()' function X X X X
-`length()' of an array X X X
-`nextfile' statement X X X X
-`**' and `**=' operators X X
-`func' keyword X X
-`BINMODE' variable X X
-`RS' as regexp X X
-Time-related functions X X
+Feature BWK `awk' `mawk' `gawk' Now standard
+--------------------------------------------------------------------------
+`\x' escape sequence X X X
+`FS' as null string X X X
+`/dev/stdin' special file X X X
+`/dev/stdout' special file X X X
+`/dev/stderr' special file X X X
+`delete' without subscript X X X X
+`fflush()' function X X X X
+`length()' of an array X X X
+`nextfile' statement X X X X
+`**' and `**=' operators X X
+`func' keyword X X
+`BINMODE' variable X X
+`RS' as regexp X X
+Time-related functions X X
File: gawk.info, Node: Ranges and Locales, Next: Contributors, Prev: Common
Extensions, Up: Language History
@@ -26914,7 +26912,7 @@ in the machine's native character set. Thus, on
ASCII-based systems,
`[a-z]' matched all the lowercase letters, and only the lowercase
letters, as the numeric values for the letters from `a' through `z'
were contiguous. (On an EBCDIC system, the range `[a-z]' includes
-additional, non-alphabetic characters as well.)
+additional nonalphabetic characters as well.)
Almost all introductory Unix literature explained range expressions
as working in this fashion, and in particular, would teach that the
@@ -26938,7 +26936,7 @@ outside those locales, the ordering was defined to be
based on
What does that mean? In many locales, `A' and `a' are both less
than `B'. In other words, these locales sort characters in dictionary
order, and `[a-dx-z]' is typically not equivalent to `[abcdxyz]';
-instead it might be equivalent to `[ABCXYabcdxyz]', for example.
+instead, it might be equivalent to `[ABCXYabcdxyz]', for example.
This point needs to be emphasized: much literature teaches that you
should use `[a-z]' to match a lowercase character. But on systems with
@@ -26962,17 +26960,17 @@ is perfectly valid in ASCII, but is not valid in many
Unicode locales,
such as `en_US.UTF-8'.
Early versions of `gawk' used regexp matching code that was not
-locale aware, so ranges had their traditional interpretation.
+locale-aware, so ranges had their traditional interpretation.
When `gawk' switched to using locale-aware regexp matchers, the
problems began; especially as both GNU/Linux and commercial Unix
vendors started implementing non-ASCII locales, _and making them the
default_. Perhaps the most frequently asked question became something
-like "why does `[A-Z]' match lowercase letters?!?"
+like, "Why does `[A-Z]' match lowercase letters?!?"
This situation existed for close to 10 years, if not more, and the
`gawk' maintainer grew weary of trying to explain that `gawk' was being
-nicely standards compliant, and that the issue was in the user's
+nicely standards-compliant, and that the issue was in the user's
locale. During the development of version 4.0, he modified `gawk' to
always treat ranges in the original, pre-POSIX fashion, unless
`--posix' was used (*note Options::).(2)
@@ -26984,18 +26982,18 @@ of range expressions was _undefined_.(3)
By using this lovely technical term, the standard gives license to
implementors to implement ranges in whatever way they choose. The
-`gawk' maintainer chose to apply the pre-POSIX meaning in all cases:
-the default regexp matching; with `--traditional' and with `--posix';
-in all cases, `gawk' remains POSIX compliant.
+`gawk' maintainer chose to apply the pre-POSIX meaning both with the
+default regexp matching and when `--traditional' or `--posix' are used.
+In all cases `gawk' remains POSIX-compliant.
---------- Footnotes ----------
(1) And Life was good.
(2) And thus was born the Campaign for Rational Range Interpretation
-(or RRI). A number of GNU tools have either implemented this change, or
-will soon. Thanks to Karl Berry for coining the phrase "Rational Range
-Interpretation."
+(or RRI). A number of GNU tools have already implemented this change,
+or will soon. Thanks to Karl Berry for coining the phrase "Rational
+Range Interpretation."
(3) See the standard
(http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_03_05)
@@ -27027,7 +27025,7 @@ Info file, in approximate chronological order:
* Richard Stallman helped finish the implementation and the initial
draft of this Info file. He is also the founder of the FSF and
- the GNU project.
+ the GNU Project.
* John Woods contributed parts of the code (mostly fixes) in the
initial version of `gawk'.
@@ -27113,22 +27111,22 @@ Info file, in approximate chronological order:
* John Haque made the following contributions:
- The modifications to convert `gawk' into a byte-code
- interpreter, including the debugger.
+ interpreter, including the debugger
- - The addition of true arrays of arrays.
+ - The addition of true arrays of arrays
- The additional modifications for support of
- arbitrary-precision arithmetic.
+ arbitrary-precision arithmetic
- - The initial text of *note Arbitrary Precision Arithmetic::.
+ - The initial text of *note Arbitrary Precision Arithmetic::
- The work to merge the three versions of `gawk' into one, for
- the 4.1 release.
+ the 4.1 release
- - Improved array internals for arrays indexed by integers.
+ - Improved array internals for arrays indexed by integers
- - The improved array sorting features were driven by John
- together with Pat Rankin.
+ - The improved array sorting features were also driven by John,
+ together with Pat Rankin
* Panos Papadopoulos contributed the original text for *note Include
Files::.
@@ -27157,11 +27155,11 @@ A.10 Summary
============
* The `awk' language has evolved over time. The first release was
- with V7 Unix circa 1978. In 1987, for System V Release 3.1, major
- additions, including user-defined functions, were made to the
- language. Additional changes were made for System V Release 4, in
- 1989. Since then, further minor changes happen under the auspices
- of the POSIX standard.
+ with V7 Unix, circa 1978. In 1987, for System V Release 3.1,
+ major additions, including user-defined functions, were made to
+ the language. Additional changes were made for System V Release
+ 4, in 1989. Since then, further minor changes have happened under
+ the auspices of the POSIX standard.
* Brian Kernighan's `awk' provides a small number of extensions that
are implemented in common with other versions of `awk'.
@@ -27174,7 +27172,7 @@ A.10 Summary
been confusing over the years. Today, `gawk' implements Rational
Range Interpretation, where ranges of the form `[a-z]' match
_only_ the characters numerically between `a' through `z' in the
- machine's native character set. Usually this is ASCII but it can
+ machine's native character set. Usually this is ASCII, but it can
be EBCDIC on IBM S/390 systems.
* Many people have contributed to `gawk' development over the years.
@@ -27252,7 +27250,7 @@ B.1.2 Extracting the Distribution
`gawk' is distributed as several `tar' files compressed with different
compression programs: `gzip', `bzip2', and `xz'. For simplicity, the
rest of these instructions assume you are using the one compressed with
-the GNU Zip program, `gzip'.
+the GNU Gzip program (`gzip').
Once you have the distribution (e.g., `gawk-4.1.2.tar.gz'), use
`gzip' to expand the file and then use `tar' to extract it. You can
@@ -27292,10 +27290,10 @@ files, subdirectories, and files related to the
configuration process
to different non-Unix operating systems:
Various `.c', `.y', and `.h' files
- The actual `gawk' source code.
+ These files contain the actual `gawk' source code.
`ABOUT-NLS'
- Information about GNU `gettext' and translations.
+ A file containing information about GNU `gettext' and translations.
`AUTHORS'
A file with some information about the authorship of `gawk'. It
@@ -27327,7 +27325,7 @@ Various `.c', `.y', and `.h' files
The GNU General Public License.
`POSIX.STD'
- A description of behaviors in the POSIX standard for `awk' which
+ A description of behaviors in the POSIX standard for `awk' that
are left undefined, or where `gawk' may not comply fully, as well
as a list of things that the POSIX standard should describe but
does not.
@@ -27548,14 +27546,16 @@ command line when compiling `gawk' from scratch,
including:
do nothing. Similarly, setting the `LINT' variable (*note
User-modified::) has no effect on the running `awk' program.
- When used with GCC's automatic dead-code-elimination, this option
- cuts almost 23K bytes off the size of the `gawk' executable on
- GNU/Linux x86_64 systems. Results on other systems and with other
- compilers are likely to vary. Using this option may bring you
- some slight performance improvement.
+ When used with the GNU Compiler Collection's (GCC's) automatic
+ dead-code-elimination, this option cuts almost 23K bytes off the
+ size of the `gawk' executable on GNU/Linux x86_64 systems.
+ Results on other systems and with other compilers are likely to
+ vary. Using this option may bring you some slight performance
+ improvement.
- Using this option will cause some of the tests in the test suite
- to fail. This option may be removed at a later date.
+ CAUTION: Using this option will cause some of the tests in
+ the test suite to fail. This option may be removed at a
+ later date.
`--disable-nls'
Disable all message-translation facilities. This is usually not
@@ -27639,10 +27639,10 @@ B.3.1 Installation on PC Operating Systems
This minor node covers installation and usage of `gawk' on Intel
architecture machines running MS-DOS, any version of MS-Windows, or
OS/2. In this minor node, the term "Windows32" refers to any of
-Microsoft Windows-95/98/ME/NT/2000/XP/Vista/7/8.
+Microsoft Windows 95/98/ME/NT/2000/XP/Vista/7/8.
The limitations of MS-DOS (and MS-DOS shells under the other
-operating systems) has meant that various "DOS extenders" are often
+operating systems) have meant that various "DOS extenders" are often
used with programs such as `gawk'. The varying capabilities of
Microsoft Windows 3.1 and Windows32 can add to the confusion. For an
overview of the considerations, refer to `README_d/README.pc' in the
@@ -27837,7 +27837,7 @@ The DJGPP collection of tools includes an MS-DOS port
of Bash, and
several shells are available for OS/2, including `ksh'.
Under MS-Windows, OS/2 and MS-DOS, `gawk' (and many other text
-programs) silently translate end-of-line `\r\n' to `\n' on input and
+programs) silently translates end-of-line `\r\n' to `\n' on input and
`\n' to `\r\n' on output. A special `BINMODE' variable (c.e.) allows
control over these translations and is interpreted as follows:
@@ -27859,7 +27859,7 @@ The modes for standard input and standard output are
set one time only
program). Setting `BINMODE' for standard input or standard output is
accomplished by using an appropriate `-v BINMODE=N' option on the
command line. `BINMODE' is set at the time a file or pipe is opened
-and cannot be changed mid-stream.
+and cannot be changed midstream.
The name `BINMODE' was chosen to match `mawk' (*note Other
Versions::). `mawk' and `gawk' handle `BINMODE' similarly; however,
@@ -27903,10 +27903,9 @@ B.3.1.5 Using `gawk' In The Cygwin Environment
`gawk' can be built and used "out of the box" under MS-Windows if you
are using the Cygwin environment (http://www.cygwin.com). This
-environment provides an excellent simulation of GNU/Linux, using the
-GNU tools, such as Bash, the GNU Compiler Collection (GCC), GNU Make,
-and other GNU programs. Compilation and installation for Cygwin is the
-same as for a Unix system:
+environment provides an excellent simulation of GNU/Linux, using Bash,
+GCC, GNU Make, and other GNU programs. Compilation and installation
+for Cygwin is the same as for a Unix system:
tar -xvpzf gawk-4.1.2.tar.gz
cd gawk-4.1.2
@@ -27924,7 +27923,7 @@ B.3.1.6 Using `gawk' In The MSYS Environment
............................................
In the MSYS environment under MS-Windows, `gawk' automatically uses
-binary mode for reading and writing files. Thus there is no need to
+binary mode for reading and writing files. Thus, there is no need to
use the `BINMODE' variable.
This can cause problems with other Unix-like components that have
@@ -27979,9 +27978,9 @@ available from `https://github.com/endlesssoftware/mmk'.
target parameter may need to be exact.
`gawk' has been tested under VAX/VMS 7.3 and Alpha/VMS 7.3-1 using
-Compaq C V6.4, and Alpha/VMS 7.3, Alpha/VMS 7.3-2, and IA64/VMS 8.3.
-The most recent builds used HP C V7.3 on Alpha VMS 8.3 and both Alpha
-and IA64 VMS 8.4 used HP C 7.3.(1)
+Compaq C V6.4, and under Alpha/VMS 7.3, Alpha/VMS 7.3-2, and IA64/VMS
+8.3. The most recent builds used HP C V7.3 on Alpha VMS 8.3 and both
+Alpha and IA64 VMS 8.4 used HP C 7.3.(1)
*Note VMS GNV::, for information on building `gawk' as a PCSI kit
that is compatible with the GNV product.
@@ -28024,7 +28023,7 @@ than 32 bits.
/name=(as_is,short)
- Compile time macros need to be defined before the first VMS-supplied
+ Compile-time macros need to be defined before the first VMS-supplied
header file is included, as follows:
#if (__CRTL_VER >= 70200000) && !defined (__VAX)
@@ -28068,14 +28067,14 @@ directory tree, the program will be known as
`GNV$GNU:[vms_help]gawk.hlp'.
The PCSI kit also installs a `GNV$GNU:[vms_bin]gawk_verb.cld' file
-which can be used to add `gawk' and `awk' as DCL commands.
+that can be used to add `gawk' and `awk' as DCL commands.
For just the current process you can use:
$ set command gnv$gnu:[vms_bin]gawk_verb.cld
Or the system manager can use `GNV$GNU:[vms_bin]gawk_verb.cld' to
-add the `gawk' and `awk' to the system wide `DCLTABLES'.
+add the `gawk' and `awk' to the system-wide `DCLTABLES'.
The DCL syntax is documented in the `gawk.hlp' file.
@@ -28135,14 +28134,14 @@ process) are present, there is no ambiguity and `--'
can be omitted.
status value when the program exits.
The VMS severity bits will be set based on the `exit' value. A
-failure is indicated by 1 and VMS sets the `ERROR' status. A fatal
-error is indicated by 2 and VMS sets the `FATAL' status. All other
+failure is indicated by 1, and VMS sets the `ERROR' status. A fatal
+error is indicated by 2, and VMS sets the `FATAL' status. All other
values will have the `SUCCESS' status. The exit value is encoded to
comply with VMS coding standards and will have the `C_FACILITY_NO' of
`0x350000' with the constant `0xA000' added to the number shifted over
by 3 bits to make room for the severity codes.
- To extract the actual `gawk' exit code from the VMS status use:
+ To extract the actual `gawk' exit code from the VMS status, use:
unix_status = (vms_status .and. &x7f8) / 8
@@ -28158,7 +28157,7 @@ Function::.
VMS reports time values in GMT unless one of the `SYS$TIMEZONE_RULE'
or `TZ' logical names is set. Older versions of VMS, such as VAX/VMS
-7.3 do not set these logical names.
+7.3, do not set these logical names.
The default search path, when looking for `awk' program files
specified by the `-f' option, is `"SYS$DISK:[],AWK_LIBRARY:"'. The
@@ -28175,7 +28174,7 @@ B.3.2.5 The VMS GNV Project
The VMS GNV package provides a build environment similar to POSIX with
ports of a collection of open source tools. The `gawk' found in the GNV
-base kit is an older port. Currently the GNV project is being
+base kit is an older port. Currently, the GNV project is being
reorganized to supply individual PCSI packages for each component. See
`https://sourceforge.net/p/gnv/wiki/InstallingGNVPackages/'.
@@ -28209,7 +28208,7 @@ B.4 Reporting Problems and Bugs
Douglas Adams, `The Hitchhiker's Guide to the Galaxy'
If you have problems with `gawk' or think that you have found a bug,
-report it to the developers; we cannot promise to do anything but we
+report it to the developers; we cannot promise to do anything, but we
might well want to fix it.
Before reporting a bug, make sure you have really found a genuine
@@ -28220,7 +28219,7 @@ documentation!
Before reporting a bug or trying to fix it yourself, try to isolate
it to the smallest possible `awk' program and input data file that
-reproduces the problem. Then send us the program and data file, some
+reproduce the problem. Then send us the program and data file, some
idea of what kind of Unix system you're using, the compiler you used to
compile `gawk', and the exact results `gawk' gave you. Also say what
you expected to occur; this helps us decide whether the problem is
@@ -28232,7 +28231,7 @@ You can get this information with the command `gawk
--version'.
Once you have a precise problem description, send email to
<address@hidden>.
- The `gawk' maintainers subscribe to this address and thus they will
+ The `gawk' maintainers subscribe to this address, and thus they will
receive your bug report. Although you can send mail to the maintainers
directly, the bug reporting address is preferred because the email list
is archived at the GNU Project. _All email must be in English. This is
@@ -28253,8 +28252,8 @@ the only language understood in common by all the
maintainers._
forward bug reports "upstream" to the GNU mailing list, many
don't, so there is a good chance that the `gawk' maintainers
won't even see the bug report! Second, mail to the GNU list is
- archived, and having everything at the GNU project keeps things
- self-contained and not dependant on other organizations.
+ archived, and having everything at the GNU Project keeps things
+ self-contained and not dependent on other organizations.
Non-bug suggestions are always welcome as well. If you have
questions about things that are unclear in the documentation or are
@@ -28263,18 +28262,19 @@ if we can.
If you find bugs in one of the non-Unix ports of `gawk', send an
email to the bug list, with a copy to the person who maintains that
-port. They are named in the following list, as well as in the `README'
-file in the `gawk' distribution. Information in the `README' file
-should be considered authoritative if it conflicts with this Info file.
+port. The maintainers are named in the following list, as well as in
+the `README' file in the `gawk' distribution. Information in the
+`README' file should be considered authoritative if it conflicts with
+this Info file.
The people maintaining the various `gawk' ports are:
-Unix and POSIX systems Arnold Robbins, <address@hidden>.
-MS-DOS with DJGPP Scott Deifik, <address@hidden>.
-MS-Windows with MinGW Eli Zaretskii, <address@hidden>.
-OS/2 Andreas Buening, <address@hidden>.
-VMS John Malmberg, <address@hidden>.
-z/OS (OS/390) Dave Pitts, <address@hidden>.
+Unix and POSIX systems Arnold Robbins, <address@hidden>
+MS-DOS with DJGPP Scott Deifik, <address@hidden>
+MS-Windows with MinGW Eli Zaretskii, <address@hidden>
+OS/2 Andreas Buening, <address@hidden>
+VMS John Malmberg, <address@hidden>
+z/OS (OS/390) Dave Pitts, <address@hidden>
If your bug is also reproducible under Unix, send a copy of your
report to the <address@hidden> email list as well.
@@ -28285,7 +28285,7 @@ File: gawk.info, Node: Other Versions, Next:
Installation summary, Prev: Bugs
B.5 Other Freely Available `awk' Implementations
================================================
- It's kind of fun to put comments like this in your awk code.
+ It's kind of fun to put comments like this in your awk code:
`// Do C++ comments work? answer: yes! of course' -- Michael
Brennan
@@ -28308,7 +28308,7 @@ Unix `awk'
Zip file
`http://www.cs.princeton.edu/~bwk/btl.mirror/awk.zip'
- You can also retrieve it from Git Hub:
+ You can also retrieve it from GitHub:
git clone git://github.com/onetrueawk/awk bwkawk
@@ -28350,7 +28350,7 @@ Unix `awk'
`awka'
Written by Andrew Sumner, `awka' translates `awk' programs into C,
compiles them, and links them with a library of functions that
- provides the core `awk' functionality. It also has a number of
+ provide the core `awk' functionality. It also has a number of
extensions.
The `awk' translator is released under the GPL, and the library is
@@ -28364,14 +28364,14 @@ Unix `awk'
`pawk'
Nelson H.F. Beebe at the University of Utah has modified BWK `awk'
to provide timing and profiling information. It is different from
- `gawk' with the `--profile' option (*note Profiling::), in that it
+ `gawk' with the `--profile' option (*note Profiling::) in that it
uses CPU-based profiling, not line-count profiling. You may find
it at either
`ftp://ftp.math.utah.edu/pub/pawk/pawk-20030606.tar.gz' or
`http://www.math.utah.edu/pub/pawk/pawk-20030606.tar.gz'.
-Busybox Awk
- Busybox is a GPL-licensed program providing small versions of many
+BusyBox `awk'
+ BusyBox is a GPL-licensed program providing small versions of many
applications within a single executable. It is aimed at embedded
systems. It includes a full implementation of POSIX `awk'. When
building it, be careful not to do `make install' as it will
@@ -28381,7 +28381,7 @@ Busybox Awk
The OpenSolaris POSIX `awk'
The versions of `awk' in `/usr/xpg4/bin' and `/usr/xpg6/bin' on
- Solaris are more-or-less POSIX-compliant. They are based on the
+ Solaris are more or less POSIX-compliant. They are based on the
`awk' from Mortice Kern Systems for PCs. We were able to make
this code compile and work under GNU/Linux with 1-2 hours of work.
Making it more generally portable (using GNU Autoconf and/or
@@ -28413,7 +28413,7 @@ Libmawk
information. (This is not related to Nelson Beebe's modified
version of BWK `awk', described earlier.)
-QSE Awk
+QSE `awk'
This is an embeddable `awk' interpreter. For more information, see
`http://code.google.com/p/qse/' and `http://awk.info/?tools/qse'.
@@ -28431,7 +28431,7 @@ Other versions
See also the "Versions and implementations" section of the
Wikipedia article
(http://en.wikipedia.org/wiki/Awk_language#Versions_and_implementations)
- for information on additional versions.
+ on `awk' for information on additional versions.
@@ -28440,7 +28440,7 @@ File: gawk.info, Node: Installation summary, Prev:
Other Versions, Up: Instal
B.6 Summary
===========
- * The `gawk' distribution is available from GNU project's main
+ * The `gawk' distribution is available from the GNU Project's main
distribution site, `ftp.gnu.org'. The canonical build recipe is:
wget http://ftp.gnu.org/gnu/gawk/gawk-4.1.2.tar.gz
@@ -28449,17 +28449,17 @@ B.6 Summary
./configure && make && make check
* `gawk' may be built on non-POSIX systems as well. The currently
- supported systems are MS-Windows using DJGPP, MSYS, MinGW and
+ supported systems are MS-Windows using DJGPP, MSYS, MinGW, and
Cygwin, OS/2 using EMX, and both Vax/VMS and OpenVMS.
Instructions for each system are included in this major node.
* Bug reports should be sent via email to <address@hidden>. Bug
- reports should be in English, and should include the version of
+ reports should be in English and should include the version of
`gawk', how it was compiled, and a short program and data file
- which demonstrate the problem.
+ that demonstrate the problem.
* There are a number of other freely available `awk'
- implementations. Many are POSIX compliant; others are less so.
+ implementations. Many are POSIX-compliant; others are less so.
@@ -31511,7 +31511,7 @@ Index
* --disable-lint configuration option: Additional Configuration Options.
(line 15)
* --disable-nls configuration option: Additional Configuration Options.
- (line 30)
+ (line 32)
* --dump-variables option: Options. (line 93)
* --dump-variables option, using for library functions: Library Names.
(line 45)
@@ -31549,7 +31549,7 @@ Index
* --use-lc-numeric option: Options. (line 220)
* --version option: Options. (line 302)
* --with-whiny-user-strftime configuration option: Additional Configuration
Options.
- (line 35)
+ (line 37)
* -b option: Options. (line 68)
* -C option: Options. (line 88)
* -c option: Options. (line 81)
@@ -32070,7 +32070,7 @@ Index
* Brown, Martin: Contributors. (line 82)
* BSD-based operating systems: Glossary. (line 753)
* bt debugger command (alias for backtrace): Execution Stack. (line 13)
-* Buening, Andreas <1>: Bugs. (line 70)
+* Buening, Andreas <1>: Bugs. (line 71)
* Buening, Andreas <2>: Contributors. (line 92)
* Buening, Andreas: Acknowledgments. (line 60)
* buffering, input/output <1>: Two-way I/O. (line 52)
@@ -32083,7 +32083,7 @@ Index
* address@hidden bug reporting address: Bugs. (line 30)
* built-in functions: Functions. (line 6)
* built-in functions, evaluation order: Calling Built-in. (line 30)
-* Busybox Awk: Other Versions. (line 92)
+* BusyBox Awk: Other Versions. (line 92)
* c.e., See common extensions: Conventions. (line 51)
* call by reference: Pass By Value/Reference.
(line 44)
@@ -32215,9 +32215,9 @@ Index
* configuration option, --disable-lint: Additional Configuration Options.
(line 15)
* configuration option, --disable-nls: Additional Configuration Options.
- (line 30)
+ (line 32)
* configuration option, --with-whiny-user-strftime: Additional Configuration
Options.
- (line 35)
+ (line 37)
* configuration options, gawk: Additional Configuration Options.
(line 6)
* constant regexps: Regexp Usage. (line 57)
@@ -32443,7 +32443,7 @@ Index
* decimal point character, locale specific: Options. (line 272)
* decrement operators: Increment Ops. (line 35)
* default keyword: Switch Statement. (line 6)
-* Deifik, Scott <1>: Bugs. (line 70)
+* Deifik, Scott <1>: Bugs. (line 71)
* Deifik, Scott <2>: Contributors. (line 53)
* Deifik, Scott: Acknowledgments. (line 60)
* delete ARRAY: Delete. (line 39)
@@ -33374,7 +33374,7 @@ Index
* mail-list file: Sample Data Files. (line 6)
* mailing labels, printing: Labels Program. (line 6)
* mailing list, GNITS: Acknowledgments. (line 52)
-* Malmberg, John <1>: Bugs. (line 70)
+* Malmberg, John <1>: Bugs. (line 71)
* Malmberg, John: Acknowledgments. (line 60)
* Malmberg, John E.: Contributors. (line 137)
* mark parity: Ordinal Functions. (line 45)
@@ -33613,7 +33613,7 @@ Index
(line 6)
* pipe, input: Getline/Pipe. (line 9)
* pipe, output: Redirection. (line 57)
-* Pitts, Dave <1>: Bugs. (line 70)
+* Pitts, Dave <1>: Bugs. (line 71)
* Pitts, Dave: Acknowledgments. (line 60)
* Plauger, P.J.: Library Functions. (line 12)
* plug-in: Extension Intro. (line 6)
@@ -33791,7 +33791,7 @@ Index
* pwcat program: Passwd Functions. (line 23)
* q debugger command (alias for quit): Miscellaneous Debugger Commands.
(line 99)
-* QSE Awk: Other Versions. (line 135)
+* QSE awk: Other Versions. (line 135)
* Quanstrom, Erik: Alarm Program. (line 8)
* question mark (?), ?: operator: Precedence. (line 92)
* question mark (?), regexp operator <1>: GNU Regexp Operators.
@@ -33926,7 +33926,7 @@ Index
* RLENGTH variable: Auto-set. (line 252)
* RLENGTH variable, match() function and: String Functions. (line 228)
* Robbins, Arnold <1>: Future Extensions. (line 6)
-* Robbins, Arnold <2>: Bugs. (line 70)
+* Robbins, Arnold <2>: Bugs. (line 71)
* Robbins, Arnold <3>: Contributors. (line 144)
* Robbins, Arnold <4>: General Data Types. (line 6)
* Robbins, Arnold <5>: Alarm Program. (line 6)
@@ -34117,7 +34117,7 @@ Index
(line 94)
* source code, awka: Other Versions. (line 68)
* source code, Brian Kernighan's awk: Other Versions. (line 13)
-* source code, Busybox Awk: Other Versions. (line 92)
+* source code, BusyBox Awk: Other Versions. (line 92)
* source code, gawk: Gawk Distribution. (line 6)
* source code, Illumos awk: Other Versions. (line 109)
* source code, jawk: Other Versions. (line 117)
@@ -34126,7 +34126,7 @@ Index
* source code, mixing: Options. (line 117)
* source code, pawk: Other Versions. (line 82)
* source code, pawk (Python version): Other Versions. (line 129)
-* source code, QSE Awk: Other Versions. (line 135)
+* source code, QSE awk: Other Versions. (line 135)
* source code, QuikTrim Awk: Other Versions. (line 139)
* source code, Solaris awk: Other Versions. (line 100)
* source files, search path for: Programs Exercises. (line 70)
@@ -34455,7 +34455,7 @@ Index
* xor: Bitwise Functions. (line 56)
* XOR bitwise operation: Bitwise Functions. (line 6)
* Yawitz, Efraim: Contributors. (line 131)
-* Zaretskii, Eli <1>: Bugs. (line 70)
+* Zaretskii, Eli <1>: Bugs. (line 71)
* Zaretskii, Eli <2>: Contributors. (line 55)
* Zaretskii, Eli: Acknowledgments. (line 60)
* zerofile.awk program: Empty Files. (line 21)
@@ -34970,77 +34970,77 @@ Node: Extension summary1046798
Node: Extension Exercises1050487
Node: Language History1051209
Node: V7/SVR3.11052865
-Node: SVR41055046
-Node: POSIX1056491
-Node: BTL1057880
-Node: POSIX/GNU1058614
-Node: Feature History1064178
-Node: Common Extensions1077276
-Node: Ranges and Locales1078600
-Ref: Ranges and Locales-Footnote-11083218
-Ref: Ranges and Locales-Footnote-21083245
-Ref: Ranges and Locales-Footnote-31083479
-Node: Contributors1083700
-Node: History summary1089241
-Node: Installation1090611
-Node: Gawk Distribution1091557
-Node: Getting1092041
-Node: Extracting1092864
-Node: Distribution contents1094499
-Node: Unix Installation1100216
-Node: Quick Installation1100833
-Node: Additional Configuration Options1103257
-Node: Configuration Philosophy1104995
-Node: Non-Unix Installation1107364
-Node: PC Installation1107822
-Node: PC Binary Installation1109141
-Node: PC Compiling1110989
-Ref: PC Compiling-Footnote-11114010
-Node: PC Testing1114119
-Node: PC Using1115295
-Node: Cygwin1119410
-Node: MSYS1120233
-Node: VMS Installation1120733
-Node: VMS Compilation1121525
-Ref: VMS Compilation-Footnote-11122747
-Node: VMS Dynamic Extensions1122805
-Node: VMS Installation Details1124489
-Node: VMS Running1126741
-Node: VMS GNV1129577
-Node: VMS Old Gawk1130311
-Node: Bugs1130781
-Node: Other Versions1134664
-Node: Installation summary1141088
-Node: Notes1142144
-Node: Compatibility Mode1143009
-Node: Additions1143791
-Node: Accessing The Source1144716
-Node: Adding Code1146151
-Node: New Ports1152308
-Node: Derived Files1156790
-Ref: Derived Files-Footnote-11162265
-Ref: Derived Files-Footnote-21162299
-Ref: Derived Files-Footnote-31162895
-Node: Future Extensions1163009
-Node: Implementation Limitations1163615
-Node: Extension Design1164863
-Node: Old Extension Problems1166017
-Ref: Old Extension Problems-Footnote-11167534
-Node: Extension New Mechanism Goals1167591
-Ref: Extension New Mechanism Goals-Footnote-11170951
-Node: Extension Other Design Decisions1171140
-Node: Extension Future Growth1173248
-Node: Old Extension Mechanism1174084
-Node: Notes summary1175846
-Node: Basic Concepts1177032
-Node: Basic High Level1177713
-Ref: figure-general-flow1177985
-Ref: figure-process-flow1178584
-Ref: Basic High Level-Footnote-11181813
-Node: Basic Data Typing1181998
-Node: Glossary1185326
-Node: Copying1217255
-Node: GNU Free Documentation License1254811
-Node: Index1279947
+Node: SVR41055018
+Node: POSIX1056452
+Node: BTL1057833
+Node: POSIX/GNU1058564
+Node: Feature History1064085
+Node: Common Extensions1077183
+Node: Ranges and Locales1078555
+Ref: Ranges and Locales-Footnote-11083174
+Ref: Ranges and Locales-Footnote-21083201
+Ref: Ranges and Locales-Footnote-31083436
+Node: Contributors1083657
+Node: History summary1089197
+Node: Installation1090576
+Node: Gawk Distribution1091522
+Node: Getting1092006
+Node: Extracting1092829
+Node: Distribution contents1094466
+Node: Unix Installation1100220
+Node: Quick Installation1100837
+Node: Additional Configuration Options1103261
+Node: Configuration Philosophy1105064
+Node: Non-Unix Installation1107433
+Node: PC Installation1107891
+Node: PC Binary Installation1109211
+Node: PC Compiling1111059
+Ref: PC Compiling-Footnote-11114080
+Node: PC Testing1114189
+Node: PC Using1115365
+Node: Cygwin1119480
+Node: MSYS1120250
+Node: VMS Installation1120751
+Node: VMS Compilation1121543
+Ref: VMS Compilation-Footnote-11122772
+Node: VMS Dynamic Extensions1122830
+Node: VMS Installation Details1124514
+Node: VMS Running1126765
+Node: VMS GNV1129605
+Node: VMS Old Gawk1130340
+Node: Bugs1130810
+Node: Other Versions1134699
+Node: Installation summary1141133
+Node: Notes1142192
+Node: Compatibility Mode1143057
+Node: Additions1143839
+Node: Accessing The Source1144764
+Node: Adding Code1146199
+Node: New Ports1152356
+Node: Derived Files1156838
+Ref: Derived Files-Footnote-11162313
+Ref: Derived Files-Footnote-21162347
+Ref: Derived Files-Footnote-31162943
+Node: Future Extensions1163057
+Node: Implementation Limitations1163663
+Node: Extension Design1164911
+Node: Old Extension Problems1166065
+Ref: Old Extension Problems-Footnote-11167582
+Node: Extension New Mechanism Goals1167639
+Ref: Extension New Mechanism Goals-Footnote-11170999
+Node: Extension Other Design Decisions1171188
+Node: Extension Future Growth1173296
+Node: Old Extension Mechanism1174132
+Node: Notes summary1175894
+Node: Basic Concepts1177080
+Node: Basic High Level1177761
+Ref: figure-general-flow1178033
+Ref: figure-process-flow1178632
+Ref: Basic High Level-Footnote-11181861
+Node: Basic Data Typing1182046
+Node: Glossary1185374
+Node: Copying1217303
+Node: GNU Free Documentation License1254859
+Node: Index1279995
End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 76d0c54..1ca6880 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -35206,81 +35206,81 @@ cross-references to further details:
@itemize @value{BULLET}
@item
The requirement for @samp{;} to separate rules on a line
-(@pxref{Statements/Lines}).
+(@pxref{Statements/Lines})
@item
User-defined functions and the @code{return} statement
-(@pxref{User-defined}).
+(@pxref{User-defined})
@item
The @code{delete} statement (@pxref{Delete}).
@item
The @address@hidden statement
-(@pxref{Do Statement}).
+(@pxref{Do Statement})
@item
The built-in functions @code{atan2()}, @code{cos()}, @code{sin()},
@code{rand()}, and
address@hidden()} (@pxref{Numeric Functions}).
address@hidden()} (@pxref{Numeric Functions})
@item
The built-in functions @code{gsub()}, @code{sub()}, and @code{match()}
-(@pxref{String Functions}).
+(@pxref{String Functions})
@item
The built-in functions @code{close()} and @code{system()}
-(@pxref{I/O Functions}).
+(@pxref{I/O Functions})
@item
The @code{ARGC}, @code{ARGV}, @code{FNR}, @code{RLENGTH}, @code{RSTART},
-and @code{SUBSEP} predefined variables (@pxref{Built-in Variables}).
+and @code{SUBSEP} predefined variables (@pxref{Built-in Variables})
@item
-Assignable @code{$0} (@pxref{Changing Fields}).
+Assignable @code{$0} (@pxref{Changing Fields})
@item
The conditional expression using the ternary operator @samp{?:}
-(@pxref{Conditional Exp}).
+(@pxref{Conditional Exp})
@item
-The expression @address@hidden in @var{array}} outside of @code{for}
-statements (@pxref{Reference to Elements}).
+The expression @address@hidden in @var{array}} outside of @code{for}
+statements (@pxref{Reference to Elements})
@item
The exponentiation operator @samp{^}
(@pxref{Arithmetic Ops}) and its assignment operator
-form @samp{^=} (@pxref{Assignment Ops}).
+form @samp{^=} (@pxref{Assignment Ops})
@item
C-compatible operator precedence, which breaks some old @command{awk}
-programs (@pxref{Precedence}).
+programs (@pxref{Precedence})
@item
Regexps as the value of @code{FS}
(@pxref{Field Separators}) and as the
third argument to the @code{split()} function
(@pxref{String Functions}), rather than using only the first character
-of @code{FS}.
+of @code{FS}
@item
Dynamic regexps as operands of the @samp{~} and @samp{!~} operators
-(@pxref{Computed Regexps}).
+(@pxref{Computed Regexps})
@item
The escape sequences @samp{\b}, @samp{\f}, and @samp{\r}
-(@pxref{Escape Sequences}).
+(@pxref{Escape Sequences})
@item
Redirection of input for the @code{getline} function
-(@pxref{Getline}).
+(@pxref{Getline})
@item
Multiple @code{BEGIN} and @code{END} rules
-(@pxref{BEGIN/END}).
+(@pxref{BEGIN/END})
@item
Multidimensional arrays
-(@pxref{Multidimensional}).
+(@pxref{Multidimensional})
@end itemize
@node SVR4
@@ -35292,54 +35292,54 @@ The System V Release 4 (1989) version of Unix
@command{awk} added these features
@itemize @value{BULLET}
@item
-The @code{ENVIRON} array (@pxref{Built-in Variables}).
+The @code{ENVIRON} array (@pxref{Built-in Variables})
@c gawk and MKS awk
@item
Multiple @option{-f} options on the command line
-(@pxref{Options}).
+(@pxref{Options})
@c MKS awk
@item
The @option{-v} option for assigning variables before program execution begins
-(@pxref{Options}).
+(@pxref{Options})
@c GNU, Bell Laboratories & MKS together
@item
-The @option{--} signal for terminating command-line options.
+The @option{--} signal for terminating command-line options
@item
The @samp{\a}, @samp{\v}, and @samp{\x} escape sequences
-(@pxref{Escape Sequences}).
+(@pxref{Escape Sequences})
@c GNU, for ANSI C compat
@item
A defined return value for the @code{srand()} built-in function
-(@pxref{Numeric Functions}).
+(@pxref{Numeric Functions})
@item
The @code{toupper()} and @code{tolower()} built-in string functions
for case translation
-(@pxref{String Functions}).
+(@pxref{String Functions})
@item
A cleaner specification for the @samp{%c} format-control letter in the
@code{printf} function
-(@pxref{Control Letters}).
+(@pxref{Control Letters})
@item
The ability to dynamically pass the field width and precision (@code{"%*.*d"})
in the argument list of @code{printf} and @code{sprintf()}
-(@pxref{Control Letters}).
+(@pxref{Control Letters})
@item
The use of regexp constants, such as @code{/foo/}, as expressions, where
they are equivalent to using the matching operator, as in @samp{$0 ~ /foo/}
-(@pxref{Using Constant Regexps}).
+(@pxref{Using Constant Regexps})
@item
Processing of escape sequences inside command-line variable assignments
-(@pxref{Assignment Options}).
+(@pxref{Assignment Options})
@end itemize
@node POSIX
@@ -35353,23 +35353,23 @@ introduced the following changes into the language:
@itemize @value{BULLET}
@item
The use of @option{-W} for implementation-specific options
-(@pxref{Options}).
+(@pxref{Options})
@item
The use of @code{CONVFMT} for controlling the conversion of numbers
-to strings (@pxref{Conversion}).
+to strings (@pxref{Conversion})
@item
The concept of a numeric string and tighter comparison rules to go
-with it (@pxref{Typing and Comparison}).
+with it (@pxref{Typing and Comparison})
@item
The use of predefined variables as function parameter names is forbidden
-(@pxref{Definition Syntax}).
+(@pxref{Definition Syntax})
@item
More complete documentation of many of the previously undocumented
-features of the language.
+features of the language
@end itemize
In 2012, a number of extensions that had been commonly available for
@@ -35378,15 +35378,15 @@ many years were finally added to POSIX. They are:
@itemize @value{BULLET}
@item
The @code{fflush()} built-in function for flushing buffered output
-(@pxref{I/O Functions}).
+(@pxref{I/O Functions})
@item
The @code{nextfile} statement
-(@pxref{Nextfile Statement}).
+(@pxref{Nextfile Statement})
@item
The ability to delete all of an array at once with @samp{delete @var{array}}
-(@pxref{Delete}).
+(@pxref{Delete})
@end itemize
@@ -35416,22 +35416,22 @@ originally appeared in his version of @command{awk}:
The @samp{**} and @samp{**=} operators
(@pxref{Arithmetic Ops}
and
address@hidden Ops}).
address@hidden Ops})
@item
The use of @code{func} as an abbreviation for @code{function}
-(@pxref{Definition Syntax}).
+(@pxref{Definition Syntax})
@item
The @code{fflush()} built-in function for flushing buffered output
-(@pxref{I/O Functions}).
+(@pxref{I/O Functions})
@ignore
@item
The @code{SYMTAB} array, that allows access to @command{awk}'s internal symbol
table. This feature was never documented for his @command{awk}, largely because
it is somewhat shakily implemented. For instance, you cannot access arrays
-or array elements through it.
+or array elements through it
@end ignore
@end itemize
@@ -35461,7 +35461,7 @@ Additional predefined variables:
@itemize @value{MINUS}
@item
The
address@hidden
address@hidden,
@code{BINMODE},
@code{ERRNO},
@code{FIELDWIDTHS},
@@ -35473,7 +35473,7 @@ The
and
@code{TEXTDOMAIN}
variables
-(@pxref{Built-in Variables}).
+(@pxref{Built-in Variables})
@end itemize
@item
@@ -35481,15 +35481,15 @@ Special files in I/O redirections:
@itemize @value{MINUS}
@item
-The @file{/dev/stdin}, @file{/dev/stdout}, @file{/dev/stderr} and
+The @file{/dev/stdin}, @file{/dev/stdout}, @file{/dev/stderr}, and
@file{/dev/fd/@var{N}} special @value{FN}s
-(@pxref{Special Files}).
+(@pxref{Special Files})
@item
The @file{/inet}, @file{/inet4}, and @samp{/inet6} special files for
TCP/IP networking using @samp{|&} to specify which version of the
IP protocol to use
-(@pxref{TCP/IP Networking}).
+(@pxref{TCP/IP Networking})
@end itemize
@item
@@ -35498,37 +35498,37 @@ Changes and/or additions to the language:
@itemize @value{MINUS}
@item
The @samp{\x} escape sequence
-(@pxref{Escape Sequences}).
+(@pxref{Escape Sequences})
@item
Full support for both POSIX and GNU regexps
-(@pxref{Regexp}).
+(@pxref{Regexp})
@item
The ability for @code{FS} and for the third
argument to @code{split()} to be null strings
-(@pxref{Single Character Fields}).
+(@pxref{Single Character Fields})
@item
The ability for @code{RS} to be a regexp
-(@pxref{Records}).
+(@pxref{Records})
@item
The ability to use octal and hexadecimal constants in @command{awk}
program source code
-(@pxref{Nondecimal-numbers}).
+(@pxref{Nondecimal-numbers})
@item
The @samp{|&} operator for two-way I/O to a coprocess
-(@pxref{Two-way I/O}).
+(@pxref{Two-way I/O})
@item
Indirect function calls
-(@pxref{Indirect Calls}).
+(@pxref{Indirect Calls})
@item
Directories on the command line produce a warning and are skipped
-(@pxref{Command-line directories}).
+(@pxref{Command-line directories})
@end itemize
@item
@@ -35537,11 +35537,11 @@ New keywords:
@itemize @value{MINUS}
@item
The @code{BEGINFILE} and @code{ENDFILE} special patterns
-(@pxref{BEGINFILE/ENDFILE}).
+(@pxref{BEGINFILE/ENDFILE})
@item
The @code{switch} statement
-(@pxref{Switch Statement}).
+(@pxref{Switch Statement})
@end itemize
@item
@@ -35551,30 +35551,30 @@ Changes to standard @command{awk} functions:
@item
The optional second argument to @code{close()} that allows closing one end
of a two-way pipe to a coprocess
-(@pxref{Two-way I/O}).
+(@pxref{Two-way I/O})
@item
-POSIX compliance for @code{gsub()} and @code{sub()} with @option{--posix}.
+POSIX compliance for @code{gsub()} and @code{sub()} with @option{--posix}
@item
The @code{length()} function accepts an array argument
and returns the number of elements in the array
-(@pxref{String Functions}).
+(@pxref{String Functions})
@item
The optional third argument to the @code{match()} function
for capturing text-matching subexpressions within a regexp
-(@pxref{String Functions}).
+(@pxref{String Functions})
@item
Positional specifiers in @code{printf} formats for
making translations easier
-(@pxref{Printf Ordering}).
+(@pxref{Printf Ordering})
@item
The @code{split()} function's additional optional fourth
-argument which is an array to hold the text of the field separators
-(@pxref{String Functions}).
+argument, which is an array to hold the text of the field separators
+(@pxref{String Functions})
@end itemize
@item
@@ -35584,16 +35584,16 @@ Additional functions only in @command{gawk}:
@item
The @code{gensub()}, @code{patsplit()}, and @code{strtonum()} functions
for more powerful text manipulation
-(@pxref{String Functions}).
+(@pxref{String Functions})
@item
The @code{asort()} and @code{asorti()} functions for sorting arrays
-(@pxref{Array Sorting}).
+(@pxref{Array Sorting})
@item
The @code{mktime()}, @code{systime()}, and @code{strftime()}
functions for working with timestamps
-(@pxref{Time Functions}).
+(@pxref{Time Functions})
@item
The
@@ -35605,17 +35605,17 @@ The
and
@code{xor()}
functions for bit manipulation
-(@pxref{Bitwise Functions}).
+(@pxref{Bitwise Functions})
@c In 4.1, and(), or() and xor() grew the ability to take > 2 arguments
@item
The @code{isarray()} function to check if a variable is an array or not
-(@pxref{Type Functions}).
+(@pxref{Type Functions})
@item
-The @code{bindtextdomain()}, @code{dcgettext()} and @code{dcngettext()}
+The @code{bindtextdomain()}, @code{dcgettext()}, and @code{dcngettext()}
functions for internationalization
-(@pxref{Programmer i18n}).
+(@pxref{Programmer i18n})
@end itemize
@item
@@ -35625,12 +35625,12 @@ Changes and/or additions in the command-line options:
@item
The @env{AWKPATH} environment variable for specifying a path search for
the @option{-f} command-line option
-(@pxref{Options}).
+(@pxref{Options})
@item
The @env{AWKLIBPATH} environment variable for specifying a path search for
the @option{-l} command-line option
-(@pxref{Options}).
+(@pxref{Options})
@item
The
@@ -35659,7 +35659,7 @@ The
and
@option{-V}
short options. Also, the
-ability to use GNU-style long-named options that start with @option{--}
+ability to use GNU-style long-named options that start with @option{--},
and the
@option{--assign},
@option{--bignum},
@@ -35739,7 +35739,7 @@ GCC for VAX and Alpha has not been tested for a while.
@end itemize
@item
-Support for the following obsolete systems was removed from the code
+Support for the following obsolete system was removed from the code
for @command{gawk} @value{PVERSION} 4.1:
@c nested table
@@ -36375,9 +36375,9 @@ 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}).
address@hidden address@hidden/dev/stderr} special file} {BWK Awk} {Mawk} {GNU
Awk} {Now standard}
address@hidden Feature @tab BWK Awk @tab Mawk @tab GNU Awk @tab Now standard
address@hidden @samp{\x} Escape sequence @tab X @tab X @tab X @tab
address@hidden address@hidden/dev/stderr} special file} {BWK @command{awk}}
address@hidden address@hidden {Now standard}
address@hidden Feature @tab BWK @command{awk} @tab @command{mawk} @tab
@command{gawk} @tab Now standard
address@hidden @samp{\x} escape sequence @tab X @tab X @tab X @tab
@item @code{FS} as null string @tab X @tab X @tab X @tab
@item @file{/dev/stdin} special file @tab X @tab X @tab X @tab
@item @file{/dev/stdout} special file @tab X @tab X @tab X @tab
@@ -36408,7 +36408,7 @@ in the machine's native character set. Thus, on
ASCII-based systems,
@samp{[a-z]} matched all the lowercase letters, and only the lowercase
letters, as the numeric values for the letters from @samp{a} through
@samp{z} were contiguous. (On an EBCDIC system, the range @samp{[a-z]}
-includes additional, non-alphabetic characters as well.)
+includes additional nonalphabetic characters as well.)
Almost all introductory Unix literature explained range expressions
as working in this fashion, and in particular, would teach that the
@@ -36433,7 +36433,7 @@ What does that mean?
In many locales, @samp{A} and @samp{a} are both less than @samp{B}.
In other words, these locales sort characters in dictionary order,
and @samp{[a-dx-z]} is typically not equivalent to @samp{[abcdxyz]};
-instead it might be equivalent to @samp{[ABCXYabcdxyz]}, for example.
+instead, it might be equivalent to @samp{[ABCXYabcdxyz]}, for example.
This point needs to be emphasized: much literature teaches that you should
use @samp{[a-z]} to match a lowercase character. But on systems with
@@ -36462,23 +36462,23 @@ is perfectly valid in ASCII, but is not valid in many
Unicode locales,
such as @code{en_US.UTF-8}.
Early versions of @command{gawk} used regexp matching code that was not
-locale aware, so ranges had their traditional interpretation.
+locale-aware, so ranges had their traditional interpretation.
When @command{gawk} switched to using locale-aware regexp matchers,
the problems began; especially as both GNU/Linux and commercial Unix
vendors started implementing non-ASCII locales, @emph{and making them
the default}. Perhaps the most frequently asked question became something
-like ``why does @samp{[A-Z]} match lowercase letters?!?''
+like, ``Why does @samp{[A-Z]} match lowercase letters?!?''
@cindex Berry, Karl
This situation existed for close to 10 years, if not more, and
the @command{gawk} maintainer grew weary of trying to explain that
address@hidden was being nicely standards compliant, and that the issue
address@hidden was being nicely standards-compliant, and that the issue
was in the user's locale. During the development of @value{PVERSION} 4.0,
he modified @command{gawk} to always treat ranges in the original,
pre-POSIX fashion, unless @option{--posix} was used
(@pxref{Options})address@hidden
thus was born the Campaign for Rational Range Interpretation (or
-RRI). A number of GNU tools have either implemented this change,
+RRI). A number of GNU tools have already implemented this change,
or will soon. Thanks to Karl Berry for coining the phrase ``Rational
Range Interpretation.''}
@@ -36492,9 +36492,10 @@ and
By using this lovely technical term, the standard gives license
to implementors to implement ranges in whatever way they choose.
-The @command{gawk} maintainer chose to apply the pre-POSIX meaning in all
-cases: the default regexp matching; with @option{--traditional} and with
address@hidden; in all cases, @command{gawk} remains POSIX compliant.
+The @command{gawk} maintainer chose to apply the pre-POSIX meaning
+both with the default regexp matching and when @option{--traditional} or
address@hidden are used.
+In all cases @command{gawk} remains POSIX-compliant.
@node Contributors
@appendixsec Major Contributors to @command{gawk}
@@ -36540,7 +36541,7 @@ to around 90 pages.
Richard Stallman
helped finish the implementation and the initial draft of this
@value{DOCUMENT}.
-He is also the founder of the FSF and the GNU project.
+He is also the founder of the FSF and the GNU Project.
@item
@cindex Woods, John
@@ -36704,28 +36705,28 @@ John Haque made the following contributions:
@itemize @value{MINUS}
@item
The modifications to convert @command{gawk}
-into a byte-code interpreter, including the debugger.
+into a byte-code interpreter, including the debugger
@item
-The addition of true arrays of arrays.
+The addition of true arrays of arrays
@item
-The additional modifications for support of arbitrary-precision arithmetic.
+The additional modifications for support of arbitrary-precision arithmetic
@item
The initial text of
address@hidden Precision Arithmetic}.
address@hidden Precision Arithmetic}
@item
The work to merge the three versions of @command{gawk}
-into one, for the 4.1 release.
+into one, for the 4.1 release
@item
-Improved array internals for arrays indexed by integers.
+Improved array internals for arrays indexed by integers
@item
-The improved array sorting features were driven by John together
-with Pat Rankin.
+The improved array sorting features were also driven by John, together
+with Pat Rankin
@end itemize
@cindex Papadopoulos, Panos
@@ -36766,10 +36767,10 @@ helping David Trueman, and as the primary maintainer
since around 1994.
@itemize @value{BULLET}
@item
The @command{awk} language has evolved over time. The first release
-was with V7 Unix circa 1978. In 1987, for System V Release 3.1,
+was with V7 Unix, circa 1978. In 1987, for System V Release 3.1,
major additions, including user-defined functions, were made to the language.
Additional changes were made for System V Release 4, in 1989.
-Since then, further minor changes happen under the auspices of the
+Since then, further minor changes have happened under the auspices of the
POSIX standard.
@item
@@ -36785,7 +36786,7 @@ options.
The interaction of POSIX locales and regexp matching in @command{gawk} has
been confusing over
the years. Today, @command{gawk} implements Rational Range Interpretation,
where
ranges of the form @samp{[a-z]} match @emph{only} the characters numerically
between
address@hidden through @samp{z} in the machine's native character set. Usually
this is ASCII
address@hidden through @samp{z} in the machine's native character set. Usually
this is ASCII,
but it can be EBCDIC on IBM S/390 systems.
@item
@@ -36870,7 +36871,7 @@ will be less busy, and you can usually find one closer
to your site.
@command{gawk} is distributed as several @code{tar} files compressed with
different compression programs: @command{gzip}, @command{bzip2},
and @command{xz}. For simplicity, the rest of these instructions assume
-you are using the one compressed with the GNU Zip program, @code{gzip}.
+you are using the one compressed with the GNU Gzip program (@command{gzip}).
Once you have the distribution (e.g.,
@address@hidden@value{PATCHLEVEL}.tar.gz}),
@@ -36921,12 +36922,12 @@ operating systems:
@table @asis
@item Various @samp{.c}, @samp{.y}, and @samp{.h} files
-The actual @command{gawk} source code.
+These files contain the actual @command{gawk} source code.
@end table
@table @file
@item ABOUT-NLS
-Information about GNU @command{gettext} and translations.
+A file containing information about GNU @command{gettext} and translations.
@item AUTHORS
A file with some information about the authorship of @command{gawk}.
@@ -36956,7 +36957,7 @@ An older list of changes to @command{gawk}.
The GNU General Public License.
@item POSIX.STD
-A description of behaviors in the POSIX standard for @command{awk} which
+A description of behaviors in the POSIX standard for @command{awk} that
are left undefined, or where @command{gawk} may not comply fully, as well
as a list of things that the POSIX standard should describe but does not.
@@ -37221,14 +37222,17 @@ Similarly, setting the @code{LINT} variable
(@pxref{User-modified})
has no effect on the running @command{awk} program.
-When used with GCC's automatic dead-code-elimination, this option
+When used with the GNU Compiler Collection's (GCC's)
+automatic dead-code-elimination, this option
cuts almost 23K bytes off the size of the @command{gawk}
executable on GNU/Linux x86_64 systems. Results on other systems and
with other compilers are likely to vary.
Using this option may bring you some slight performance improvement.
address@hidden CAUTION
Using this option will cause some of the tests in the test suite
to fail. This option may be removed at a later date.
address@hidden quotation
@cindex @option{--disable-nls} configuration option
@cindex configuration option, @code{--disable-nls}
@@ -37325,10 +37329,10 @@ running MS-DOS, any version of MS-Windows, or OS/2.
running MS-DOS and any version of MS-Windows.
@end ifset
In this @value{SECTION}, the term ``Windows32''
-refers to any of Microsoft Windows-95/98/ME/NT/2000/XP/Vista/7/8.
+refers to any of Microsoft Windows 95/98/ME/NT/2000/XP/Vista/7/8.
The limitations of MS-DOS (and MS-DOS shells under the other operating
-systems) has meant that various ``DOS extenders'' are often used with
+systems) have meant that various ``DOS extenders'' are often used with
programs such as @command{gawk}. The varying capabilities of Microsoft
Windows 3.1 and Windows32 can add to the confusion. For an overview
of the considerations, refer to @file{README_d/README.pc} in
@@ -37587,7 +37591,7 @@ Under MS-Windows, OS/2 and MS-DOS,
Under MS-Windows and MS-DOS,
@end ifset
@command{gawk} (and many other text programs) silently
-translate end-of-line @samp{\r\n} to @samp{\n} on input and @samp{\n}
+translates end-of-line @samp{\r\n} to @samp{\n} on input and @samp{\n}
to @samp{\r\n} on output. A special @code{BINMODE} variable @value{COMMONEXT}
allows control over these translations and is interpreted as follows:
@@ -37621,7 +37625,7 @@ Setting @code{BINMODE} for standard input or
standard output is accomplished by using an
appropriate @samp{-v address@hidden option on the command line.
@code{BINMODE} is set at the time a file or pipe is opened and cannot be
-changed mid-stream.
+changed midstream.
The name @code{BINMODE} was chosen to match @command{mawk}
(@pxref{Other Versions}).
@@ -37677,8 +37681,8 @@ moved into the @code{BEGIN} rule.
@command{gawk} can be built and used ``out of the box'' under MS-Windows
if you are using the @uref{http://www.cygwin.com, Cygwin environment}.
-This environment provides an excellent simulation of GNU/Linux, using the
-GNU tools, such as Bash, the GNU Compiler Collection (GCC), GNU Make,
+This environment provides an excellent simulation of GNU/Linux, using
+Bash, GCC, GNU Make,
and other GNU programs. Compilation and installation for Cygwin is the
same as for a Unix system:
@@ -37697,7 +37701,7 @@ and then the @samp{make} proceeds as usual.
@appendixsubsubsec Using @command{gawk} In The MSYS Environment
In the MSYS environment under MS-Windows, @command{gawk} automatically
-uses binary mode for reading and writing files. Thus there is no
+uses binary mode for reading and writing files. Thus, there is no
need to use the @code{BINMODE} variable.
This can cause problems with other Unix-like components that have
@@ -37761,7 +37765,7 @@ With ODS-5 volumes and extended parsing enabled, the
case of the target
parameter may need to be exact.
@command{gawk} has been tested under VAX/VMS 7.3 and Alpha/VMS 7.3-1
-using Compaq C V6.4, and Alpha/VMS 7.3, Alpha/VMS 7.3-2, and IA64/VMS 8.3.
+using Compaq C V6.4, and under Alpha/VMS 7.3, Alpha/VMS 7.3-2, and IA64/VMS
8.3.
The most recent builds used HP C V7.3 on Alpha VMS 8.3 and both
Alpha and IA64 VMS 8.4 used HP C address@hidden IA64 architecture
is also known as ``Itanium.''}
@@ -37809,7 +37813,7 @@ For VAX:
/name=(as_is,short)
@end example
-Compile time macros need to be defined before the first VMS-supplied
+Compile-time macros need to be defined before the first VMS-supplied
header file is included, as follows:
@example
@@ -37856,7 +37860,7 @@ If your @command{gawk} was installed by a PCSI kit into
the
@file{GNV$GNU:[vms_help]gawk.hlp}.
The PCSI kit also installs a @file{GNV$GNU:[vms_bin]gawk_verb.cld} file
-which can be used to add @command{gawk} and @command{awk} as DCL commands.
+that can be used to add @command{gawk} and @command{awk} as DCL commands.
For just the current process you can use:
@@ -37865,7 +37869,7 @@ $ @kbd{set command gnv$gnu:[vms_bin]gawk_verb.cld}
@end example
Or the system manager can use @file{GNV$GNU:[vms_bin]gawk_verb.cld} to
-add the @command{gawk} and @command{awk} to the system wide @samp{DCLTABLES}.
+add the @command{gawk} and @command{awk} to the system-wide @samp{DCLTABLES}.
The DCL syntax is documented in the @file{gawk.hlp} file.
@@ -37931,14 +37935,14 @@ The @code{exit} value is a Unix-style value and is
encoded into a VMS exit
status value when the program exits.
The VMS severity bits will be set based on the @code{exit} value.
-A failure is indicated by 1 and VMS sets the @code{ERROR} status.
-A fatal error is indicated by 2 and VMS sets the @code{FATAL} status.
+A failure is indicated by 1, and VMS sets the @code{ERROR} status.
+A fatal error is indicated by 2, and VMS sets the @code{FATAL} status.
All other values will have the @code{SUCCESS} status. The exit value is
encoded to comply with VMS coding standards and will have the
@code{C_FACILITY_NO} of @code{0x350000} with the constant @code{0xA000}
added to the number shifted over by 3 bits to make room for the severity codes.
-To extract the actual @command{gawk} exit code from the VMS status use:
+To extract the actual @command{gawk} exit code from the VMS status, use:
@example
unix_status = (vms_status .and. &x7f8) / 8
@@ -37957,7 +37961,7 @@ VAX/VMS floating point uses unbiased rounding.
@xref{Round Function}.
VMS reports time values in GMT unless one of the @code{SYS$TIMEZONE_RULE}
or @code{TZ} logical names is set. Older versions of VMS, such as VAX/VMS
-7.3 do not set these logical names.
+7.3, do not set these logical names.
@c @cindex directory search
@c @cindex path, search
@@ -37975,7 +37979,7 @@ translation and not a multitranslation @code{RMS}
searchlist.
The VMS GNV package provides a build environment similar to POSIX with ports
of a collection of open source tools. The @command{gawk} found in the GNV
-base kit is an older port. Currently the GNV project is being reorganized
+base kit is an older port. Currently, the GNV project is being reorganized
to supply individual PCSI packages for each component.
See @address@hidden://sourceforge.net/p/gnv/wiki/InstallingGNVPackages/}.}
@@ -38048,7 +38052,7 @@ recommend compiling and using the current version.
@cindex debugging @command{gawk}, bug reports
@cindex troubleshooting, @command{gawk}, bug reports
If you have problems with @command{gawk} or think that you have found a bug,
-report it to the developers; we cannot promise to do anything
+report it to the developers; we cannot promise to do anything,
but we might well want to fix it.
Before reporting a bug, make sure you have really found a genuine bug.
@@ -38058,7 +38062,7 @@ to do something or not, report that too; it's a bug in
the documentation!
Before reporting a bug or trying to fix it yourself, try to isolate it
to the smallest possible @command{awk} program and input @value{DF} that
-reproduces the problem. Then send us the program and @value{DF},
+reproduce the problem. Then send us the program and @value{DF},
some idea of what kind of Unix system you're using,
the compiler you used to compile @command{gawk}, and the exact results
@command{gawk} gave you. Also say what you expected to occur; this helps
@@ -38073,7 +38077,7 @@ You can get this information with the command
@samp{gawk --version}.
Once you have a precise problem description, send email to
@EMAIL{bug-gawk@@gnu.org,bug-gawk at gnu dot org}.
-The @command{gawk} maintainers subscribe to this address and
+The @command{gawk} maintainers subscribe to this address, and
thus they will receive your bug report.
Although you can send mail to the maintainers directly,
the bug reporting address is preferred because the
@@ -38100,8 +38104,8 @@ bug reporting system, you should also send a copy to
This is for two reasons. First, although some distributions forward
bug reports ``upstream'' to the GNU mailing list, many don't, so there is a
good
chance that the @command{gawk} maintainers won't even see the bug report!
Second,
-mail to the GNU list is archived, and having everything at the GNU project
-keeps things self-contained and not dependant on other organizations.
+mail to the GNU list is archived, and having everything at the GNU Project
+keeps things self-contained and not dependent on other organizations.
@end quotation
Non-bug suggestions are always welcome as well. If you have questions
@@ -38110,7 +38114,7 @@ features, ask on the bug list; we will try to help you
out if we can.
If you find bugs in one of the non-Unix ports of @command{gawk},
send an email to the bug list, with a copy to the
-person who maintains that port. They are named in the following list,
+person who maintains that port. The maintainers are named in the following
list,
as well as in the @file{README} file in the @command{gawk} distribution.
Information in the @file{README} file should be considered authoritative
if it conflicts with this @value{DOCUMENT}.
@@ -38125,19 +38129,19 @@ The people maintaining the various @command{gawk}
ports are:
@cindex Robbins, Arnold
@cindex Zaretskii, Eli
@multitable {MS-Windows with MinGW}
{123456789012345678901234567890123456789001234567890}
address@hidden Unix and POSIX systems @tab Arnold Robbins,
@EMAIL{arnold@@skeeve.com,arnold at skeeve dot com}.
address@hidden Unix and POSIX systems @tab Arnold Robbins,
@EMAIL{arnold@@skeeve.com,arnold at skeeve dot com}
address@hidden MS-DOS with DJGPP @tab Scott Deifik,
@EMAIL{scottd.mail@@sbcglobal.net,scottd dot mail at sbcglobal dot net}.
address@hidden MS-DOS with DJGPP @tab Scott Deifik,
@EMAIL{scottd.mail@@sbcglobal.net,scottd dot mail at sbcglobal dot net}
address@hidden MS-Windows with MinGW @tab Eli Zaretskii,
@EMAIL{eliz@@gnu.org,eliz at gnu dot org}.
address@hidden MS-Windows with MinGW @tab Eli Zaretskii,
@EMAIL{eliz@@gnu.org,eliz at gnu dot org}
@c Leave this in the print version on purpose.
@c OS/2 is not mentioned anywhere else in the print version though.
address@hidden OS/2 @tab Andreas Buening,
@EMAIL{andreas.buening@@nexgo.de,andreas dot buening at nexgo dot de}.
address@hidden OS/2 @tab Andreas Buening,
@EMAIL{andreas.buening@@nexgo.de,andreas dot buening at nexgo dot de}
address@hidden VMS @tab John Malmberg, @EMAIL{wb8tyw@@qsl.net,wb8tyw at
qsl.net}.
address@hidden VMS @tab John Malmberg, @EMAIL{wb8tyw@@qsl.net,wb8tyw at qsl.net}
address@hidden z/OS (OS/390) @tab Dave Pitts, @EMAIL{dpitts@@cozx.com,dpitts at
cozx dot com}.
address@hidden z/OS (OS/390) @tab Dave Pitts, @EMAIL{dpitts@@cozx.com,dpitts at
cozx dot com}
@end multitable
If your bug is also reproducible under Unix, send a copy of your
@@ -38156,7 +38160,7 @@ Date: Wed, 4 Sep 1996 08:11:48 -0700 (PDT)
@cindex Brennan, Michael
@ifnotdocbook
@quotation
address@hidden's kind of fun to put comments like this in your awk
address@hidden
address@hidden's kind of fun to put comments like this in your awk
code:address@hidden
@ @ @ @ @ @ @code{// Do C++ comments work? answer: yes! of course}
@author Michael Brennan
@end quotation
@@ -38197,7 +38201,7 @@ It is available in several archive formats:
@end table
@cindex @command{git} utility
-You can also retrieve it from Git Hub:
+You can also retrieve it from GitHub:
@example
git clone git://github.com/onetrueawk/awk bwkawk
@@ -38257,7 +38261,7 @@ for a list of extensions in @command{mawk} that are not
in POSIX @command{awk}.
@item @command{awka}
Written by Andrew Sumner,
@command{awka} translates @command{awk} programs into C, compiles them,
-and links them with a library of functions that provides the core
+and links them with a library of functions that provide the core
@command{awk} functionality.
It also has a number of extensions.
@@ -38278,17 +38282,17 @@ since approximately 2001.
Nelson H.F.@: Beebe at the University of Utah has modified
BWK @command{awk} to provide timing and profiling information.
It is different from @command{gawk} with the @option{--profile} option
-(@pxref{Profiling}),
+(@pxref{Profiling})
in that it uses CPU-based profiling, not line-count
profiling. You may find it at either
@uref{ftp://ftp.math.utah.edu/pub/pawk/pawk-20030606.tar.gz}
or
@uref{http://www.math.utah.edu/pub/pawk/pawk-20030606.tar.gz}.
address@hidden Busybox Awk
address@hidden Busybox Awk
address@hidden source code, Busybox Awk
-Busybox is a GPL-licensed program providing small versions of many
address@hidden BusyBox @command{awk}
address@hidden BusyBox Awk
address@hidden source code, BusyBox Awk
+BusyBox is a GPL-licensed program providing small versions of many
applications within a single executable. It is aimed at embedded systems.
It includes a full implementation of POSIX @command{awk}. When building
it, be careful not to do @samp{make install} as it will overwrite
@@ -38300,7 +38304,7 @@ information, see the @uref{http://busybox.net,
project's home page}.
@cindex source code, Solaris @command{awk}
@item The OpenSolaris POSIX @command{awk}
The versions of @command{awk} in @file{/usr/xpg4/bin} and
address@hidden/usr/xpg6/bin} on Solaris are more-or-less POSIX-compliant.
address@hidden/usr/xpg6/bin} on Solaris are more or less POSIX-compliant.
They are based on the @command{awk} from Mortice Kern Systems for PCs.
We were able to make this code compile and work under GNU/Linux
with 1--2 hours of work. Making it more generally portable (using
@@ -38341,9 +38345,9 @@ features to Python. See
@uref{https://github.com/alecthomas/pawk}
for more information. (This is not related to Nelson Beebe's
modified version of BWK @command{awk}, described earlier.)
address@hidden @w{QSE Awk}
address@hidden QSE Awk
address@hidden source code, QSE Awk
address@hidden @w{QSE @command{awk}}
address@hidden QSE @command{awk}
address@hidden source code, QSE @command{awk}
This is an embeddable @command{awk} interpreter. For more information,
see @uref{http://code.google.com/p/qse/} and @uref{http://awk.info/?tools/qse}.
@@ -38362,7 +38366,7 @@ since approximately 2008.
@item Other versions
See also the ``Versions and implementations'' section of the
@uref{http://en.wikipedia.org/wiki/Awk_language#Versions_and_implementations,
-Wikipedia article} for information on additional versions.
+Wikipedia article} on @command{awk} for information on additional versions.
@end table
@@ -38371,7 +38375,7 @@ Wikipedia article} for information on additional
versions.
@itemize @value{BULLET}
@item
-The @command{gawk} distribution is available from GNU project's main
+The @command{gawk} distribution is available from the GNU Project's main
distribution site, @code{ftp.gnu.org}. The canonical build recipe is:
@example
@@ -38383,22 +38387,22 @@ cd address@hidden@value{PATCHLEVEL}
@item
@command{gawk} may be built on non-POSIX systems as well. The currently
-supported systems are MS-Windows using DJGPP, MSYS, MinGW and Cygwin,
+supported systems are MS-Windows using DJGPP, MSYS, MinGW, and Cygwin,
@ifclear FOR_PRINT
OS/2 using EMX,
@end ifclear
and both Vax/VMS and OpenVMS.
-Instructions for each system are included in this @value{CHAPTER}.
+Instructions for each system are included in this @value{APPENDIX}.
@item
Bug reports should be sent via email to @email{bug-gawk@@gnu.org}.
-Bug reports should be in English, and should include the version of
@command{gawk},
-how it was compiled, and a short program and @value{DF} which demonstrate
+Bug reports should be in English and should include the version of
@command{gawk},
+how it was compiled, and a short program and @value{DF} that demonstrate
the problem.
@item
There are a number of other freely available @command{awk}
-implementations. Many are POSIX compliant; others are less so.
+implementations. Many are POSIX-compliant; others are less so.
@end itemize
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 16847eb..724a559 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -34297,81 +34297,81 @@ cross-references to further details:
@itemize @value{BULLET}
@item
The requirement for @samp{;} to separate rules on a line
-(@pxref{Statements/Lines}).
+(@pxref{Statements/Lines})
@item
User-defined functions and the @code{return} statement
-(@pxref{User-defined}).
+(@pxref{User-defined})
@item
The @code{delete} statement (@pxref{Delete}).
@item
The @address@hidden statement
-(@pxref{Do Statement}).
+(@pxref{Do Statement})
@item
The built-in functions @code{atan2()}, @code{cos()}, @code{sin()},
@code{rand()}, and
address@hidden()} (@pxref{Numeric Functions}).
address@hidden()} (@pxref{Numeric Functions})
@item
The built-in functions @code{gsub()}, @code{sub()}, and @code{match()}
-(@pxref{String Functions}).
+(@pxref{String Functions})
@item
The built-in functions @code{close()} and @code{system()}
-(@pxref{I/O Functions}).
+(@pxref{I/O Functions})
@item
The @code{ARGC}, @code{ARGV}, @code{FNR}, @code{RLENGTH}, @code{RSTART},
-and @code{SUBSEP} predefined variables (@pxref{Built-in Variables}).
+and @code{SUBSEP} predefined variables (@pxref{Built-in Variables})
@item
-Assignable @code{$0} (@pxref{Changing Fields}).
+Assignable @code{$0} (@pxref{Changing Fields})
@item
The conditional expression using the ternary operator @samp{?:}
-(@pxref{Conditional Exp}).
+(@pxref{Conditional Exp})
@item
-The expression @address@hidden in @var{array}} outside of @code{for}
-statements (@pxref{Reference to Elements}).
+The expression @address@hidden in @var{array}} outside of @code{for}
+statements (@pxref{Reference to Elements})
@item
The exponentiation operator @samp{^}
(@pxref{Arithmetic Ops}) and its assignment operator
-form @samp{^=} (@pxref{Assignment Ops}).
+form @samp{^=} (@pxref{Assignment Ops})
@item
C-compatible operator precedence, which breaks some old @command{awk}
-programs (@pxref{Precedence}).
+programs (@pxref{Precedence})
@item
Regexps as the value of @code{FS}
(@pxref{Field Separators}) and as the
third argument to the @code{split()} function
(@pxref{String Functions}), rather than using only the first character
-of @code{FS}.
+of @code{FS}
@item
Dynamic regexps as operands of the @samp{~} and @samp{!~} operators
-(@pxref{Computed Regexps}).
+(@pxref{Computed Regexps})
@item
The escape sequences @samp{\b}, @samp{\f}, and @samp{\r}
-(@pxref{Escape Sequences}).
+(@pxref{Escape Sequences})
@item
Redirection of input for the @code{getline} function
-(@pxref{Getline}).
+(@pxref{Getline})
@item
Multiple @code{BEGIN} and @code{END} rules
-(@pxref{BEGIN/END}).
+(@pxref{BEGIN/END})
@item
Multidimensional arrays
-(@pxref{Multidimensional}).
+(@pxref{Multidimensional})
@end itemize
@node SVR4
@@ -34383,54 +34383,54 @@ The System V Release 4 (1989) version of Unix
@command{awk} added these features
@itemize @value{BULLET}
@item
-The @code{ENVIRON} array (@pxref{Built-in Variables}).
+The @code{ENVIRON} array (@pxref{Built-in Variables})
@c gawk and MKS awk
@item
Multiple @option{-f} options on the command line
-(@pxref{Options}).
+(@pxref{Options})
@c MKS awk
@item
The @option{-v} option for assigning variables before program execution begins
-(@pxref{Options}).
+(@pxref{Options})
@c GNU, Bell Laboratories & MKS together
@item
-The @option{--} signal for terminating command-line options.
+The @option{--} signal for terminating command-line options
@item
The @samp{\a}, @samp{\v}, and @samp{\x} escape sequences
-(@pxref{Escape Sequences}).
+(@pxref{Escape Sequences})
@c GNU, for ANSI C compat
@item
A defined return value for the @code{srand()} built-in function
-(@pxref{Numeric Functions}).
+(@pxref{Numeric Functions})
@item
The @code{toupper()} and @code{tolower()} built-in string functions
for case translation
-(@pxref{String Functions}).
+(@pxref{String Functions})
@item
A cleaner specification for the @samp{%c} format-control letter in the
@code{printf} function
-(@pxref{Control Letters}).
+(@pxref{Control Letters})
@item
The ability to dynamically pass the field width and precision (@code{"%*.*d"})
in the argument list of @code{printf} and @code{sprintf()}
-(@pxref{Control Letters}).
+(@pxref{Control Letters})
@item
The use of regexp constants, such as @code{/foo/}, as expressions, where
they are equivalent to using the matching operator, as in @samp{$0 ~ /foo/}
-(@pxref{Using Constant Regexps}).
+(@pxref{Using Constant Regexps})
@item
Processing of escape sequences inside command-line variable assignments
-(@pxref{Assignment Options}).
+(@pxref{Assignment Options})
@end itemize
@node POSIX
@@ -34444,23 +34444,23 @@ introduced the following changes into the language:
@itemize @value{BULLET}
@item
The use of @option{-W} for implementation-specific options
-(@pxref{Options}).
+(@pxref{Options})
@item
The use of @code{CONVFMT} for controlling the conversion of numbers
-to strings (@pxref{Conversion}).
+to strings (@pxref{Conversion})
@item
The concept of a numeric string and tighter comparison rules to go
-with it (@pxref{Typing and Comparison}).
+with it (@pxref{Typing and Comparison})
@item
The use of predefined variables as function parameter names is forbidden
-(@pxref{Definition Syntax}).
+(@pxref{Definition Syntax})
@item
More complete documentation of many of the previously undocumented
-features of the language.
+features of the language
@end itemize
In 2012, a number of extensions that had been commonly available for
@@ -34469,15 +34469,15 @@ many years were finally added to POSIX. They are:
@itemize @value{BULLET}
@item
The @code{fflush()} built-in function for flushing buffered output
-(@pxref{I/O Functions}).
+(@pxref{I/O Functions})
@item
The @code{nextfile} statement
-(@pxref{Nextfile Statement}).
+(@pxref{Nextfile Statement})
@item
The ability to delete all of an array at once with @samp{delete @var{array}}
-(@pxref{Delete}).
+(@pxref{Delete})
@end itemize
@@ -34507,22 +34507,22 @@ originally appeared in his version of @command{awk}:
The @samp{**} and @samp{**=} operators
(@pxref{Arithmetic Ops}
and
address@hidden Ops}).
address@hidden Ops})
@item
The use of @code{func} as an abbreviation for @code{function}
-(@pxref{Definition Syntax}).
+(@pxref{Definition Syntax})
@item
The @code{fflush()} built-in function for flushing buffered output
-(@pxref{I/O Functions}).
+(@pxref{I/O Functions})
@ignore
@item
The @code{SYMTAB} array, that allows access to @command{awk}'s internal symbol
table. This feature was never documented for his @command{awk}, largely because
it is somewhat shakily implemented. For instance, you cannot access arrays
-or array elements through it.
+or array elements through it
@end ignore
@end itemize
@@ -34552,7 +34552,7 @@ Additional predefined variables:
@itemize @value{MINUS}
@item
The
address@hidden
address@hidden,
@code{BINMODE},
@code{ERRNO},
@code{FIELDWIDTHS},
@@ -34564,7 +34564,7 @@ The
and
@code{TEXTDOMAIN}
variables
-(@pxref{Built-in Variables}).
+(@pxref{Built-in Variables})
@end itemize
@item
@@ -34572,15 +34572,15 @@ Special files in I/O redirections:
@itemize @value{MINUS}
@item
-The @file{/dev/stdin}, @file{/dev/stdout}, @file{/dev/stderr} and
+The @file{/dev/stdin}, @file{/dev/stdout}, @file{/dev/stderr}, and
@file{/dev/fd/@var{N}} special @value{FN}s
-(@pxref{Special Files}).
+(@pxref{Special Files})
@item
The @file{/inet}, @file{/inet4}, and @samp{/inet6} special files for
TCP/IP networking using @samp{|&} to specify which version of the
IP protocol to use
-(@pxref{TCP/IP Networking}).
+(@pxref{TCP/IP Networking})
@end itemize
@item
@@ -34589,37 +34589,37 @@ Changes and/or additions to the language:
@itemize @value{MINUS}
@item
The @samp{\x} escape sequence
-(@pxref{Escape Sequences}).
+(@pxref{Escape Sequences})
@item
Full support for both POSIX and GNU regexps
-(@pxref{Regexp}).
+(@pxref{Regexp})
@item
The ability for @code{FS} and for the third
argument to @code{split()} to be null strings
-(@pxref{Single Character Fields}).
+(@pxref{Single Character Fields})
@item
The ability for @code{RS} to be a regexp
-(@pxref{Records}).
+(@pxref{Records})
@item
The ability to use octal and hexadecimal constants in @command{awk}
program source code
-(@pxref{Nondecimal-numbers}).
+(@pxref{Nondecimal-numbers})
@item
The @samp{|&} operator for two-way I/O to a coprocess
-(@pxref{Two-way I/O}).
+(@pxref{Two-way I/O})
@item
Indirect function calls
-(@pxref{Indirect Calls}).
+(@pxref{Indirect Calls})
@item
Directories on the command line produce a warning and are skipped
-(@pxref{Command-line directories}).
+(@pxref{Command-line directories})
@end itemize
@item
@@ -34628,11 +34628,11 @@ New keywords:
@itemize @value{MINUS}
@item
The @code{BEGINFILE} and @code{ENDFILE} special patterns
-(@pxref{BEGINFILE/ENDFILE}).
+(@pxref{BEGINFILE/ENDFILE})
@item
The @code{switch} statement
-(@pxref{Switch Statement}).
+(@pxref{Switch Statement})
@end itemize
@item
@@ -34642,30 +34642,30 @@ Changes to standard @command{awk} functions:
@item
The optional second argument to @code{close()} that allows closing one end
of a two-way pipe to a coprocess
-(@pxref{Two-way I/O}).
+(@pxref{Two-way I/O})
@item
-POSIX compliance for @code{gsub()} and @code{sub()} with @option{--posix}.
+POSIX compliance for @code{gsub()} and @code{sub()} with @option{--posix}
@item
The @code{length()} function accepts an array argument
and returns the number of elements in the array
-(@pxref{String Functions}).
+(@pxref{String Functions})
@item
The optional third argument to the @code{match()} function
for capturing text-matching subexpressions within a regexp
-(@pxref{String Functions}).
+(@pxref{String Functions})
@item
Positional specifiers in @code{printf} formats for
making translations easier
-(@pxref{Printf Ordering}).
+(@pxref{Printf Ordering})
@item
The @code{split()} function's additional optional fourth
-argument which is an array to hold the text of the field separators
-(@pxref{String Functions}).
+argument, which is an array to hold the text of the field separators
+(@pxref{String Functions})
@end itemize
@item
@@ -34675,16 +34675,16 @@ Additional functions only in @command{gawk}:
@item
The @code{gensub()}, @code{patsplit()}, and @code{strtonum()} functions
for more powerful text manipulation
-(@pxref{String Functions}).
+(@pxref{String Functions})
@item
The @code{asort()} and @code{asorti()} functions for sorting arrays
-(@pxref{Array Sorting}).
+(@pxref{Array Sorting})
@item
The @code{mktime()}, @code{systime()}, and @code{strftime()}
functions for working with timestamps
-(@pxref{Time Functions}).
+(@pxref{Time Functions})
@item
The
@@ -34696,17 +34696,17 @@ The
and
@code{xor()}
functions for bit manipulation
-(@pxref{Bitwise Functions}).
+(@pxref{Bitwise Functions})
@c In 4.1, and(), or() and xor() grew the ability to take > 2 arguments
@item
The @code{isarray()} function to check if a variable is an array or not
-(@pxref{Type Functions}).
+(@pxref{Type Functions})
@item
-The @code{bindtextdomain()}, @code{dcgettext()} and @code{dcngettext()}
+The @code{bindtextdomain()}, @code{dcgettext()}, and @code{dcngettext()}
functions for internationalization
-(@pxref{Programmer i18n}).
+(@pxref{Programmer i18n})
@end itemize
@item
@@ -34716,12 +34716,12 @@ Changes and/or additions in the command-line options:
@item
The @env{AWKPATH} environment variable for specifying a path search for
the @option{-f} command-line option
-(@pxref{Options}).
+(@pxref{Options})
@item
The @env{AWKLIBPATH} environment variable for specifying a path search for
the @option{-l} command-line option
-(@pxref{Options}).
+(@pxref{Options})
@item
The
@@ -34750,7 +34750,7 @@ The
and
@option{-V}
short options. Also, the
-ability to use GNU-style long-named options that start with @option{--}
+ability to use GNU-style long-named options that start with @option{--},
and the
@option{--assign},
@option{--bignum},
@@ -34830,7 +34830,7 @@ GCC for VAX and Alpha has not been tested for a while.
@end itemize
@item
-Support for the following obsolete systems was removed from the code
+Support for the following obsolete system was removed from the code
for @command{gawk} @value{PVERSION} 4.1:
@c nested table
@@ -35466,9 +35466,9 @@ 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}).
address@hidden address@hidden/dev/stderr} special file} {BWK Awk} {Mawk} {GNU
Awk} {Now standard}
address@hidden Feature @tab BWK Awk @tab Mawk @tab GNU Awk @tab Now standard
address@hidden @samp{\x} Escape sequence @tab X @tab X @tab X @tab
address@hidden address@hidden/dev/stderr} special file} {BWK @command{awk}}
address@hidden address@hidden {Now standard}
address@hidden Feature @tab BWK @command{awk} @tab @command{mawk} @tab
@command{gawk} @tab Now standard
address@hidden @samp{\x} escape sequence @tab X @tab X @tab X @tab
@item @code{FS} as null string @tab X @tab X @tab X @tab
@item @file{/dev/stdin} special file @tab X @tab X @tab X @tab
@item @file{/dev/stdout} special file @tab X @tab X @tab X @tab
@@ -35499,7 +35499,7 @@ in the machine's native character set. Thus, on
ASCII-based systems,
@samp{[a-z]} matched all the lowercase letters, and only the lowercase
letters, as the numeric values for the letters from @samp{a} through
@samp{z} were contiguous. (On an EBCDIC system, the range @samp{[a-z]}
-includes additional, non-alphabetic characters as well.)
+includes additional nonalphabetic characters as well.)
Almost all introductory Unix literature explained range expressions
as working in this fashion, and in particular, would teach that the
@@ -35524,7 +35524,7 @@ What does that mean?
In many locales, @samp{A} and @samp{a} are both less than @samp{B}.
In other words, these locales sort characters in dictionary order,
and @samp{[a-dx-z]} is typically not equivalent to @samp{[abcdxyz]};
-instead it might be equivalent to @samp{[ABCXYabcdxyz]}, for example.
+instead, it might be equivalent to @samp{[ABCXYabcdxyz]}, for example.
This point needs to be emphasized: much literature teaches that you should
use @samp{[a-z]} to match a lowercase character. But on systems with
@@ -35553,23 +35553,23 @@ is perfectly valid in ASCII, but is not valid in many
Unicode locales,
such as @code{en_US.UTF-8}.
Early versions of @command{gawk} used regexp matching code that was not
-locale aware, so ranges had their traditional interpretation.
+locale-aware, so ranges had their traditional interpretation.
When @command{gawk} switched to using locale-aware regexp matchers,
the problems began; especially as both GNU/Linux and commercial Unix
vendors started implementing non-ASCII locales, @emph{and making them
the default}. Perhaps the most frequently asked question became something
-like ``why does @samp{[A-Z]} match lowercase letters?!?''
+like, ``Why does @samp{[A-Z]} match lowercase letters?!?''
@cindex Berry, Karl
This situation existed for close to 10 years, if not more, and
the @command{gawk} maintainer grew weary of trying to explain that
address@hidden was being nicely standards compliant, and that the issue
address@hidden was being nicely standards-compliant, and that the issue
was in the user's locale. During the development of @value{PVERSION} 4.0,
he modified @command{gawk} to always treat ranges in the original,
pre-POSIX fashion, unless @option{--posix} was used
(@pxref{Options})address@hidden
thus was born the Campaign for Rational Range Interpretation (or
-RRI). A number of GNU tools have either implemented this change,
+RRI). A number of GNU tools have already implemented this change,
or will soon. Thanks to Karl Berry for coining the phrase ``Rational
Range Interpretation.''}
@@ -35583,9 +35583,10 @@ and
By using this lovely technical term, the standard gives license
to implementors to implement ranges in whatever way they choose.
-The @command{gawk} maintainer chose to apply the pre-POSIX meaning in all
-cases: the default regexp matching; with @option{--traditional} and with
address@hidden; in all cases, @command{gawk} remains POSIX compliant.
+The @command{gawk} maintainer chose to apply the pre-POSIX meaning
+both with the default regexp matching and when @option{--traditional} or
address@hidden are used.
+In all cases @command{gawk} remains POSIX-compliant.
@node Contributors
@appendixsec Major Contributors to @command{gawk}
@@ -35631,7 +35632,7 @@ to around 90 pages.
Richard Stallman
helped finish the implementation and the initial draft of this
@value{DOCUMENT}.
-He is also the founder of the FSF and the GNU project.
+He is also the founder of the FSF and the GNU Project.
@item
@cindex Woods, John
@@ -35795,28 +35796,28 @@ John Haque made the following contributions:
@itemize @value{MINUS}
@item
The modifications to convert @command{gawk}
-into a byte-code interpreter, including the debugger.
+into a byte-code interpreter, including the debugger
@item
-The addition of true arrays of arrays.
+The addition of true arrays of arrays
@item
-The additional modifications for support of arbitrary-precision arithmetic.
+The additional modifications for support of arbitrary-precision arithmetic
@item
The initial text of
address@hidden Precision Arithmetic}.
address@hidden Precision Arithmetic}
@item
The work to merge the three versions of @command{gawk}
-into one, for the 4.1 release.
+into one, for the 4.1 release
@item
-Improved array internals for arrays indexed by integers.
+Improved array internals for arrays indexed by integers
@item
-The improved array sorting features were driven by John together
-with Pat Rankin.
+The improved array sorting features were also driven by John, together
+with Pat Rankin
@end itemize
@cindex Papadopoulos, Panos
@@ -35857,10 +35858,10 @@ helping David Trueman, and as the primary maintainer
since around 1994.
@itemize @value{BULLET}
@item
The @command{awk} language has evolved over time. The first release
-was with V7 Unix circa 1978. In 1987, for System V Release 3.1,
+was with V7 Unix, circa 1978. In 1987, for System V Release 3.1,
major additions, including user-defined functions, were made to the language.
Additional changes were made for System V Release 4, in 1989.
-Since then, further minor changes happen under the auspices of the
+Since then, further minor changes have happened under the auspices of the
POSIX standard.
@item
@@ -35876,7 +35877,7 @@ options.
The interaction of POSIX locales and regexp matching in @command{gawk} has
been confusing over
the years. Today, @command{gawk} implements Rational Range Interpretation,
where
ranges of the form @samp{[a-z]} match @emph{only} the characters numerically
between
address@hidden through @samp{z} in the machine's native character set. Usually
this is ASCII
address@hidden through @samp{z} in the machine's native character set. Usually
this is ASCII,
but it can be EBCDIC on IBM S/390 systems.
@item
@@ -35961,7 +35962,7 @@ will be less busy, and you can usually find one closer
to your site.
@command{gawk} is distributed as several @code{tar} files compressed with
different compression programs: @command{gzip}, @command{bzip2},
and @command{xz}. For simplicity, the rest of these instructions assume
-you are using the one compressed with the GNU Zip program, @code{gzip}.
+you are using the one compressed with the GNU Gzip program (@command{gzip}).
Once you have the distribution (e.g.,
@address@hidden@value{PATCHLEVEL}.tar.gz}),
@@ -36012,12 +36013,12 @@ operating systems:
@table @asis
@item Various @samp{.c}, @samp{.y}, and @samp{.h} files
-The actual @command{gawk} source code.
+These files contain the actual @command{gawk} source code.
@end table
@table @file
@item ABOUT-NLS
-Information about GNU @command{gettext} and translations.
+A file containing information about GNU @command{gettext} and translations.
@item AUTHORS
A file with some information about the authorship of @command{gawk}.
@@ -36047,7 +36048,7 @@ An older list of changes to @command{gawk}.
The GNU General Public License.
@item POSIX.STD
-A description of behaviors in the POSIX standard for @command{awk} which
+A description of behaviors in the POSIX standard for @command{awk} that
are left undefined, or where @command{gawk} may not comply fully, as well
as a list of things that the POSIX standard should describe but does not.
@@ -36312,14 +36313,17 @@ Similarly, setting the @code{LINT} variable
(@pxref{User-modified})
has no effect on the running @command{awk} program.
-When used with GCC's automatic dead-code-elimination, this option
+When used with the GNU Compiler Collection's (GCC's)
+automatic dead-code-elimination, this option
cuts almost 23K bytes off the size of the @command{gawk}
executable on GNU/Linux x86_64 systems. Results on other systems and
with other compilers are likely to vary.
Using this option may bring you some slight performance improvement.
address@hidden CAUTION
Using this option will cause some of the tests in the test suite
to fail. This option may be removed at a later date.
address@hidden quotation
@cindex @option{--disable-nls} configuration option
@cindex configuration option, @code{--disable-nls}
@@ -36416,10 +36420,10 @@ running MS-DOS, any version of MS-Windows, or OS/2.
running MS-DOS and any version of MS-Windows.
@end ifset
In this @value{SECTION}, the term ``Windows32''
-refers to any of Microsoft Windows-95/98/ME/NT/2000/XP/Vista/7/8.
+refers to any of Microsoft Windows 95/98/ME/NT/2000/XP/Vista/7/8.
The limitations of MS-DOS (and MS-DOS shells under the other operating
-systems) has meant that various ``DOS extenders'' are often used with
+systems) have meant that various ``DOS extenders'' are often used with
programs such as @command{gawk}. The varying capabilities of Microsoft
Windows 3.1 and Windows32 can add to the confusion. For an overview
of the considerations, refer to @file{README_d/README.pc} in
@@ -36678,7 +36682,7 @@ Under MS-Windows, OS/2 and MS-DOS,
Under MS-Windows and MS-DOS,
@end ifset
@command{gawk} (and many other text programs) silently
-translate end-of-line @samp{\r\n} to @samp{\n} on input and @samp{\n}
+translates end-of-line @samp{\r\n} to @samp{\n} on input and @samp{\n}
to @samp{\r\n} on output. A special @code{BINMODE} variable @value{COMMONEXT}
allows control over these translations and is interpreted as follows:
@@ -36712,7 +36716,7 @@ Setting @code{BINMODE} for standard input or
standard output is accomplished by using an
appropriate @samp{-v address@hidden option on the command line.
@code{BINMODE} is set at the time a file or pipe is opened and cannot be
-changed mid-stream.
+changed midstream.
The name @code{BINMODE} was chosen to match @command{mawk}
(@pxref{Other Versions}).
@@ -36768,8 +36772,8 @@ moved into the @code{BEGIN} rule.
@command{gawk} can be built and used ``out of the box'' under MS-Windows
if you are using the @uref{http://www.cygwin.com, Cygwin environment}.
-This environment provides an excellent simulation of GNU/Linux, using the
-GNU tools, such as Bash, the GNU Compiler Collection (GCC), GNU Make,
+This environment provides an excellent simulation of GNU/Linux, using
+Bash, GCC, GNU Make,
and other GNU programs. Compilation and installation for Cygwin is the
same as for a Unix system:
@@ -36788,7 +36792,7 @@ and then the @samp{make} proceeds as usual.
@appendixsubsubsec Using @command{gawk} In The MSYS Environment
In the MSYS environment under MS-Windows, @command{gawk} automatically
-uses binary mode for reading and writing files. Thus there is no
+uses binary mode for reading and writing files. Thus, there is no
need to use the @code{BINMODE} variable.
This can cause problems with other Unix-like components that have
@@ -36852,7 +36856,7 @@ With ODS-5 volumes and extended parsing enabled, the
case of the target
parameter may need to be exact.
@command{gawk} has been tested under VAX/VMS 7.3 and Alpha/VMS 7.3-1
-using Compaq C V6.4, and Alpha/VMS 7.3, Alpha/VMS 7.3-2, and IA64/VMS 8.3.
+using Compaq C V6.4, and under Alpha/VMS 7.3, Alpha/VMS 7.3-2, and IA64/VMS
8.3.
The most recent builds used HP C V7.3 on Alpha VMS 8.3 and both
Alpha and IA64 VMS 8.4 used HP C address@hidden IA64 architecture
is also known as ``Itanium.''}
@@ -36900,7 +36904,7 @@ For VAX:
/name=(as_is,short)
@end example
-Compile time macros need to be defined before the first VMS-supplied
+Compile-time macros need to be defined before the first VMS-supplied
header file is included, as follows:
@example
@@ -36947,7 +36951,7 @@ If your @command{gawk} was installed by a PCSI kit into
the
@file{GNV$GNU:[vms_help]gawk.hlp}.
The PCSI kit also installs a @file{GNV$GNU:[vms_bin]gawk_verb.cld} file
-which can be used to add @command{gawk} and @command{awk} as DCL commands.
+that can be used to add @command{gawk} and @command{awk} as DCL commands.
For just the current process you can use:
@@ -36956,7 +36960,7 @@ $ @kbd{set command gnv$gnu:[vms_bin]gawk_verb.cld}
@end example
Or the system manager can use @file{GNV$GNU:[vms_bin]gawk_verb.cld} to
-add the @command{gawk} and @command{awk} to the system wide @samp{DCLTABLES}.
+add the @command{gawk} and @command{awk} to the system-wide @samp{DCLTABLES}.
The DCL syntax is documented in the @file{gawk.hlp} file.
@@ -37022,14 +37026,14 @@ The @code{exit} value is a Unix-style value and is
encoded into a VMS exit
status value when the program exits.
The VMS severity bits will be set based on the @code{exit} value.
-A failure is indicated by 1 and VMS sets the @code{ERROR} status.
-A fatal error is indicated by 2 and VMS sets the @code{FATAL} status.
+A failure is indicated by 1, and VMS sets the @code{ERROR} status.
+A fatal error is indicated by 2, and VMS sets the @code{FATAL} status.
All other values will have the @code{SUCCESS} status. The exit value is
encoded to comply with VMS coding standards and will have the
@code{C_FACILITY_NO} of @code{0x350000} with the constant @code{0xA000}
added to the number shifted over by 3 bits to make room for the severity codes.
-To extract the actual @command{gawk} exit code from the VMS status use:
+To extract the actual @command{gawk} exit code from the VMS status, use:
@example
unix_status = (vms_status .and. &x7f8) / 8
@@ -37048,7 +37052,7 @@ VAX/VMS floating point uses unbiased rounding.
@xref{Round Function}.
VMS reports time values in GMT unless one of the @code{SYS$TIMEZONE_RULE}
or @code{TZ} logical names is set. Older versions of VMS, such as VAX/VMS
-7.3 do not set these logical names.
+7.3, do not set these logical names.
@c @cindex directory search
@c @cindex path, search
@@ -37066,7 +37070,7 @@ translation and not a multitranslation @code{RMS}
searchlist.
The VMS GNV package provides a build environment similar to POSIX with ports
of a collection of open source tools. The @command{gawk} found in the GNV
-base kit is an older port. Currently the GNV project is being reorganized
+base kit is an older port. Currently, the GNV project is being reorganized
to supply individual PCSI packages for each component.
See @address@hidden://sourceforge.net/p/gnv/wiki/InstallingGNVPackages/}.}
@@ -37139,7 +37143,7 @@ recommend compiling and using the current version.
@cindex debugging @command{gawk}, bug reports
@cindex troubleshooting, @command{gawk}, bug reports
If you have problems with @command{gawk} or think that you have found a bug,
-report it to the developers; we cannot promise to do anything
+report it to the developers; we cannot promise to do anything,
but we might well want to fix it.
Before reporting a bug, make sure you have really found a genuine bug.
@@ -37149,7 +37153,7 @@ to do something or not, report that too; it's a bug in
the documentation!
Before reporting a bug or trying to fix it yourself, try to isolate it
to the smallest possible @command{awk} program and input @value{DF} that
-reproduces the problem. Then send us the program and @value{DF},
+reproduce the problem. Then send us the program and @value{DF},
some idea of what kind of Unix system you're using,
the compiler you used to compile @command{gawk}, and the exact results
@command{gawk} gave you. Also say what you expected to occur; this helps
@@ -37164,7 +37168,7 @@ You can get this information with the command
@samp{gawk --version}.
Once you have a precise problem description, send email to
@EMAIL{bug-gawk@@gnu.org,bug-gawk at gnu dot org}.
-The @command{gawk} maintainers subscribe to this address and
+The @command{gawk} maintainers subscribe to this address, and
thus they will receive your bug report.
Although you can send mail to the maintainers directly,
the bug reporting address is preferred because the
@@ -37191,8 +37195,8 @@ bug reporting system, you should also send a copy to
This is for two reasons. First, although some distributions forward
bug reports ``upstream'' to the GNU mailing list, many don't, so there is a
good
chance that the @command{gawk} maintainers won't even see the bug report!
Second,
-mail to the GNU list is archived, and having everything at the GNU project
-keeps things self-contained and not dependant on other organizations.
+mail to the GNU list is archived, and having everything at the GNU Project
+keeps things self-contained and not dependent on other organizations.
@end quotation
Non-bug suggestions are always welcome as well. If you have questions
@@ -37201,7 +37205,7 @@ features, ask on the bug list; we will try to help you
out if we can.
If you find bugs in one of the non-Unix ports of @command{gawk},
send an email to the bug list, with a copy to the
-person who maintains that port. They are named in the following list,
+person who maintains that port. The maintainers are named in the following
list,
as well as in the @file{README} file in the @command{gawk} distribution.
Information in the @file{README} file should be considered authoritative
if it conflicts with this @value{DOCUMENT}.
@@ -37216,19 +37220,19 @@ The people maintaining the various @command{gawk}
ports are:
@cindex Robbins, Arnold
@cindex Zaretskii, Eli
@multitable {MS-Windows with MinGW}
{123456789012345678901234567890123456789001234567890}
address@hidden Unix and POSIX systems @tab Arnold Robbins,
@EMAIL{arnold@@skeeve.com,arnold at skeeve dot com}.
address@hidden Unix and POSIX systems @tab Arnold Robbins,
@EMAIL{arnold@@skeeve.com,arnold at skeeve dot com}
address@hidden MS-DOS with DJGPP @tab Scott Deifik,
@EMAIL{scottd.mail@@sbcglobal.net,scottd dot mail at sbcglobal dot net}.
address@hidden MS-DOS with DJGPP @tab Scott Deifik,
@EMAIL{scottd.mail@@sbcglobal.net,scottd dot mail at sbcglobal dot net}
address@hidden MS-Windows with MinGW @tab Eli Zaretskii,
@EMAIL{eliz@@gnu.org,eliz at gnu dot org}.
address@hidden MS-Windows with MinGW @tab Eli Zaretskii,
@EMAIL{eliz@@gnu.org,eliz at gnu dot org}
@c Leave this in the print version on purpose.
@c OS/2 is not mentioned anywhere else in the print version though.
address@hidden OS/2 @tab Andreas Buening,
@EMAIL{andreas.buening@@nexgo.de,andreas dot buening at nexgo dot de}.
address@hidden OS/2 @tab Andreas Buening,
@EMAIL{andreas.buening@@nexgo.de,andreas dot buening at nexgo dot de}
address@hidden VMS @tab John Malmberg, @EMAIL{wb8tyw@@qsl.net,wb8tyw at
qsl.net}.
address@hidden VMS @tab John Malmberg, @EMAIL{wb8tyw@@qsl.net,wb8tyw at qsl.net}
address@hidden z/OS (OS/390) @tab Dave Pitts, @EMAIL{dpitts@@cozx.com,dpitts at
cozx dot com}.
address@hidden z/OS (OS/390) @tab Dave Pitts, @EMAIL{dpitts@@cozx.com,dpitts at
cozx dot com}
@end multitable
If your bug is also reproducible under Unix, send a copy of your
@@ -37247,7 +37251,7 @@ Date: Wed, 4 Sep 1996 08:11:48 -0700 (PDT)
@cindex Brennan, Michael
@ifnotdocbook
@quotation
address@hidden's kind of fun to put comments like this in your awk
address@hidden
address@hidden's kind of fun to put comments like this in your awk
code:address@hidden
@ @ @ @ @ @ @code{// Do C++ comments work? answer: yes! of course}
@author Michael Brennan
@end quotation
@@ -37288,7 +37292,7 @@ It is available in several archive formats:
@end table
@cindex @command{git} utility
-You can also retrieve it from Git Hub:
+You can also retrieve it from GitHub:
@example
git clone git://github.com/onetrueawk/awk bwkawk
@@ -37348,7 +37352,7 @@ for a list of extensions in @command{mawk} that are not
in POSIX @command{awk}.
@item @command{awka}
Written by Andrew Sumner,
@command{awka} translates @command{awk} programs into C, compiles them,
-and links them with a library of functions that provides the core
+and links them with a library of functions that provide the core
@command{awk} functionality.
It also has a number of extensions.
@@ -37369,17 +37373,17 @@ since approximately 2001.
Nelson H.F.@: Beebe at the University of Utah has modified
BWK @command{awk} to provide timing and profiling information.
It is different from @command{gawk} with the @option{--profile} option
-(@pxref{Profiling}),
+(@pxref{Profiling})
in that it uses CPU-based profiling, not line-count
profiling. You may find it at either
@uref{ftp://ftp.math.utah.edu/pub/pawk/pawk-20030606.tar.gz}
or
@uref{http://www.math.utah.edu/pub/pawk/pawk-20030606.tar.gz}.
address@hidden Busybox Awk
address@hidden Busybox Awk
address@hidden source code, Busybox Awk
-Busybox is a GPL-licensed program providing small versions of many
address@hidden BusyBox @command{awk}
address@hidden BusyBox Awk
address@hidden source code, BusyBox Awk
+BusyBox is a GPL-licensed program providing small versions of many
applications within a single executable. It is aimed at embedded systems.
It includes a full implementation of POSIX @command{awk}. When building
it, be careful not to do @samp{make install} as it will overwrite
@@ -37391,7 +37395,7 @@ information, see the @uref{http://busybox.net,
project's home page}.
@cindex source code, Solaris @command{awk}
@item The OpenSolaris POSIX @command{awk}
The versions of @command{awk} in @file{/usr/xpg4/bin} and
address@hidden/usr/xpg6/bin} on Solaris are more-or-less POSIX-compliant.
address@hidden/usr/xpg6/bin} on Solaris are more or less POSIX-compliant.
They are based on the @command{awk} from Mortice Kern Systems for PCs.
We were able to make this code compile and work under GNU/Linux
with 1--2 hours of work. Making it more generally portable (using
@@ -37432,9 +37436,9 @@ features to Python. See
@uref{https://github.com/alecthomas/pawk}
for more information. (This is not related to Nelson Beebe's
modified version of BWK @command{awk}, described earlier.)
address@hidden @w{QSE Awk}
address@hidden QSE Awk
address@hidden source code, QSE Awk
address@hidden @w{QSE @command{awk}}
address@hidden QSE @command{awk}
address@hidden source code, QSE @command{awk}
This is an embeddable @command{awk} interpreter. For more information,
see @uref{http://code.google.com/p/qse/} and @uref{http://awk.info/?tools/qse}.
@@ -37453,7 +37457,7 @@ since approximately 2008.
@item Other versions
See also the ``Versions and implementations'' section of the
@uref{http://en.wikipedia.org/wiki/Awk_language#Versions_and_implementations,
-Wikipedia article} for information on additional versions.
+Wikipedia article} on @command{awk} for information on additional versions.
@end table
@@ -37462,7 +37466,7 @@ Wikipedia article} for information on additional
versions.
@itemize @value{BULLET}
@item
-The @command{gawk} distribution is available from GNU project's main
+The @command{gawk} distribution is available from the GNU Project's main
distribution site, @code{ftp.gnu.org}. The canonical build recipe is:
@example
@@ -37474,22 +37478,22 @@ cd address@hidden@value{PATCHLEVEL}
@item
@command{gawk} may be built on non-POSIX systems as well. The currently
-supported systems are MS-Windows using DJGPP, MSYS, MinGW and Cygwin,
+supported systems are MS-Windows using DJGPP, MSYS, MinGW, and Cygwin,
@ifclear FOR_PRINT
OS/2 using EMX,
@end ifclear
and both Vax/VMS and OpenVMS.
-Instructions for each system are included in this @value{CHAPTER}.
+Instructions for each system are included in this @value{APPENDIX}.
@item
Bug reports should be sent via email to @email{bug-gawk@@gnu.org}.
-Bug reports should be in English, and should include the version of
@command{gawk},
-how it was compiled, and a short program and @value{DF} which demonstrate
+Bug reports should be in English and should include the version of
@command{gawk},
+how it was compiled, and a short program and @value{DF} that demonstrate
the problem.
@item
There are a number of other freely available @command{awk}
-implementations. Many are POSIX compliant; others are less so.
+implementations. Many are POSIX-compliant; others are less so.
@end itemize
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=1d4fd43cb95fed18c9885ba5b30b28eb1f8f713b
commit 1d4fd43cb95fed18c9885ba5b30b28eb1f8f713b
Author: Arnold D. Robbins <address@hidden>
Date: Fri Feb 13 09:40:28 2015 +0200
Improve regexp collection on Solaris, maybe others.
diff --git a/ChangeLog b/ChangeLog
index cf2a25f..18e7e90 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2015-02-13 Arnold D. Robbins <address@hidden>
+
+ * awkgram.y (yylex): Be more careful about passing true to
+ nextc() when collecting a regexp. Some systems' iscntrl()
+ are not as forgiving as GLIBC's. E.g., Solaris.
+ Thanks to Dagobert Michelsen <address@hidden> for
+ the bug report and access to systems to check the fix.
+
2015-02-12 Arnold D. Robbins <address@hidden>
* POSIX.STD: Update with info about function parameters.
diff --git a/awkgram.c b/awkgram.c
index 20d3506..b3283eb 100644
--- a/awkgram.c
+++ b/awkgram.c
@@ -5337,7 +5337,7 @@ yylex(void)
if (lasttok == LEX_EOF) /* error earlier in current source,
must give up !! */
return 0;
- c = nextc(true);
+ c = nextc(! want_regexp);
if (c == END_SRC)
return 0;
if (c == END_FILE)
@@ -5379,12 +5379,12 @@ yylex(void)
want_regexp = false;
tok = tokstart;
for (;;) {
- c = nextc(true);
+ c = nextc(false);
if (gawk_mb_cur_max == 1 || nextc_is_1stbyte) switch
(c) {
case '[':
/* one day check for `.' and `=' too */
- if (nextc(true) == ':' || in_brack == 0)
+ if (nextc(false) == ':' || in_brack == 0)
in_brack++;
pushback();
break;
@@ -5396,7 +5396,7 @@ yylex(void)
in_brack--;
break;
case '\\':
- if ((c = nextc(true)) == END_FILE) {
+ if ((c = nextc(false)) == END_FILE) {
pushback();
yyerror(_("unterminated regexp ends
with `\\' at end of file"));
goto end_regexp; /* kludge */
@@ -5596,7 +5596,7 @@ retry:
return lasttok = '*';
case '/':
- if (nextc(true) == '=') {
+ if (nextc(false) == '=') {
pushback();
return lasttok = SLASH_BEFORE_EQUAL;
}
diff --git a/awkgram.y b/awkgram.y
index ef7c139..0df72b4 100644
--- a/awkgram.y
+++ b/awkgram.y
@@ -2998,7 +2998,7 @@ yylex(void)
if (lasttok == LEX_EOF) /* error earlier in current source,
must give up !! */
return 0;
- c = nextc(true);
+ c = nextc(! want_regexp);
if (c == END_SRC)
return 0;
if (c == END_FILE)
@@ -3040,12 +3040,12 @@ yylex(void)
want_regexp = false;
tok = tokstart;
for (;;) {
- c = nextc(true);
+ c = nextc(false);
if (gawk_mb_cur_max == 1 || nextc_is_1stbyte) switch
(c) {
case '[':
/* one day check for `.' and `=' too */
- if (nextc(true) == ':' || in_brack == 0)
+ if (nextc(false) == ':' || in_brack == 0)
in_brack++;
pushback();
break;
@@ -3057,7 +3057,7 @@ yylex(void)
in_brack--;
break;
case '\\':
- if ((c = nextc(true)) == END_FILE) {
+ if ((c = nextc(false)) == END_FILE) {
pushback();
yyerror(_("unterminated regexp ends
with `\\' at end of file"));
goto end_regexp; /* kludge */
@@ -3257,7 +3257,7 @@ retry:
return lasttok = '*';
case '/':
- if (nextc(true) == '=') {
+ if (nextc(false) == '=') {
pushback();
return lasttok = SLASH_BEFORE_EQUAL;
}
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 8 +
awkgram.c | 10 +-
awkgram.y | 10 +-
doc/ChangeLog | 4 +
doc/gawk.info | 528 +++++++++++++++++++++++++++---------------------------
doc/gawk.texi | 306 ++++++++++++++++----------------
doc/gawktexi.in | 306 ++++++++++++++++----------------
7 files changed, 596 insertions(+), 576 deletions(-)
hooks/post-receive
--
gawk
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gawk-diffs] [SCM] gawk branch, gawk-4.1-stable, updated. gawk-4.1.0-590-gcde2383,
Arnold Robbins <=