aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/ChangeLog4
-rw-r--r--doc/gawk.info1505
-rw-r--r--doc/gawk.texi327
-rw-r--r--doc/gawktexi.in327
4 files changed, 1121 insertions, 1042 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog
index c7a257c0..67937858 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,7 @@
+2014-05-27 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawktexi.in: Edits through the end!
+
2014-05-25 Arnold D. Robbins <arnold@skeeve.com>
* gawktexi.in: Edits through Appendix A.
diff --git a/doc/gawk.info b/doc/gawk.info
index a7326977..89bc8c64 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -637,7 +637,7 @@ texts being (a) (see below), and with the Back-Cover Texts being (b)
* New Ports:: Porting `gawk' to a new
operating system.
* Derived Files:: Why derived files are kept in the
- `git' repository.
+ Git repository.
* Future Extensions:: New features that may be implemented
one day.
* Implementation Limitations:: Some limitations of the
@@ -1328,7 +1328,7 @@ for now. *Note User-defined::.) Each rule specifies one pattern to
search for and one action to perform upon finding the pattern.
Syntactically, a rule consists of a pattern followed by an action.
-The action is enclosed in curly braces to separate it from the pattern.
+The action is enclosed in braces to separate it from the pattern.
Newlines usually separate rules. Therefore, an `awk' program looks
like this:
@@ -1877,10 +1877,10 @@ for _every_ input line. If the action is omitted, the default action
is to print all lines that match the pattern.
Thus, we could leave out the action (the `print' statement and the
-curly braces) in the previous example and the result would be the same:
-`awk' prints all lines matching the pattern `li'. By comparison,
-omitting the `print' statement but retaining the curly braces makes an
-empty action that does nothing (i.e., no lines are printed).
+braces) in the previous example and the result would be the same: `awk'
+prints all lines matching the pattern `li'. By comparison, omitting
+the `print' statement but retaining the braces makes an empty action
+that does nothing (i.e., no lines are printed).
Many practical `awk' programs are just a line or two. Following is a
collection of useful, short programs to get you started. Some of these
@@ -8940,12 +8940,12 @@ outline, an `awk' program generally looks like this:
...
An action consists of one or more `awk' "statements", enclosed in
-curly braces (`{...}'). Each statement specifies one thing to do. The
-statements are separated by newlines or semicolons. The curly braces
-around an action must be used even if the action contains only one
-statement, or if it contains no statements at all. However, if you
-omit the action entirely, omit the curly braces as well. An omitted
-action is equivalent to `{ print $0 }':
+braces (`{...}'). Each statement specifies one thing to do. The
+statements are separated by newlines or semicolons. The braces around
+an action must be used even if the action contains only one statement,
+or if it contains no statements at all. However, if you omit the
+action entirely, omit the braces as well. An omitted action is
+equivalent to `{ print $0 }':
/foo/ { } match `foo', do nothing -- empty action
/foo/ match `foo', print the record -- omitted action
@@ -8964,9 +8964,9 @@ Control statements
well as a few special ones (*note Statements::).
Compound statements
- Enclose one or more statements in curly braces. A compound
- statement is used in order to put several statements together in
- the body of an `if', `while', `do', or `for' statement.
+ Enclose one or more statements in braces. A compound statement is
+ used in order to put several statements together in the body of an
+ `if', `while', `do', or `for' statement.
Input statements
Use the `getline' command (*note Getline::). Also supplied in
@@ -8995,7 +8995,7 @@ statements contain other statements. For example, the `if' statement
contains another statement that may or may not be executed. The
contained statement is called the "body". To include more than one
statement in the body, group them into a single "compound statement"
-with curly braces, separating them with newlines or semicolons.
+with braces, separating them with newlines or semicolons.
* Menu:
@@ -9043,8 +9043,8 @@ the value of `x' is evenly divisible by two), then the first `print'
statement is executed; otherwise, the second `print' statement is
executed. If the `else' keyword appears on the same line as THEN-BODY
and THEN-BODY is not a compound statement (i.e., not surrounded by
-curly braces), then a semicolon must separate THEN-BODY from the `else'.
-To illustrate this, the previous example can be rewritten as:
+braces), then a semicolon must separate THEN-BODY from the `else'. To
+illustrate this, the previous example can be rewritten as:
if (x % 2 == 0) print "x is even"; else
print "x is odd"
@@ -24435,7 +24435,7 @@ directory and run the program:
---------- Footnotes ----------
(1) In practice, you would probably want to use the GNU
-Autotools--Automake, Autoconf, Libtool, and Gettext--to configure and
+Autotools--Automake, Autoconf, Libtool, and `gettext'--to configure and
build your libraries. Instructions for doing so are beyond the scope of
this Info file. *Note gawkextlib::, for WWW links to the tools.
@@ -25058,7 +25058,7 @@ parser library installed in order to build and use the XML extension.
In addition, you must have the GNU Autotools installed (Autoconf
(http://www.gnu.org/software/autoconf), Automake
(http://www.gnu.org/software/automake), Libtool
-(http://www.gnu.org/software/libtool), and Gettext
+(http://www.gnu.org/software/libtool), and GNU `gettext'
(http://www.gnu.org/software/gettext)).
The simple recipe for building and testing `gawkextlib' is as
@@ -26189,7 +26189,6 @@ the GNU Zip program, `gzip'.
use `gzip' to expand the file and then use `tar' to extract it. You
can use the following pipeline to produce the `gawk' distribution:
- # Under System V, add 'o' to the tar options
gzip -d -c gawk-4.1.1.tar.gz | tar -xvpf -
On a system with GNU `tar', you can let `tar' do the decompression
@@ -26325,8 +26324,8 @@ Various `.c', `.y', and `.h' files
`Makefile.am'
`*/Makefile.am'
- Files used by the GNU `automake' software for generating the
- `Makefile.in' files used by `autoconf' and `configure'.
+ Files used by the GNU Automake software for generating the
+ `Makefile.in' files used by Autoconf and `configure'.
`Makefile.in'
`aclocal.m4'
@@ -26417,8 +26416,8 @@ environment for MS-Windows.
`gawk-4.1.1'. Like most GNU software, `gawk' is configured
automatically for your system by running the `configure' program. This
program is a Bourne shell script that is generated automatically using
-GNU `autoconf'. (The `autoconf' software is described fully starting
-with *note (Autoconf)Top:: autoconf,Autoconf--Generating Automatic
+GNU Autoconf. (The Autoconf software is described fully starting with
+*note (Autoconf)Top:: autoconf,Autoconf--Generating Automatic
Configuration Scripts.)
To configure `gawk', simply run `configure':
@@ -26496,8 +26495,8 @@ command line when compiling `gawk' from scratch, including:
improvement.
`--with-whiny-user-strftime'
- Force use of the included version of the `strftime()' function for
- deficient systems.
+ Force use of the included version of the C `strftime()' function
+ for deficient systems.
Use the command `./configure --help' to see the full list of options
that `configure' supplies.
@@ -26541,9 +26540,9 @@ any constants that `configure' defined and should not have. `custom.h'
is automatically included by `config.h'.
It is also possible that the `configure' program generated by
-`autoconf' will not work on your system in some other fashion. If you
-do have a problem, the file `configure.ac' is the input for `autoconf'.
-You may be able to change this file and generate a new version of
+Autoconf will not work on your system in some other fashion. If you do
+have a problem, the file `configure.ac' is the input for Autoconf. You
+may be able to change this file and generate a new version of
`configure' that works on your system (*note Bugs::, for information on
how to report problems in configuring `gawk'). The same mechanism may
be used to send in updates to `configure.ac' and/or `custom.h'.
@@ -26704,7 +26703,12 @@ other set of (self-consistent) environment variables and compiler flags.
NOTE: Ancient OS/2 ports of GNU `make' are not able to handle the
Makefiles of this package. If you encounter any problems with
`make', try GNU Make 3.79.1 or later versions. You should find
- the latest version on `ftp://hobbes.nmsu.edu/pub/os2/'.
+ the latest version on `ftp://hobbes.nmsu.edu/pub/os2/'.(1)
+
+ ---------- Footnotes ----------
+
+ (1) As of May, 2014, this site is still there, but the author could
+not find a package for GNU Make.

File: gawk.info, Node: PC Testing, Next: PC Using, Prev: PC Compiling, Up: PC Installation
@@ -26745,11 +26749,11 @@ Networking::). EMX (OS/2 only) supports at least the `|&' operator.
files as described in *note AWKPATH Variable::. However, semicolons
(rather than colons) separate elements in the `AWKPATH' variable. If
`AWKPATH' is not set or is empty, then the default search path for
-MS-Windows and MS-DOS versions is `".;c:/lib/awk;c:/gnu/lib/awk"'.
+MS-Windows and MS-DOS versions is `.;c:/lib/awk;c:/gnu/lib/awk'.
The search path for OS/2 (32 bit, EMX) is determined by the prefix
directory (most likely `/usr' or `c:/usr') that has been specified as
-an option of the `configure' script like it is the case for the Unix
+an option of the `configure' script as is the case for the Unix
versions. If `c:/usr' is the prefix directory then the default search
path contains `.' and `c:/usr/share/awk'. Additionally, to support
binary distributions of `gawk' for OS/2 systems whose drive `c:' might
@@ -26757,7 +26761,7 @@ not support long file names or might not exist at all, there is a
special environment variable. If `UNIXROOT' specifies a drive then
this specific drive is also searched for program files. E.g., if
`UNIXROOT' is set to `e:' the complete default search path is
-`".;c:/usr/share/awk;e:/usr/share/awk"'.
+`.;c:/usr/share/awk;e:/usr/share/awk'.
An `sh'-like shell (as opposed to `command.com' under MS-DOS or
`cmd.exe' under MS-Windows or OS/2) may be useful for `awk' programming.
@@ -26765,10 +26769,9 @@ 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 `"\n"' to `"\r\n"' on output. A special `BINMODE' variable
-(c.e.) allows control over these translations and is interpreted as
-follows:
+programs) silently translate 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:
* If `BINMODE' is `"r"', or one, then binary mode is set on read
(i.e., no translations on reads).
@@ -26794,11 +26797,11 @@ and cannot be changed mid-stream.
Versions::). `mawk' and `gawk' handle `BINMODE' similarly; however,
`mawk' adds a `-W BINMODE=N' option and an environment variable that
can set `BINMODE', `RS', and `ORS'. The files `binmode[1-3].awk'
-(under `gnu/lib/awk' in some of the prepared distributions) have been
-chosen to match `mawk''s `-W BINMODE=N' option. These can be changed
-or discarded; in particular, the setting of `RS' giving the fewest
-"surprises" is open to debate. `mawk' uses `RS = "\r\n"' if binary
-mode is set on read, which is appropriate for files with the
+(under `gnu/lib/awk' in some of the prepared binary distributions) have
+been chosen to match `mawk''s `-W BINMODE=N' option. These can be
+changed or discarded; in particular, the setting of `RS' giving the
+fewest "surprises" is open to debate. `mawk' uses `RS = "\r\n"' if
+binary mode is set on read, which is appropriate for files with the
MS-DOS-style end-of-line.
To illustrate, the following examples set binary mode on writes for
@@ -26901,10 +26904,10 @@ or:
$ MMK/DESCRIPTION=[.vms]descrip.mms gawk
`MMK' is an open source, free, near-clone of `MMS' and can better
-handle `ODS-5' volumes with upper- and lowercase filenames. `MMK' is
+handle ODS-5 volumes with upper- and lowercase filenames. `MMK' is
available from `https://github.com/endlesssoftware/mmk'.
- With `ODS-5' volumes and extended parsing enabled, the case of the
+ With ODS-5 volumes and extended parsing enabled, the case of the
target parameter may need to be exact.
`gawk' has been tested under VAX/VMS 7.3 and Alpha/VMS 7.3-1 using
@@ -26912,8 +26915,8 @@ 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)
- The `[.vms]gawk_build_steps.txt' provides information on how to build
-`gawk' into a PCSI kit that is compatible with the GNV product.
+ *Note VMS GNV::, for information on building `gawk' as a PCSI kit
+that is compatible with the GNV product.
---------- Footnotes ----------
@@ -27155,11 +27158,12 @@ get this information with the command `gawk --version'.
Once you have a precise problem, send email to <bug-gawk@gnu.org>.
- Using this address automatically sends a copy of your mail to me.
-If necessary, I can be reached directly at <arnold@skeeve.com>. The
-bug reporting address is preferred since the email list is archived at
-the GNU Project. _All email should be in English, since that is my
-native language._
+ The `gawk' maintainers subscribe to this address and thus they will
+receive your bug report. If necessary, the primary maintainer can be
+reached directly at <arnold@skeeve.com>. The bug reporting address is
+preferred since the email list is archived at the GNU Project. _All
+email should be in English. This is the only language understood in
+common by all the maintainers._
CAUTION: Do _not_ try to report bugs in `gawk' by posting to the
Usenet/Internet newsgroup `comp.lang.awk'. While the `gawk'
@@ -27194,7 +27198,7 @@ considered authoritative if it conflicts with this Info file.
The people maintaining the non-Unix ports of `gawk' are as follows:
MS-DOS with DJGPP Scott Deifik, <scottd.mail@sbcglobal.net>.
-MS-Windows with MINGW Eli Zaretskii, <eliz@gnu.org>.
+MS-Windows with MinGW Eli Zaretskii, <eliz@gnu.org>.
OS/2 Andreas Buening, <andreas.buening@nexgo.de>.
VMS Pat Rankin, <r.pat.rankin@gmail.com>, and John
Malmberg, <wb8tyw@qsl.net>.
@@ -27300,12 +27304,13 @@ Busybox Awk
(http://busybox.net).
The OpenSolaris POSIX `awk'
- The version of `awk' in `/usr/xpg4/bin' on Solaris is more-or-less
- POSIX-compliant. It is based on the `awk' from Mortice Kern
- Systems for PCs. This author was able to make it compile and work
- under GNU/Linux with 1-2 hours of work. Making it more generally
- portable (using GNU Autoconf and/or Automake) would take more
- work, and this has not been done, at least to our knowledge.
+ 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
+ `awk' from Mortice Kern Systems for PCs. This author was 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 Automake) would take more work, and this has not been done,
+ at least to our knowledge.
The source code used to be available from the OpenSolaris web site.
However, that project was ended and the web site shut down.
@@ -27343,6 +27348,9 @@ QSE Awk
`http://www.quiktrim.org/QTawk.html' for more information,
including the manual and a download link.
+ The project may als be frozen; no new code changes have been made
+ since approximately 2008.
+
Other Versions
See also the Wikipedia article
(http://en.wikipedia.org/wiki/Awk_language#Versions_and_implementations),
@@ -27385,7 +27393,7 @@ one more option available on the command line:
`-Y'
`--parsedebug'
- Prints out the parse stack information as the program is being
+ Print out the parse stack information as the program is being
parsed.
This option is intended only for serious `gawk' developers and not
@@ -27414,7 +27422,7 @@ as well as any considerations you should bear in mind.
* New Ports:: Porting `gawk' to a new operating
system.
* Derived Files:: Why derived files are kept in the
- `git' repository.
+ Git repository.

File: gawk.info, Node: Accessing The Source, Next: Adding Code, Up: Additions
@@ -27435,9 +27443,9 @@ doesn't have it. Once you have done so, use the command:
git clone git://git.savannah.gnu.org/gawk.git
-This will clone the `gawk' repository. If you are behind a firewall
-that will not allow you to use the Git native protocol, you can still
-access the repository using:
+This clones the `gawk' repository. If you are behind a firewall that
+does not allow you to use the Git native protocol, you can still access
+the repository using:
git clone http://git.savannah.gnu.org/r/gawk.git
@@ -27459,7 +27467,7 @@ C.2.2 Adding New Features
You are free to add any new features you like to `gawk'. However, if
you want your changes to be incorporated into the `gawk' distribution,
there are several steps that you need to take in order to make it
-possible to include your changes:
+possible to include them:
1. Before building the new feature into `gawk' itself, consider
writing it as an extension module (*note Dynamic Extensions::).
@@ -27476,9 +27484,10 @@ possible to include your changes:
3. Get the latest version. It is much easier for me to integrate
changes if they are relative to the most recent distributed
- version of `gawk'. If your version of `gawk' is very old, I may
- not be able to integrate them at all. (*Note Getting::, for
- information on getting the latest version of `gawk'.)
+ version of `gawk', or better yet, relative to the latest code in
+ the Git repository. If your version of `gawk' is very old, I may
+ not be able to integrate your changes at all. (*Note Getting::,
+ for information on getting the latest version of `gawk'.)
4. See *note (Version)Top:: standards, GNU Coding Standards. This
document describes how GNU software should be written. If you
@@ -27575,7 +27584,8 @@ possible to include your changes:
8. Include an entry for the `ChangeLog' file with your submission.
This helps further minimize the amount of work I have to do,
- making it easier for me to accept patches.
+ making it easier for me to accept patches. It is simplest if you
+ just make this part of your diff.
Although this sounds like a lot of work, please remember that while
you may write the new code, I have to maintain it and support it. If it
@@ -27616,18 +27626,24 @@ steps:
people. Thus, you should not change them unless it is for a very
good reason; i.e., changes are not out of the question, but
changes to these files are scrutinized extra carefully. The files
- are `dfa.c', `dfa.h', `getopt1.c', `getopt.c', `getopt.h',
- `install-sh', `mkinstalldirs', `regcomp.c', `regex.c',
- `regexec.c', `regexex.c', `regex.h', `regex_internal.c', and
- `regex_internal.h'.
-
- 5. Be willing to continue to maintain the port. Non-Unix operating
+ are `dfa.c', `dfa.h', `getopt.c', `getopt.h', `getopt1.c',
+ `getopt_int.h', `gettext.h', `regcomp.c', `regex.c', `regex.h',
+ `regex_internal.c', `regex_internal.h', and `regexec.c'.
+
+ 5. A number of other files are provided by the GNU Autotools
+ (Autoconf, Automake, and GNU `gettext'). You should not change
+ them either, unless it is for a very good reason. The files are
+ `ABOUT-NLS', `config.guess', `config.rpath', `config.sub',
+ `depcomp', `INSTALL', `install-sh', `missing', `mkinstalldirs',
+ `xalloc.h', and `ylwrap'.
+
+ 6. Be willing to continue to maintain the port. Non-Unix operating
systems are supported by volunteers who maintain the code needed
to compile and run `gawk' on their systems. If noone volunteers to
maintain a port, it becomes unsupported and it may be necessary to
remove it from the distribution.
- 6. Supply an appropriate `gawkmisc.???' file. Each port has its own
+ 7. Supply an appropriate `gawkmisc.???' file. Each port has its own
`gawkmisc.???' that implements certain operating system specific
functions. This is cleaner than a plethora of `#ifdef's scattered
throughout the code. The `gawkmisc.c' in the main source
@@ -27643,7 +27659,7 @@ steps:
(Currently, this is only an issue for the PC operating system
ports.)
- 7. Supply a `Makefile' as well as any other C source and header files
+ 8. Supply a `Makefile' as well as any other C source and header files
that are necessary for your operating system. All your code
should be in a separate subdirectory, with a name that is the same
as, or reminiscent of, either your operating system or the
@@ -27653,7 +27669,7 @@ steps:
avoid using names for your files that duplicate the names of files
in the main source directory.
- 8. Update the documentation. Please write a section (or sections)
+ 9. Update the documentation. Please write a section (or sections)
for this Info file describing the installation and compilation
steps needed to compile and/or install `gawk' for your system.
@@ -27667,13 +27683,13 @@ style and brace layout that suits your taste.

File: gawk.info, Node: Derived Files, Prev: New Ports, Up: Additions
-C.2.4 Why Generated Files Are Kept In `git'
--------------------------------------------
+C.2.4 Why Generated Files Are Kept In Git
+-----------------------------------------
-If you look at the `gawk' source in the `git' repository, you will
-notice that it includes files that are automatically generated by GNU
-infrastructure tools, such as `Makefile.in' from `automake' and even
-`configure' from `autoconf'.
+If you look at the `gawk' source in the Git repository, you will notice
+that it includes files that are automatically generated by GNU
+infrastructure tools, such as `Makefile.in' from Automake and even
+`configure' from Autoconf.
This is different from many Free Software projects that do not store
the derived files, because that keeps the repository less cluttered,
@@ -27700,10 +27716,10 @@ build?)
If the repository has all the generated files, then it's easy to
just check them out and build. (Or _easier_, depending upon how far
-back we go. `:-)')
+back we go.)
And that brings us to the second (and stronger) reason why all the
-files really need to be in `git'. It boils down to who do you cater
+files really need to be in Git. It boils down to who do you cater
to--the `gawk' developer(s), or the user who just wants to check out a
version and try it out?
@@ -27729,7 +27745,7 @@ idea how to create it, and that was not the only problem.)
He felt _extremely_ frustrated. With respect to that branch, the
maintainer is no different than Jane User who wants to try to build
-`gawk-4.0-stable' or `master' from the repository.
+`gawk-4.1-stable' or `master' from the repository.
Thus, the maintainer thinks that it's not just important, but
critical, that for any given branch, the above incantation _just works_.
@@ -27744,32 +27760,26 @@ critical, that for any given branch, the above incantation _just works_.
B. He is really good at `git diff x y > /tmp/diff1 ; gvim
/tmp/diff1' to remove the diffs that aren't of interest in
- order to review code. `:-)'
+ order to review code.
2. It would certainly help if everyone used the same versions of the
GNU tools as he does, which in general are the latest released
- versions of `automake', `autoconf', `bison', and `gettext'.
+ versions of Automake, Autoconf, `bison', and `gettext'.
- A. Installing from source is quite easy. It's how the maintainer
- worked for years under Fedora. He had `/usr/local/bin' at
- the front of his `PATH' and just did:
-
- wget http://ftp.gnu.org/gnu/PACKAGE/PACKAGE-X.Y.Z.tar.gz
- tar -xpzvf PACKAGE-X.Y.Z.tar.gz
- cd PACKAGE-X.Y.Z
- ./configure && make && make check
- make install # as root
-
- B. These days the maintainer uses Ubuntu 12.04 which is medium
- current, but he is already doing the above for `autoconf',
- `automake' and `bison'.
+ Installing from source is quite easy. It's how the maintainer
+ worked for years, and still works. He had `/usr/local/bin' at the
+ front of his `PATH' and just did:
+ wget http://ftp.gnu.org/gnu/PACKAGE/PACKAGE-X.Y.Z.tar.gz
+ tar -xpzvf PACKAGE-X.Y.Z.tar.gz
+ cd PACKAGE-X.Y.Z
+ ./configure && make && make check
+ make install # as root
Most of the above was originally written by the maintainer to other
`gawk' developers. It raised the objection from one of the developers
-"... that anybody pulling down the source from `git' is not an end
-user."
+"... that anybody pulling down the source from Git is not an end user."
However, this is not true. There are "power `awk' users" who can
build `gawk' (using the magic incantation shown previously) but who
@@ -27778,12 +27788,12 @@ all the time.
It was then suggested that there be a `cron' job to create nightly
tarballs of "the source." Here, the problem is that there are source
-trees, corresponding to the various branches! So, nightly tar balls
+trees, corresponding to the various branches! So, nightly tarballs
aren't the answer, especially as the repository can go for weeks
without significant change being introduced.
- Fortunately, the `git' server can meet this need. For any given
-branch named BRANCHNAME, use:
+ Fortunately, the Git server can meet this need. For any given branch
+named BRANCHNAME, use:
wget http://git.savannah.gnu.org/cgit/gawk.git/snapshot/gawk-BRANCHNAME.tar.gz
@@ -27794,9 +27804,9 @@ to retrieve a snapshot of the given branch.
(1) We tried. It was painful.
(2) There is one GNU program that is (in our opinion) severely
-difficult to bootstrap from the `git' repository. For example, on the
-author's old (but still working) PowerPC macintosh with Mac OS X 10.5,
-it was necessary to bootstrap a ton of software, starting with `git'
+difficult to bootstrap from the Git repository. For example, on the
+author's old (but still working) PowerPC Macintosh with Mac OS X 10.5,
+it was necessary to bootstrap a ton of software, starting with Git
itself, in order to try to work with the latest code. It's not
pleasant, and especially on older systems, it's a big waste of time.
@@ -27804,8 +27814,8 @@ pleasant, and especially on older systems, it's a big waste of time.
maintainers had dropped `.gz' and `.bz2' files and only distribute
`.tar.xz' files. It was necessary to bootstrap `xz' first!
- (3) A branch created by one of the other developers that did not
-include the generated files.
+ (3) A branch (since removed) created by one of the other developers
+that did not include the generated files.

File: gawk.info, Node: Future Extensions, Next: Implementation Limitations, Prev: Additions, Up: Notes
@@ -27818,11 +27828,11 @@ C.3 Probable Future Extensions
Hey! -- Larry Wall
- The `TODO' file in the `gawk' Git repository lists possible future
-enhancements. Some of these relate to the source code, and others to
-possible new features. Please see that file for the list. *Note
-Additions::, if you are interested in tackling any of the projects
-listed there.
+ The `TODO' file in the `master' branch of the `gawk' Git repository
+lists possible future enhancements. Some of these relate to the source
+code, and others to possible new features. Please see that file for
+the list. *Note Additions::, if you are interested in tackling any of
+the projects listed there.

File: gawk.info, Node: Implementation Limitations, Next: Extension Design, Prev: Future Extensions, Up: Notes
@@ -27899,9 +27909,9 @@ The old extension mechanism had several problems:
* Being able to call into `gawk' from an extension required linker
facilities that are common on Unix-derived systems but that did
- not work on Windows systems; users wanting extensions on Windows
- had to statically link them into `gawk', even though Windows
- supports dynamic loading of shared objects.
+ not work on MS-Windows systems; users wanting extensions on
+ MS-Windows had to statically link them into `gawk', even though
+ MS-Windows supports dynamic loading of shared objects.
* The API would change occasionally as `gawk' changed; no
compatibility between versions was ever offered or planned for.
@@ -27949,8 +27959,8 @@ Some goals for the new API were:
flattening") in order to loop over all the element in an easy
fashion for C code.
- - The ability to create arrays (including `gawk''s true
- multidimensional arrays).
+ - The ability to create arrays (including `gawk''s true arrays
+ of arrays).
Some additional important goals were:
@@ -27964,7 +27974,7 @@ Some goals for the new API were:
* The API mechanism should not require access to `gawk''s symbols(1)
by the compile-time or dynamic linker, in order to enable creation
- of extensions that also work on Windows.
+ of extensions that also work on MS-Windows.
During development, it became clear that there were other features
that should be available to extensions, which were also subsequently
@@ -28002,7 +28012,7 @@ Mechanism Outline::, for the details.
(1) The "symbols" are the variables and functions defined inside
`gawk'. Access to these symbols by code external to `gawk' loaded
-dynamically at runtime is problematic on Windows.
+dynamically at runtime is problematic on MS-Windows.

File: gawk.info, Node: Extension Other Design Decisions, Next: Extension Future Growth, Prev: Extension New Mechanism Goals, Up: Extension Design
@@ -28258,15 +28268,14 @@ like this: `""'.
Humans are used to working in decimal; i.e., base 10. In base 10,
numbers go from 0 to 9, and then "roll over" into the next column.
-(Remember grade school? 42 is 4 times 10 plus 2.)
+(Remember grade school? 42 = 4 x 10 + 2.)
There are other number bases though. Computers commonly use base 2
or "binary", base 8 or "octal", and base 16 or "hexadecimal". In
binary, each column represents two times the value in the column to its
right. Each column may contain either a 0 or a 1. Thus, binary 1010
-represents 1 times 8, plus 0 times 4, plus 1 times 2, plus 0 times 1,
-or decimal 10. Octal and hexadecimal are discussed more in *note
-Nondecimal-numbers::.
+represents (1 x 8) + (0 x 4) + (1 x 2) + (0 x 1), or decimal 10. Octal
+and hexadecimal are discussed more in *note Nondecimal-numbers::.
At the very lowest level, computers store values as groups of binary
digits, or "bits". Modern computers group bits into groups of eight,
@@ -28298,8 +28307,7 @@ Glossary
Action
A series of `awk' statements attached to a rule. If the rule's
pattern matches an input record, `awk' executes the rule's action.
- Actions are always enclosed in curly braces. (*Note Action
- Overview::.)
+ Actions are always enclosed in braces. (*Note Action Overview::.)
Amazing `awk' Assembler
Henry Spencer at the University of Toronto wrote a retargetable
@@ -28385,9 +28393,9 @@ Boolean Expression
Bourne Shell
The standard shell (`/bin/sh') on Unix and Unix-like systems,
- originally written by Steven R. Bourne. Many shells (Bash, `ksh',
- `pdksh', `zsh') are generally upwardly compatible with the Bourne
- shell.
+ originally written by Steven R. Bourne at Bell Laboratories. Many
+ shells (Bash, `ksh', `pdksh', `zsh') are generally upwardly
+ compatible with the Bourne shell.
Built-in Function
The `awk' language provides built-in functions that perform various
@@ -28408,7 +28416,8 @@ Built-in Variable
Variables::.)
Braces
- See "Curly Braces."
+ The characters `{' and `}'. Braces are used in `awk' for
+ delimiting actions, compound statements, and function bodies.
C
The system programming language that most GNU software is written
@@ -28429,8 +28438,8 @@ Character Set
ASCII (American Standard Code for Information Interchange). Many
European countries use an extension of ASCII known as ISO-8859-1
(ISO Latin-1). The Unicode character set (http://www.unicode.org)
- is becoming increasingly popular and standard, and is particularly
- widely used on GNU/Linux systems.
+ is increasingly popular and standard, and is particularly widely
+ used on GNU/Linux systems.
CHEM
A preprocessor for `pic' that reads descriptions of molecules and
@@ -28440,7 +28449,7 @@ CHEM
Cookie
A peculiar goodie, token, saying or remembrance produced by or
- presented to a program. (With thanks to Doug McIlroy.)
+ presented to a program. (With thanks to Professor Doug McIlroy.)
Coprocess
A subordinate program with which two-way communications is
@@ -28475,8 +28484,7 @@ Comparison Expression
process. (*Note Typing and Comparison::.)
Curly Braces
- The characters `{' and `}'. Curly braces are used in `awk' for
- delimiting actions, compound statements, and function bodies.
+ See "Braces."
Dark Corner
An area in the language where specifications often were (or still
@@ -28516,8 +28524,8 @@ Dynamic Regular Expression
(*Note Computed Regexps::.)
Environment
- A collection of strings, of the form NAME`='`val', that each
- program has available to it. Users generally place values into the
+ A collection of strings, of the form `NAME=VAL', that each program
+ has available to it. Users generally place values into the
environment in order to provide information to various programs.
Typical examples are the environment variables `HOME' and `PATH'.
@@ -28567,11 +28575,11 @@ Floating-Point Number
See also "Double Precision" and "Single Precision."
Format
- Format strings are used to control the appearance of output in the
- `strftime()' and `sprintf()' functions, and are used in the
- `printf' statement as well. Also, data conversions from numbers
- to strings are controlled by the format strings contained in the
- built-in variables `CONVFMT' and `OFMT'. (*Note Control Letters::.)
+ Format strings control the appearance of output in the
+ `strftime()' and `sprintf()' functions, and in the `printf'
+ statement as well. Also, data conversions from numbers to strings
+ are controlled by the format strings contained in the built-in
+ variables `CONVFMT' and `OFMT'. (*Note Control Letters::.)
Free Documentation License
This document describes the terms under which this Info file is
@@ -28626,8 +28634,8 @@ Hexadecimal
Base 16 notation, where the digits are `0'-`9' and `A'-`F', with
`A' representing 10, `B' representing 11, and so on, up to `F' for
15. Hexadecimal numbers are written in C using a leading `0x', to
- indicate their base. Thus, `0x12' is 18 (1 times 16 plus 2).
- *Note Nondecimal-numbers::.
+ indicate their base. Thus, `0x12' is 18 ((1 x 16) + 2). *Note
+ Nondecimal-numbers::.
I/O
Abbreviation for "Input/Output," the act of moving data into and/or
@@ -28684,7 +28692,7 @@ Keyword
`gawk''s keywords are: `BEGIN', `BEGINFILE', `END', `ENDFILE',
`break', `case', `continue', `default' `delete', `do...while',
`else', `exit', `for...in', `for', `function', `func', `if',
- `nextfile', `next', `switch', and `while'.
+ `next', `nextfile', `switch', and `while'.
Lesser General Public License
This document describes the terms under which binary library
@@ -28740,11 +28748,7 @@ Number
Octal
Base-eight notation, where the digits are `0'-`7'. Octal numbers
are written in C using a leading `0', to indicate their base.
- Thus, `013' is 11 (one times 8 plus 3). *Note
- Nondecimal-numbers::.
-
-P1003.1
- See "POSIX."
+ Thus, `013' is 11 ((1 x 8) + 3). *Note Nondecimal-numbers::.
Pattern
Patterns tell `awk' which input records are interesting to which
@@ -28785,9 +28789,9 @@ Range (of input lines)
specify single lines. (*Note Pattern Overview::.)
Recursion
- When a function calls itself, either directly or indirectly. As
- long as this is not clear, refer to the entry for "recursion." If
- this is clear, stop, and proceed to the next entry.
+ When a function calls itself, either directly or indirectly. If
+ this is clear, stop, and proceed to the next entry. Otherwise,
+ refer to the entry for "recursion."
Redirection
Redirection means performing input from something other than the
@@ -28868,8 +28872,8 @@ Single Precision
parts. Single precision numbers keep track of fewer digits than
do double precision numbers, but operations on them are sometimes
less expensive in terms of CPU time. This is the type used by
- some very old versions of `awk' to store numeric values. It is
- the C type `float'.
+ some ancient versions of `awk' to store numeric values. It is the
+ C type `float'.
Space
The character generated by hitting the space bar on the keyboard.
@@ -28903,7 +28907,7 @@ Text Domain
Timestamp
A value in the "seconds since the epoch" format used by Unix and
POSIX systems. Used for the `gawk' functions `mktime()',
- `strftime()', and `systime()'. See also "Epoch" and "UTC."
+ `strftime()', and `systime()'. See also "Epoch," "GMT," and "UTC."
Unix
A computer operating system originally developed in the early
@@ -30418,7 +30422,7 @@ Index
* actions, control statements in: Statements. (line 6)
* actions, default: Very Simple. (line 34)
* actions, empty: Very Simple. (line 39)
-* Ada programming language: Glossary. (line 20)
+* Ada programming language: Glossary. (line 19)
* adding, features to gawk: Adding Code. (line 6)
* adding, fields: Changing Fields. (line 53)
* advanced features, fixed-width data: Constant Size. (line 10)
@@ -30437,8 +30441,8 @@ Index
* allocating memory for extensions: Memory Allocation Functions.
(line 6)
* Alpha (DEC): Manual History. (line 28)
-* amazing awk assembler (aaa): Glossary. (line 12)
-* amazingly workable formatter (awf): Glossary. (line 25)
+* amazing awk assembler (aaa): Glossary. (line 11)
+* amazingly workable formatter (awf): Glossary. (line 24)
* ambiguity, syntactic: /= operator vs. /=.../ regexp constant: Assignment Ops.
(line 148)
* ampersand (&), && operator <1>: Precedence. (line 86)
@@ -30450,7 +30454,7 @@ Index
* and: Bitwise Functions. (line 39)
* AND bitwise operation: Bitwise Functions. (line 6)
* and Boolean-logic operator: Boolean Ops. (line 6)
-* ANSI: Glossary. (line 35)
+* ANSI: Glossary. (line 34)
* API informational variables: Extension API Informational Variables.
(line 6)
* API version: Extension Versioning.
@@ -30556,7 +30560,7 @@ Index
* asterisk (*), *= operator: Assignment Ops. (line 130)
* atan2: Numeric Functions. (line 11)
* automatic displays, in debugger: Debugger Info. (line 24)
-* awf (amazingly workable formatter) program: Glossary. (line 25)
+* awf (amazingly workable formatter) program: Glossary. (line 24)
* awk debugging, enabling: Options. (line 108)
* awk language, POSIX version: Assignment Ops. (line 137)
* awk profiling, enabling: Options. (line 242)
@@ -30777,9 +30781,9 @@ Index
* Brink, Jeroen: DOS Quoting. (line 10)
* Broder, Alan J.: Contributors. (line 88)
* Brown, Martin: Contributors. (line 82)
-* BSD-based operating systems: Glossary. (line 616)
+* BSD-based operating systems: Glossary. (line 611)
* 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 70)
@@ -30898,7 +30902,7 @@ Index
* common extensions, RS as a regexp: gawk split records. (line 6)
* common extensions, single character fields: Single Character Fields.
(line 6)
-* comp.lang.awk newsgroup: Bugs. (line 38)
+* comp.lang.awk newsgroup: Bugs. (line 39)
* comparison expressions: Typing and Comparison.
(line 9)
* comparison expressions, as patterns: Expression Patterns. (line 14)
@@ -30985,7 +30989,7 @@ Index
* cut.awk program: Cut Program. (line 45)
* d debugger command (alias for delete): Breakpoint Control. (line 64)
* d.c., See dark corner: Conventions. (line 38)
-* dark corner <1>: Glossary. (line 189)
+* dark corner <1>: Glossary. (line 188)
* dark corner: Conventions. (line 38)
* dark corner, "0" is actually true: Truth Values. (line 24)
* dark corner, /= operator vs. /=.../ regexp constant: Assignment Ops.
@@ -31156,7 +31160,7 @@ Index
* decimal point character, locale specific: Options. (line 270)
* 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)
@@ -31328,7 +31332,7 @@ Index
* environment variables used by gawk: Environment Variables.
(line 6)
* environment variables, in ENVIRON array: Auto-set. (line 60)
-* epoch, definition of: Glossary. (line 235)
+* epoch, definition of: Glossary. (line 234)
* equals sign (=), = operator: Assignment Ops. (line 6)
* equals sign (=), == operator <1>: Precedence. (line 65)
* equals sign (=), == operator: Comparison Operators.
@@ -31574,10 +31578,10 @@ Index
* frame debugger command: Execution Stack. (line 25)
* Free Documentation License (FDL): GNU Free Documentation License.
(line 7)
-* Free Software Foundation (FSF) <1>: Glossary. (line 297)
+* Free Software Foundation (FSF) <1>: Glossary. (line 296)
* Free Software Foundation (FSF) <2>: Getting. (line 10)
* Free Software Foundation (FSF): Manual History. (line 6)
-* FreeBSD: Glossary. (line 616)
+* FreeBSD: Glossary. (line 611)
* FS variable <1>: User-modified. (line 50)
* FS variable: Field Separators. (line 15)
* FS variable, --field-separator option and: Options. (line 21)
@@ -31591,7 +31595,7 @@ Index
* FS, containing ^: Regexp Field Splitting.
(line 59)
* FS, in multiline records: Multiple Line. (line 41)
-* FSF (Free Software Foundation) <1>: Glossary. (line 297)
+* FSF (Free Software Foundation) <1>: Glossary. (line 296)
* FSF (Free Software Foundation) <2>: Getting. (line 10)
* FSF (Free Software Foundation): Manual History. (line 6)
* fts() extension function: Extension Sample File Functions.
@@ -31654,7 +31658,7 @@ Index
* gawk, break statement in: Break Statement. (line 51)
* gawk, built-in variables and: Built-in Variables. (line 14)
* gawk, character classes and: Bracket Expressions. (line 90)
-* gawk, coding style in: Adding Code. (line 38)
+* gawk, coding style in: Adding Code. (line 39)
* gawk, command-line options, and regular expressions: GNU Regexp Operators.
(line 70)
* gawk, comparison operators and: Comparison Operators.
@@ -31740,7 +31744,7 @@ Index
(line 63)
* gawkextlib: gawkextlib. (line 6)
* gawkextlib project: gawkextlib. (line 6)
-* General Public License (GPL): Glossary. (line 306)
+* General Public License (GPL): Glossary. (line 305)
* General Public License, See GPL: Manual History. (line 11)
* generate time values: Time Functions. (line 25)
* gensub <1>: String Functions. (line 89)
@@ -31788,29 +31792,29 @@ Index
* gettext() function (C library): Explaining gettext. (line 63)
* gettimeofday() extension function: Extension Sample Time.
(line 12)
-* git utility <1>: Adding Code. (line 111)
+* git utility <1>: Adding Code. (line 112)
* git utility <2>: Accessing The Source.
(line 10)
* git utility <3>: Other Versions. (line 29)
* git utility: gawkextlib. (line 29)
-* git, use of for gawk source code: Derived Files. (line 6)
+* Git, use of for gawk source code: Derived Files. (line 6)
* GMP: Gawk and MPFR. (line 6)
* GNITS mailing list: Acknowledgments. (line 52)
* GNU awk, See gawk: Preface. (line 53)
* GNU Free Documentation License: GNU Free Documentation License.
(line 7)
-* GNU General Public License: Glossary. (line 306)
-* GNU Lesser General Public License: Glossary. (line 397)
+* GNU General Public License: Glossary. (line 305)
+* GNU Lesser General Public License: Glossary. (line 396)
* GNU long options <1>: Options. (line 6)
* GNU long options: Command Line. (line 13)
* GNU long options, printing list of: Options. (line 154)
-* GNU Project <1>: Glossary. (line 315)
+* GNU Project <1>: Glossary. (line 314)
* GNU Project: Manual History. (line 11)
-* GNU/Linux <1>: Glossary. (line 616)
+* GNU/Linux <1>: Glossary. (line 611)
* GNU/Linux <2>: I18N Example. (line 55)
* GNU/Linux: Manual History. (line 28)
* Gordon, Assaf: Contributors. (line 105)
-* GPL (General Public License) <1>: Glossary. (line 306)
+* GPL (General Public License) <1>: Glossary. (line 305)
* GPL (General Public License): Manual History. (line 11)
* GPL (General Public License), printing: Options. (line 88)
* grcat program: Group Functions. (line 16)
@@ -31866,8 +31870,8 @@ Index
(line 53)
* IGNORECASE variable, with ~ and !~ operators: Case-sensitivity.
(line 26)
-* Illumos: Other Versions. (line 104)
-* Illumos, POSIX-compliant awk: Other Versions. (line 104)
+* Illumos: Other Versions. (line 105)
+* Illumos, POSIX-compliant awk: Other Versions. (line 105)
* implementation issues, gawk: Notes. (line 6)
* implementation issues, gawk, debugging: Compatibility Mode. (line 6)
* implementation issues, gawk, limits <1>: Redirection. (line 135)
@@ -31943,21 +31947,21 @@ Index
* internationalization, localization, portability and: I18N Portability.
(line 6)
* internationalizing a program: Explaining gettext. (line 6)
-* interpreted programs <1>: Glossary. (line 357)
+* interpreted programs <1>: Glossary. (line 356)
* interpreted programs: Basic High Level. (line 15)
* interval expressions, regexp operator: Regexp Operators. (line 117)
* inventory-shipped file: Sample Data Files. (line 32)
* invoke shell command: I/O Functions. (line 75)
* isarray: Type Functions. (line 11)
-* ISO: Glossary. (line 368)
+* ISO: Glossary. (line 367)
* ISO 8859-1: Glossary. (line 133)
* ISO Latin-1: Glossary. (line 133)
* Jacobs, Andrew: Passwd Functions. (line 90)
* Jaegermann, Michal <1>: Contributors. (line 45)
* Jaegermann, Michal: Acknowledgments. (line 60)
-* Java implementation of awk: Other Versions. (line 112)
-* Java programming language: Glossary. (line 380)
-* jawk: Other Versions. (line 112)
+* Java implementation of awk: Other Versions. (line 113)
+* Java programming language: Glossary. (line 379)
+* jawk: Other Versions. (line 113)
* Jedi knights: Undocumented. (line 6)
* Johansen, Chris: Signature Program. (line 25)
* join() user-defined function: Join Function. (line 18)
@@ -31966,7 +31970,7 @@ Index
* Kasal, Stepan: Acknowledgments. (line 60)
* Kenobi, Obi-Wan: Undocumented. (line 6)
* Kernighan, Brian <1>: Glossary. (line 143)
-* Kernighan, Brian <2>: Basic Data Typing. (line 55)
+* Kernighan, Brian <2>: Basic Data Typing. (line 54)
* Kernighan, Brian <3>: Other Versions. (line 13)
* Kernighan, Brian <4>: Contributors. (line 11)
* Kernighan, Brian <5>: BTL. (line 6)
@@ -32009,9 +32013,9 @@ Index
* length: String Functions. (line 167)
* length of input record: String Functions. (line 174)
* length of string: String Functions. (line 167)
-* Lesser General Public License (LGPL): Glossary. (line 397)
-* LGPL (Lesser General Public License): Glossary. (line 397)
-* libmawk: Other Versions. (line 120)
+* Lesser General Public License (LGPL): Glossary. (line 396)
+* LGPL (Lesser General Public License): Glossary. (line 396)
+* libmawk: Other Versions. (line 121)
* libraries of awk functions: Library Functions. (line 6)
* libraries of awk functions, assertions: Assert Function. (line 6)
* libraries of awk functions, associative arrays and: Library Names.
@@ -32055,7 +32059,7 @@ Index
* lint checking, undefined functions: Pass By Value/Reference.
(line 88)
* LINT variable: User-modified. (line 88)
-* Linux <1>: Glossary. (line 616)
+* Linux <1>: Glossary. (line 611)
* Linux <2>: I18N Example. (line 55)
* Linux: Manual History. (line 28)
* list all global variables, in debugger: Debugger Info. (line 48)
@@ -32093,7 +32097,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)
* mark parity: Ordinal Functions. (line 45)
* marked string extraction (internationalization): String Extraction.
@@ -32114,6 +32118,7 @@ Index
* mawk utility <4>: Getline/Pipe. (line 62)
* mawk utility: Escape Sequences. (line 124)
* maximum precision supported by MPFR library: Auto-set. (line 221)
+* McIlroy, Doug: Glossary. (line 149)
* McPhee, Patrick: Contributors. (line 100)
* message object files: Explaining gettext. (line 42)
* message object files, converting from portable object files: I18N Example.
@@ -32146,7 +32151,7 @@ Index
* namespace issues, functions: Definition Syntax. (line 20)
* nawk utility: Names. (line 10)
* negative zero: Unexpected Results. (line 34)
-* NetBSD: Glossary. (line 616)
+* NetBSD: Glossary. (line 611)
* networks, programming: TCP/IP Networking. (line 6)
* networks, support for: Special Network. (line 6)
* newlines <1>: Boolean Ops. (line 67)
@@ -32235,7 +32240,7 @@ Index
* OFS variable <1>: User-modified. (line 114)
* OFS variable <2>: Output Separators. (line 6)
* OFS variable: Changing Fields. (line 64)
-* OpenBSD: Glossary. (line 616)
+* OpenBSD: Glossary. (line 611)
* OpenSolaris: Other Versions. (line 96)
* operating systems, BSD-based: Manual History. (line 28)
* operating systems, PC, gawk on: PC Using. (line 6)
@@ -32304,7 +32309,6 @@ Index
* output, standard: Special FD. (line 6)
* p debugger command (alias for print): Viewing And Changing Data.
(line 36)
-* P1003.1 POSIX standard: Glossary. (line 454)
* parent process ID of gawk process: Auto-set. (line 189)
* parentheses (), in a profile: Profiling. (line 146)
* parentheses (), regexp operator: Regexp Operators. (line 80)
@@ -32322,7 +32326,7 @@ Index
* patterns, types of: Pattern Overview. (line 15)
* pawk (profiling version of Brian Kernighan's awk): Other Versions.
(line 78)
-* pawk, awk-like facilities for Python: Other Versions. (line 124)
+* pawk, awk-like facilities for Python: Other Versions. (line 125)
* PC operating systems, gawk on: PC Using. (line 6)
* PC operating systems, gawk on, installing: PC Installation. (line 6)
* percent sign (%), % operator: Precedence. (line 55)
@@ -32336,7 +32340,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)
@@ -32505,22 +32509,22 @@ Index
* programming conventions, private variable names: Library Names.
(line 23)
* programming language, recipe for: History. (line 6)
-* programming languages, Ada: Glossary. (line 20)
+* programming languages, Ada: Glossary. (line 19)
* programming languages, data-driven vs. procedural: Getting Started.
(line 12)
-* programming languages, Java: Glossary. (line 380)
+* programming languages, Java: Glossary. (line 379)
* programming, basic steps: Basic High Level. (line 20)
* programming, concepts: Basic Concepts. (line 6)
* pwcat program: Passwd Functions. (line 23)
* q debugger command (alias for quit): Miscellaneous Debugger Commands.
(line 99)
-* QSE Awk: Other Versions. (line 130)
+* QSE Awk: Other Versions. (line 131)
* Quanstrom, Erik: Alarm Program. (line 8)
* question mark (?), ?: operator: Precedence. (line 92)
* question mark (?), regexp operator <1>: GNU Regexp Operators.
(line 59)
* question mark (?), regexp operator: Regexp Operators. (line 112)
-* QuikTrim Awk: Other Versions. (line 134)
+* QuikTrim Awk: Other Versions. (line 135)
* quit debugger command: Miscellaneous Debugger Commands.
(line 99)
* QUIT signal (MS-Windows): Profiling. (line 214)
@@ -32541,7 +32545,7 @@ Index
* range expressions (regexps): Bracket Expressions. (line 6)
* range patterns: Ranges. (line 6)
* range patterns, line continuation and: Ranges. (line 65)
-* Rankin, Pat <1>: Bugs. (line 70)
+* Rankin, Pat <1>: Bugs. (line 71)
* Rankin, Pat <2>: Contributors. (line 37)
* Rankin, Pat <3>: Assignment Ops. (line 100)
* Rankin, Pat: Acknowledgments. (line 60)
@@ -32646,7 +32650,7 @@ Index
* right angle bracket (>), >> operator (I/O): Redirection. (line 50)
* right shift: Bitwise Functions. (line 52)
* right shift, bitwise: Bitwise Functions. (line 32)
-* Ritchie, Dennis: Basic Data Typing. (line 55)
+* Ritchie, Dennis: Basic Data Typing. (line 54)
* RLENGTH variable: Auto-set. (line 252)
* RLENGTH variable, match() function and: String Functions. (line 224)
* Robbins, Arnold <1>: Future Extensions. (line 6)
@@ -32714,7 +32718,7 @@ Index
* search paths, for source files: AWKPATH Variable. (line 6)
* searching, files for regular expressions: Egrep Program. (line 6)
* searching, for words: Dupword Program. (line 6)
-* sed utility <1>: Glossary. (line 12)
+* sed utility <1>: Glossary. (line 11)
* sed utility <2>: Simple Sed. (line 6)
* sed utility: Field Splitting Summary.
(line 46)
@@ -32850,19 +32854,19 @@ Index
* source code, Brian Kernighan's awk: Other Versions. (line 13)
* source code, Busybox Awk: Other Versions. (line 88)
* source code, gawk: Gawk Distribution. (line 6)
-* source code, Illumos awk: Other Versions. (line 104)
-* source code, jawk: Other Versions. (line 112)
-* source code, libmawk: Other Versions. (line 120)
+* source code, Illumos awk: Other Versions. (line 105)
+* source code, jawk: Other Versions. (line 113)
+* source code, libmawk: Other Versions. (line 121)
* source code, mawk: Other Versions. (line 44)
* source code, mixing: Options. (line 117)
* source code, pawk: Other Versions. (line 78)
-* source code, pawk (Python version): Other Versions. (line 124)
-* source code, QSE Awk: Other Versions. (line 130)
-* source code, QuikTrim Awk: Other Versions. (line 134)
+* source code, pawk (Python version): Other Versions. (line 125)
+* source code, QSE Awk: Other Versions. (line 131)
+* source code, QuikTrim Awk: Other Versions. (line 135)
* source code, Solaris awk: Other Versions. (line 96)
* source files, search path for: Igawk Program. (line 368)
* sparse arrays: Array Intro. (line 71)
-* Spencer, Henry: Glossary. (line 12)
+* Spencer, Henry: Glossary. (line 11)
* split: String Functions. (line 313)
* split string into array: String Functions. (line 294)
* split utility: Split Program. (line 6)
@@ -32878,7 +32882,7 @@ Index
* square root: Numeric Functions. (line 78)
* srand: Numeric Functions. (line 82)
* stack frame: Debugging Terms. (line 10)
-* Stallman, Richard <1>: Glossary. (line 297)
+* Stallman, Richard <1>: Glossary. (line 296)
* Stallman, Richard <2>: Contributors. (line 23)
* Stallman, Richard <3>: Acknowledgments. (line 18)
* Stallman, Richard: Manual History. (line 6)
@@ -32967,7 +32971,7 @@ Index
* testbits.awk program: Bitwise Functions. (line 70)
* testext extension: Extension Sample API Tests.
(line 6)
-* Texinfo <1>: Adding Code. (line 99)
+* Texinfo <1>: Adding Code. (line 100)
* Texinfo <2>: Distribution contents.
(line 77)
* Texinfo <3>: Extract Program. (line 12)
@@ -33071,7 +33075,7 @@ Index
(line 6)
* uniq utility: Uniq Program. (line 6)
* uniq.awk program: Uniq Program. (line 65)
-* Unix: Glossary. (line 616)
+* Unix: Glossary. (line 611)
* Unix awk, backslashes in escape sequences: Escape Sequences.
(line 124)
* Unix awk, close() function and: Close Files And Pipes.
@@ -33185,7 +33189,7 @@ Index
* xor: Bitwise Functions. (line 55)
* XOR bitwise operation: Bitwise Functions. (line 6)
* Yawitz, Efraim: Contributors. (line 129)
-* Zaretskii, Eli <1>: Bugs. (line 70)
+* Zaretskii, Eli <1>: Bugs. (line 71)
* Zaretskii, Eli <2>: Contributors. (line 55)
* Zaretskii, Eli: Acknowledgments. (line 60)
* zero, negative vs. positive: Unexpected Results. (line 34)
@@ -33219,536 +33223,537 @@ Index

Tag Table:
Node: Top1292
-Node: Foreword40832
-Node: Preface45177
-Ref: Preface-Footnote-148324
-Ref: Preface-Footnote-248431
-Node: History48663
-Node: Names51037
-Ref: Names-Footnote-152501
-Node: This Manual52574
-Ref: This Manual-Footnote-158353
-Node: Conventions58453
-Node: Manual History60609
-Ref: Manual History-Footnote-164040
-Ref: Manual History-Footnote-264081
-Node: How To Contribute64155
-Node: Acknowledgments65394
-Node: Getting Started69543
-Node: Running gawk71922
-Node: One-shot73112
-Node: Read Terminal74337
-Ref: Read Terminal-Footnote-175987
-Ref: Read Terminal-Footnote-276263
-Node: Long76434
-Node: Executable Scripts77810
-Ref: Executable Scripts-Footnote-179643
-Ref: Executable Scripts-Footnote-279745
-Node: Comments80292
-Node: Quoting82759
-Node: DOS Quoting88075
-Node: Sample Data Files88750
-Node: Very Simple91265
-Node: Two Rules95915
-Node: More Complex97810
-Ref: More Complex-Footnote-1100742
-Node: Statements/Lines100827
-Ref: Statements/Lines-Footnote-1105282
-Node: Other Features105547
-Node: When106475
-Node: Invoking Gawk108623
-Node: Command Line110086
-Node: Options110877
-Ref: Options-Footnote-1126689
-Node: Other Arguments126714
-Node: Naming Standard Input129376
-Node: Environment Variables130470
-Node: AWKPATH Variable131028
-Ref: AWKPATH Variable-Footnote-1133806
-Ref: AWKPATH Variable-Footnote-2133851
-Node: AWKLIBPATH Variable134111
-Node: Other Environment Variables134870
-Node: Exit Status138525
-Node: Include Files139200
-Node: Loading Shared Libraries142778
-Node: Obsolete144161
-Node: Undocumented144858
-Node: Regexp145100
-Node: Regexp Usage146489
-Node: Escape Sequences148522
-Node: Regexp Operators154189
-Ref: Regexp Operators-Footnote-1161669
-Ref: Regexp Operators-Footnote-2161816
-Node: Bracket Expressions161914
-Ref: table-char-classes163804
-Node: GNU Regexp Operators166327
-Node: Case-sensitivity170050
-Ref: Case-sensitivity-Footnote-1172942
-Ref: Case-sensitivity-Footnote-2173177
-Node: Leftmost Longest173285
-Node: Computed Regexps174486
-Node: Reading Files177835
-Node: Records179837
-Node: awk split records180572
-Node: gawk split records185430
-Ref: gawk split records-Footnote-1189951
-Node: Fields189988
-Ref: Fields-Footnote-1192952
-Node: Nonconstant Fields193038
-Ref: Nonconstant Fields-Footnote-1195268
-Node: Changing Fields195470
-Node: Field Separators201424
-Node: Default Field Splitting204126
-Node: Regexp Field Splitting205243
-Node: Single Character Fields208584
-Node: Command Line Field Separator209643
-Node: Full Line Fields212985
-Ref: Full Line Fields-Footnote-1213493
-Node: Field Splitting Summary213539
-Ref: Field Splitting Summary-Footnote-1216638
-Node: Constant Size216739
-Node: Splitting By Content221346
-Ref: Splitting By Content-Footnote-1225096
-Node: Multiple Line225136
-Ref: Multiple Line-Footnote-1230992
-Node: Getline231171
-Node: Plain Getline233387
-Node: Getline/Variable235482
-Node: Getline/File236629
-Node: Getline/Variable/File238013
-Ref: Getline/Variable/File-Footnote-1239612
-Node: Getline/Pipe239699
-Node: Getline/Variable/Pipe242398
-Node: Getline/Coprocess243505
-Node: Getline/Variable/Coprocess244757
-Node: Getline Notes245494
-Node: Getline Summary248298
-Ref: table-getline-variants248706
-Node: Read Timeout249618
-Ref: Read Timeout-Footnote-1253445
-Node: Command line directories253503
-Node: Printing254385
-Node: Print256016
-Node: Print Examples257357
-Node: Output Separators260136
-Node: OFMT262152
-Node: Printf263510
-Node: Basic Printf264416
-Node: Control Letters265955
-Node: Format Modifiers269809
-Node: Printf Examples275836
-Node: Redirection278543
-Node: Special Files285515
-Node: Special FD286048
-Ref: Special FD-Footnote-1289672
-Node: Special Network289746
-Node: Special Caveats290596
-Node: Close Files And Pipes291392
-Ref: Close Files And Pipes-Footnote-1298530
-Ref: Close Files And Pipes-Footnote-2298678
-Node: Expressions298828
-Node: Values299960
-Node: Constants300636
-Node: Scalar Constants301316
-Ref: Scalar Constants-Footnote-1302175
-Node: Nondecimal-numbers302425
-Node: Regexp Constants305425
-Node: Using Constant Regexps305900
-Node: Variables308970
-Node: Using Variables309625
-Node: Assignment Options311349
-Node: Conversion313224
-Ref: table-locale-affects318660
-Ref: Conversion-Footnote-1319284
-Node: All Operators319393
-Node: Arithmetic Ops320023
-Node: Concatenation322528
-Ref: Concatenation-Footnote-1325324
-Node: Assignment Ops325444
-Ref: table-assign-ops330427
-Node: Increment Ops331744
-Node: Truth Values and Conditions335182
-Node: Truth Values336265
-Node: Typing and Comparison337314
-Node: Variable Typing338107
-Ref: Variable Typing-Footnote-1342007
-Node: Comparison Operators342129
-Ref: table-relational-ops342539
-Node: POSIX String Comparison346087
-Ref: POSIX String Comparison-Footnote-1347171
-Node: Boolean Ops347309
-Ref: Boolean Ops-Footnote-1351379
-Node: Conditional Exp351470
-Node: Function Calls353197
-Node: Precedence356955
-Node: Locales360624
-Node: Patterns and Actions362227
-Node: Pattern Overview363281
-Node: Regexp Patterns364958
-Node: Expression Patterns365501
-Node: Ranges369282
-Node: BEGIN/END372388
-Node: Using BEGIN/END373150
-Ref: Using BEGIN/END-Footnote-1375886
-Node: I/O And BEGIN/END375992
-Node: BEGINFILE/ENDFILE378277
-Node: Empty381208
-Node: Using Shell Variables381525
-Node: Action Overview383808
-Node: Statements386159
-Node: If Statement388013
-Node: While Statement389516
-Node: Do Statement391560
-Node: For Statement392716
-Node: Switch Statement395868
-Node: Break Statement397971
-Node: Continue Statement400026
-Node: Next Statement401819
-Node: Nextfile Statement404209
-Node: Exit Statement406864
-Node: Built-in Variables409268
-Node: User-modified410364
-Ref: User-modified-Footnote-1418049
-Node: Auto-set418111
-Ref: Auto-set-Footnote-1431013
-Ref: Auto-set-Footnote-2431218
-Node: ARGC and ARGV431274
-Node: Arrays435128
-Node: Array Basics436626
-Node: Array Intro437452
-Ref: figure-array-elements439425
-Node: Reference to Elements441832
-Node: Assigning Elements444105
-Node: Array Example444596
-Node: Scanning an Array446328
-Node: Controlling Scanning449343
-Ref: Controlling Scanning-Footnote-1454516
-Node: Delete454832
-Ref: Delete-Footnote-1457597
-Node: Numeric Array Subscripts457654
-Node: Uninitialized Subscripts459837
-Node: Multidimensional461462
-Node: Multiscanning464555
-Node: Arrays of Arrays466144
-Node: Functions470784
-Node: Built-in471603
-Node: Calling Built-in472681
-Node: Numeric Functions474669
-Ref: Numeric Functions-Footnote-1478503
-Ref: Numeric Functions-Footnote-2478860
-Ref: Numeric Functions-Footnote-3478908
-Node: String Functions479177
-Ref: String Functions-Footnote-1502188
-Ref: String Functions-Footnote-2502317
-Ref: String Functions-Footnote-3502565
-Node: Gory Details502652
-Ref: table-sub-escapes504321
-Ref: table-sub-posix-92505675
-Ref: table-sub-proposed507026
-Ref: table-posix-sub508380
-Ref: table-gensub-escapes509925
-Ref: Gory Details-Footnote-1511101
-Ref: Gory Details-Footnote-2511152
-Node: I/O Functions511303
-Ref: I/O Functions-Footnote-1518426
-Node: Time Functions518573
-Ref: Time Functions-Footnote-1529037
-Ref: Time Functions-Footnote-2529105
-Ref: Time Functions-Footnote-3529263
-Ref: Time Functions-Footnote-4529374
-Ref: Time Functions-Footnote-5529486
-Ref: Time Functions-Footnote-6529713
-Node: Bitwise Functions529979
-Ref: table-bitwise-ops530541
-Ref: Bitwise Functions-Footnote-1534786
-Node: Type Functions534970
-Node: I18N Functions536112
-Node: User-defined537757
-Node: Definition Syntax538561
-Ref: Definition Syntax-Footnote-1543486
-Node: Function Example543555
-Ref: Function Example-Footnote-1546199
-Node: Function Caveats546221
-Node: Calling A Function546739
-Node: Variable Scope547694
-Node: Pass By Value/Reference550682
-Node: Return Statement554190
-Node: Dynamic Typing557174
-Node: Indirect Calls558103
-Node: Library Functions567790
-Ref: Library Functions-Footnote-1571303
-Ref: Library Functions-Footnote-2571446
-Node: Library Names571617
-Ref: Library Names-Footnote-1575090
-Ref: Library Names-Footnote-2575310
-Node: General Functions575396
-Node: Strtonum Function576424
-Node: Assert Function579354
-Node: Round Function582680
-Node: Cliff Random Function584221
-Node: Ordinal Functions585237
-Ref: Ordinal Functions-Footnote-1588314
-Ref: Ordinal Functions-Footnote-2588566
-Node: Join Function588777
-Ref: Join Function-Footnote-1590548
-Node: Getlocaltime Function590748
-Node: Readfile Function594484
-Node: Data File Management596323
-Node: Filetrans Function596955
-Node: Rewind Function601024
-Node: File Checking602411
-Ref: File Checking-Footnote-1603543
-Node: Empty Files603744
-Node: Ignoring Assigns605974
-Node: Getopt Function607528
-Ref: Getopt Function-Footnote-1618831
-Node: Passwd Functions619034
-Ref: Passwd Functions-Footnote-1628013
-Node: Group Functions628101
-Ref: Group Functions-Footnote-1636043
-Node: Walking Arrays636256
-Node: Sample Programs638392
-Node: Running Examples639066
-Node: Clones639794
-Node: Cut Program641018
-Node: Egrep Program650871
-Ref: Egrep Program-Footnote-1658842
-Node: Id Program658952
-Node: Split Program662616
-Ref: Split Program-Footnote-1666154
-Node: Tee Program666282
-Node: Uniq Program669089
-Node: Wc Program676519
-Ref: Wc Program-Footnote-1680787
-Ref: Wc Program-Footnote-2680987
-Node: Miscellaneous Programs681079
-Node: Dupword Program682267
-Node: Alarm Program684298
-Node: Translate Program689105
-Ref: Translate Program-Footnote-1693496
-Ref: Translate Program-Footnote-2693766
-Node: Labels Program693900
-Ref: Labels Program-Footnote-1697271
-Node: Word Sorting697355
-Node: History Sorting701398
-Node: Extract Program703234
-Ref: Extract Program-Footnote-1710764
-Node: Simple Sed710893
-Node: Igawk Program713955
-Ref: Igawk Program-Footnote-1729130
-Ref: Igawk Program-Footnote-2729331
-Node: Anagram Program729469
-Node: Signature Program732537
-Node: Advanced Features733784
-Node: Nondecimal Data735670
-Node: Array Sorting737247
-Node: Controlling Array Traversal737944
-Node: Array Sorting Functions746224
-Ref: Array Sorting Functions-Footnote-1750131
-Node: Two-way I/O750325
-Ref: Two-way I/O-Footnote-1755841
-Node: TCP/IP Networking755923
-Node: Profiling758767
-Node: Internationalization766275
-Node: I18N and L10N767700
-Node: Explaining gettext768386
-Ref: Explaining gettext-Footnote-1773526
-Ref: Explaining gettext-Footnote-2773710
-Node: Programmer i18n773875
-Node: Translator i18n778100
-Node: String Extraction778894
-Ref: String Extraction-Footnote-1779855
-Node: Printf Ordering779941
-Ref: Printf Ordering-Footnote-1782723
-Node: I18N Portability782787
-Ref: I18N Portability-Footnote-1785236
-Node: I18N Example785299
-Ref: I18N Example-Footnote-1788021
-Node: Gawk I18N788093
-Node: Debugger788714
-Node: Debugging789685
-Node: Debugging Concepts790126
-Node: Debugging Terms791982
-Node: Awk Debugging794579
-Node: Sample Debugging Session795471
-Node: Debugger Invocation795991
-Node: Finding The Bug797324
-Node: List of Debugger Commands803806
-Node: Breakpoint Control805138
-Node: Debugger Execution Control808802
-Node: Viewing And Changing Data812162
-Node: Execution Stack815520
-Node: Debugger Info817033
-Node: Miscellaneous Debugger Commands821027
-Node: Readline Support826211
-Node: Limitations827103
-Node: Arbitrary Precision Arithmetic829351
-Ref: Arbitrary Precision Arithmetic-Footnote-1831000
-Node: General Arithmetic831148
-Node: Floating Point Issues832868
-Node: String Conversion Precision833749
-Ref: String Conversion Precision-Footnote-1835454
-Node: Unexpected Results835563
-Node: POSIX Floating Point Problems837716
-Ref: POSIX Floating Point Problems-Footnote-1841537
-Node: Integer Programming841575
-Node: Floating-point Programming843386
-Ref: Floating-point Programming-Footnote-1849714
-Ref: Floating-point Programming-Footnote-2849984
-Node: Floating-point Representation850248
-Node: Floating-point Context851413
-Ref: table-ieee-formats852252
-Node: Rounding Mode853636
-Ref: table-rounding-modes854115
-Ref: Rounding Mode-Footnote-1857130
-Node: Gawk and MPFR857309
-Node: Arbitrary Precision Floats858718
-Ref: Arbitrary Precision Floats-Footnote-1861161
-Node: Setting Precision861482
-Ref: table-predefined-precision-strings862166
-Node: Setting Rounding Mode864311
-Ref: table-gawk-rounding-modes864715
-Node: Floating-point Constants865902
-Node: Changing Precision867354
-Ref: Changing Precision-Footnote-1868746
-Node: Exact Arithmetic868920
-Node: Arbitrary Precision Integers872054
-Ref: Arbitrary Precision Integers-Footnote-1875069
-Node: Dynamic Extensions875216
-Node: Extension Intro876674
-Node: Plugin License877939
-Node: Extension Mechanism Outline878624
-Ref: figure-load-extension879048
-Ref: figure-load-new-function880533
-Ref: figure-call-new-function881535
-Node: Extension API Description883519
-Node: Extension API Functions Introduction884969
-Node: General Data Types889835
-Ref: General Data Types-Footnote-1895528
-Node: Requesting Values895827
-Ref: table-value-types-returned896564
-Node: Memory Allocation Functions897522
-Ref: Memory Allocation Functions-Footnote-1900268
-Node: Constructor Functions900364
-Node: Registration Functions902122
-Node: Extension Functions902807
-Node: Exit Callback Functions905109
-Node: Extension Version String906358
-Node: Input Parsers907008
-Node: Output Wrappers916811
-Node: Two-way processors921327
-Node: Printing Messages923530
-Ref: Printing Messages-Footnote-1924607
-Node: Updating `ERRNO'924759
-Node: Accessing Parameters925498
-Node: Symbol Table Access926728
-Node: Symbol table by name927242
-Node: Symbol table by cookie929218
-Ref: Symbol table by cookie-Footnote-1933351
-Node: Cached values933414
-Ref: Cached values-Footnote-1936919
-Node: Array Manipulation937010
-Ref: Array Manipulation-Footnote-1938108
-Node: Array Data Types938147
-Ref: Array Data Types-Footnote-1940850
-Node: Array Functions940942
-Node: Flattening Arrays944816
-Node: Creating Arrays951668
-Node: Extension API Variables956399
-Node: Extension Versioning957035
-Node: Extension API Informational Variables958936
-Node: Extension API Boilerplate960022
-Node: Finding Extensions963826
-Node: Extension Example964386
-Node: Internal File Description965116
-Node: Internal File Ops969207
-Ref: Internal File Ops-Footnote-1980753
-Node: Using Internal File Ops980893
-Ref: Using Internal File Ops-Footnote-1983240
-Node: Extension Samples983506
-Node: Extension Sample File Functions985030
-Node: Extension Sample Fnmatch992597
-Node: Extension Sample Fork994076
-Node: Extension Sample Inplace995289
-Node: Extension Sample Ord997067
-Node: Extension Sample Readdir997903
-Ref: table-readdir-file-types998758
-Node: Extension Sample Revout999557
-Node: Extension Sample Rev2way1000148
-Node: Extension Sample Read write array1000889
-Node: Extension Sample Readfile1002768
-Node: Extension Sample API Tests1003868
-Node: Extension Sample Time1004393
-Node: gawkextlib1005708
-Node: Language History1008489
-Node: V7/SVR3.11010083
-Node: SVR41012403
-Node: POSIX1013845
-Node: BTL1015231
-Node: POSIX/GNU1015965
-Node: Feature History1021564
-Node: Common Extensions1034676
-Node: Ranges and Locales1035988
-Ref: Ranges and Locales-Footnote-11040605
-Ref: Ranges and Locales-Footnote-21040632
-Ref: Ranges and Locales-Footnote-31040866
-Node: Contributors1041087
-Node: Installation1046438
-Node: Gawk Distribution1047332
-Node: Getting1047816
-Node: Extracting1048642
-Node: Distribution contents1050334
-Node: Unix Installation1056055
-Node: Quick Installation1056672
-Node: Additional Configuration Options1059118
-Node: Configuration Philosophy1060854
-Node: Non-Unix Installation1063208
-Node: PC Installation1063666
-Node: PC Binary Installation1064977
-Node: PC Compiling1066825
-Node: PC Testing1069785
-Node: PC Using1070961
-Node: Cygwin1075129
-Node: MSYS1075938
-Node: VMS Installation1076452
-Node: VMS Compilation1077248
-Ref: VMS Compilation-Footnote-11078500
-Node: VMS Dynamic Extensions1078558
-Node: VMS Installation Details1079931
-Node: VMS Running1082182
-Node: VMS GNV1085016
-Node: VMS Old Gawk1085739
-Node: Bugs1086209
-Node: Other Versions1090127
-Node: Notes1096211
-Node: Compatibility Mode1097011
-Node: Additions1097794
-Node: Accessing The Source1098721
-Node: Adding Code1100161
-Node: New Ports1106206
-Node: Derived Files1110341
-Ref: Derived Files-Footnote-11115662
-Ref: Derived Files-Footnote-21115696
-Ref: Derived Files-Footnote-31116296
-Node: Future Extensions1116394
-Node: Implementation Limitations1116977
-Node: Extension Design1118225
-Node: Old Extension Problems1119379
-Ref: Old Extension Problems-Footnote-11120887
-Node: Extension New Mechanism Goals1120944
-Ref: Extension New Mechanism Goals-Footnote-11124309
-Node: Extension Other Design Decisions1124495
-Node: Extension Future Growth1126601
-Node: Old Extension Mechanism1127437
-Node: Basic Concepts1129177
-Node: Basic High Level1129858
-Ref: figure-general-flow1130130
-Ref: figure-process-flow1130729
-Ref: Basic High Level-Footnote-11133958
-Node: Basic Data Typing1134143
-Node: Glossary1137498
-Node: Copying1162729
-Node: GNU Free Documentation License1200285
-Node: Index1225421
+Node: Foreword40830
+Node: Preface45175
+Ref: Preface-Footnote-148322
+Ref: Preface-Footnote-248429
+Node: History48661
+Node: Names51035
+Ref: Names-Footnote-152499
+Node: This Manual52572
+Ref: This Manual-Footnote-158351
+Node: Conventions58451
+Node: Manual History60607
+Ref: Manual History-Footnote-164038
+Ref: Manual History-Footnote-264079
+Node: How To Contribute64153
+Node: Acknowledgments65392
+Node: Getting Started69541
+Node: Running gawk71914
+Node: One-shot73104
+Node: Read Terminal74329
+Ref: Read Terminal-Footnote-175979
+Ref: Read Terminal-Footnote-276255
+Node: Long76426
+Node: Executable Scripts77802
+Ref: Executable Scripts-Footnote-179635
+Ref: Executable Scripts-Footnote-279737
+Node: Comments80284
+Node: Quoting82751
+Node: DOS Quoting88067
+Node: Sample Data Files88742
+Node: Very Simple91257
+Node: Two Rules95895
+Node: More Complex97790
+Ref: More Complex-Footnote-1100722
+Node: Statements/Lines100807
+Ref: Statements/Lines-Footnote-1105262
+Node: Other Features105527
+Node: When106455
+Node: Invoking Gawk108603
+Node: Command Line110066
+Node: Options110857
+Ref: Options-Footnote-1126669
+Node: Other Arguments126694
+Node: Naming Standard Input129356
+Node: Environment Variables130450
+Node: AWKPATH Variable131008
+Ref: AWKPATH Variable-Footnote-1133786
+Ref: AWKPATH Variable-Footnote-2133831
+Node: AWKLIBPATH Variable134091
+Node: Other Environment Variables134850
+Node: Exit Status138505
+Node: Include Files139180
+Node: Loading Shared Libraries142758
+Node: Obsolete144141
+Node: Undocumented144838
+Node: Regexp145080
+Node: Regexp Usage146469
+Node: Escape Sequences148502
+Node: Regexp Operators154169
+Ref: Regexp Operators-Footnote-1161649
+Ref: Regexp Operators-Footnote-2161796
+Node: Bracket Expressions161894
+Ref: table-char-classes163784
+Node: GNU Regexp Operators166307
+Node: Case-sensitivity170030
+Ref: Case-sensitivity-Footnote-1172922
+Ref: Case-sensitivity-Footnote-2173157
+Node: Leftmost Longest173265
+Node: Computed Regexps174466
+Node: Reading Files177815
+Node: Records179817
+Node: awk split records180552
+Node: gawk split records185410
+Ref: gawk split records-Footnote-1189931
+Node: Fields189968
+Ref: Fields-Footnote-1192932
+Node: Nonconstant Fields193018
+Ref: Nonconstant Fields-Footnote-1195248
+Node: Changing Fields195450
+Node: Field Separators201404
+Node: Default Field Splitting204106
+Node: Regexp Field Splitting205223
+Node: Single Character Fields208564
+Node: Command Line Field Separator209623
+Node: Full Line Fields212965
+Ref: Full Line Fields-Footnote-1213473
+Node: Field Splitting Summary213519
+Ref: Field Splitting Summary-Footnote-1216618
+Node: Constant Size216719
+Node: Splitting By Content221326
+Ref: Splitting By Content-Footnote-1225076
+Node: Multiple Line225116
+Ref: Multiple Line-Footnote-1230972
+Node: Getline231151
+Node: Plain Getline233367
+Node: Getline/Variable235462
+Node: Getline/File236609
+Node: Getline/Variable/File237993
+Ref: Getline/Variable/File-Footnote-1239592
+Node: Getline/Pipe239679
+Node: Getline/Variable/Pipe242378
+Node: Getline/Coprocess243485
+Node: Getline/Variable/Coprocess244737
+Node: Getline Notes245474
+Node: Getline Summary248278
+Ref: table-getline-variants248686
+Node: Read Timeout249598
+Ref: Read Timeout-Footnote-1253425
+Node: Command line directories253483
+Node: Printing254365
+Node: Print255996
+Node: Print Examples257337
+Node: Output Separators260116
+Node: OFMT262132
+Node: Printf263490
+Node: Basic Printf264396
+Node: Control Letters265935
+Node: Format Modifiers269789
+Node: Printf Examples275816
+Node: Redirection278523
+Node: Special Files285495
+Node: Special FD286028
+Ref: Special FD-Footnote-1289652
+Node: Special Network289726
+Node: Special Caveats290576
+Node: Close Files And Pipes291372
+Ref: Close Files And Pipes-Footnote-1298510
+Ref: Close Files And Pipes-Footnote-2298658
+Node: Expressions298808
+Node: Values299940
+Node: Constants300616
+Node: Scalar Constants301296
+Ref: Scalar Constants-Footnote-1302155
+Node: Nondecimal-numbers302405
+Node: Regexp Constants305405
+Node: Using Constant Regexps305880
+Node: Variables308950
+Node: Using Variables309605
+Node: Assignment Options311329
+Node: Conversion313204
+Ref: table-locale-affects318640
+Ref: Conversion-Footnote-1319264
+Node: All Operators319373
+Node: Arithmetic Ops320003
+Node: Concatenation322508
+Ref: Concatenation-Footnote-1325304
+Node: Assignment Ops325424
+Ref: table-assign-ops330407
+Node: Increment Ops331724
+Node: Truth Values and Conditions335162
+Node: Truth Values336245
+Node: Typing and Comparison337294
+Node: Variable Typing338087
+Ref: Variable Typing-Footnote-1341987
+Node: Comparison Operators342109
+Ref: table-relational-ops342519
+Node: POSIX String Comparison346067
+Ref: POSIX String Comparison-Footnote-1347151
+Node: Boolean Ops347289
+Ref: Boolean Ops-Footnote-1351359
+Node: Conditional Exp351450
+Node: Function Calls353177
+Node: Precedence356935
+Node: Locales360604
+Node: Patterns and Actions362207
+Node: Pattern Overview363261
+Node: Regexp Patterns364938
+Node: Expression Patterns365481
+Node: Ranges369262
+Node: BEGIN/END372368
+Node: Using BEGIN/END373130
+Ref: Using BEGIN/END-Footnote-1375866
+Node: I/O And BEGIN/END375972
+Node: BEGINFILE/ENDFILE378257
+Node: Empty381188
+Node: Using Shell Variables381505
+Node: Action Overview383788
+Node: Statements386115
+Node: If Statement387963
+Node: While Statement389461
+Node: Do Statement391505
+Node: For Statement392661
+Node: Switch Statement395813
+Node: Break Statement397916
+Node: Continue Statement399971
+Node: Next Statement401764
+Node: Nextfile Statement404154
+Node: Exit Statement406809
+Node: Built-in Variables409213
+Node: User-modified410309
+Ref: User-modified-Footnote-1417994
+Node: Auto-set418056
+Ref: Auto-set-Footnote-1430958
+Ref: Auto-set-Footnote-2431163
+Node: ARGC and ARGV431219
+Node: Arrays435073
+Node: Array Basics436571
+Node: Array Intro437397
+Ref: figure-array-elements439370
+Node: Reference to Elements441777
+Node: Assigning Elements444050
+Node: Array Example444541
+Node: Scanning an Array446273
+Node: Controlling Scanning449288
+Ref: Controlling Scanning-Footnote-1454461
+Node: Delete454777
+Ref: Delete-Footnote-1457542
+Node: Numeric Array Subscripts457599
+Node: Uninitialized Subscripts459782
+Node: Multidimensional461407
+Node: Multiscanning464500
+Node: Arrays of Arrays466089
+Node: Functions470729
+Node: Built-in471548
+Node: Calling Built-in472626
+Node: Numeric Functions474614
+Ref: Numeric Functions-Footnote-1478448
+Ref: Numeric Functions-Footnote-2478805
+Ref: Numeric Functions-Footnote-3478853
+Node: String Functions479122
+Ref: String Functions-Footnote-1502133
+Ref: String Functions-Footnote-2502262
+Ref: String Functions-Footnote-3502510
+Node: Gory Details502597
+Ref: table-sub-escapes504266
+Ref: table-sub-posix-92505620
+Ref: table-sub-proposed506971
+Ref: table-posix-sub508325
+Ref: table-gensub-escapes509870
+Ref: Gory Details-Footnote-1511046
+Ref: Gory Details-Footnote-2511097
+Node: I/O Functions511248
+Ref: I/O Functions-Footnote-1518371
+Node: Time Functions518518
+Ref: Time Functions-Footnote-1528982
+Ref: Time Functions-Footnote-2529050
+Ref: Time Functions-Footnote-3529208
+Ref: Time Functions-Footnote-4529319
+Ref: Time Functions-Footnote-5529431
+Ref: Time Functions-Footnote-6529658
+Node: Bitwise Functions529924
+Ref: table-bitwise-ops530486
+Ref: Bitwise Functions-Footnote-1534731
+Node: Type Functions534915
+Node: I18N Functions536057
+Node: User-defined537702
+Node: Definition Syntax538506
+Ref: Definition Syntax-Footnote-1543431
+Node: Function Example543500
+Ref: Function Example-Footnote-1546144
+Node: Function Caveats546166
+Node: Calling A Function546684
+Node: Variable Scope547639
+Node: Pass By Value/Reference550627
+Node: Return Statement554135
+Node: Dynamic Typing557119
+Node: Indirect Calls558048
+Node: Library Functions567735
+Ref: Library Functions-Footnote-1571248
+Ref: Library Functions-Footnote-2571391
+Node: Library Names571562
+Ref: Library Names-Footnote-1575035
+Ref: Library Names-Footnote-2575255
+Node: General Functions575341
+Node: Strtonum Function576369
+Node: Assert Function579299
+Node: Round Function582625
+Node: Cliff Random Function584166
+Node: Ordinal Functions585182
+Ref: Ordinal Functions-Footnote-1588259
+Ref: Ordinal Functions-Footnote-2588511
+Node: Join Function588722
+Ref: Join Function-Footnote-1590493
+Node: Getlocaltime Function590693
+Node: Readfile Function594429
+Node: Data File Management596268
+Node: Filetrans Function596900
+Node: Rewind Function600969
+Node: File Checking602356
+Ref: File Checking-Footnote-1603488
+Node: Empty Files603689
+Node: Ignoring Assigns605919
+Node: Getopt Function607473
+Ref: Getopt Function-Footnote-1618776
+Node: Passwd Functions618979
+Ref: Passwd Functions-Footnote-1627958
+Node: Group Functions628046
+Ref: Group Functions-Footnote-1635988
+Node: Walking Arrays636201
+Node: Sample Programs638337
+Node: Running Examples639011
+Node: Clones639739
+Node: Cut Program640963
+Node: Egrep Program650816
+Ref: Egrep Program-Footnote-1658787
+Node: Id Program658897
+Node: Split Program662561
+Ref: Split Program-Footnote-1666099
+Node: Tee Program666227
+Node: Uniq Program669034
+Node: Wc Program676464
+Ref: Wc Program-Footnote-1680732
+Ref: Wc Program-Footnote-2680932
+Node: Miscellaneous Programs681024
+Node: Dupword Program682212
+Node: Alarm Program684243
+Node: Translate Program689050
+Ref: Translate Program-Footnote-1693441
+Ref: Translate Program-Footnote-2693711
+Node: Labels Program693845
+Ref: Labels Program-Footnote-1697216
+Node: Word Sorting697300
+Node: History Sorting701343
+Node: Extract Program703179
+Ref: Extract Program-Footnote-1710709
+Node: Simple Sed710838
+Node: Igawk Program713900
+Ref: Igawk Program-Footnote-1729075
+Ref: Igawk Program-Footnote-2729276
+Node: Anagram Program729414
+Node: Signature Program732482
+Node: Advanced Features733729
+Node: Nondecimal Data735615
+Node: Array Sorting737192
+Node: Controlling Array Traversal737889
+Node: Array Sorting Functions746169
+Ref: Array Sorting Functions-Footnote-1750076
+Node: Two-way I/O750270
+Ref: Two-way I/O-Footnote-1755786
+Node: TCP/IP Networking755868
+Node: Profiling758712
+Node: Internationalization766220
+Node: I18N and L10N767645
+Node: Explaining gettext768331
+Ref: Explaining gettext-Footnote-1773471
+Ref: Explaining gettext-Footnote-2773655
+Node: Programmer i18n773820
+Node: Translator i18n778045
+Node: String Extraction778839
+Ref: String Extraction-Footnote-1779800
+Node: Printf Ordering779886
+Ref: Printf Ordering-Footnote-1782668
+Node: I18N Portability782732
+Ref: I18N Portability-Footnote-1785181
+Node: I18N Example785244
+Ref: I18N Example-Footnote-1787966
+Node: Gawk I18N788038
+Node: Debugger788659
+Node: Debugging789630
+Node: Debugging Concepts790071
+Node: Debugging Terms791927
+Node: Awk Debugging794524
+Node: Sample Debugging Session795416
+Node: Debugger Invocation795936
+Node: Finding The Bug797269
+Node: List of Debugger Commands803751
+Node: Breakpoint Control805083
+Node: Debugger Execution Control808747
+Node: Viewing And Changing Data812107
+Node: Execution Stack815465
+Node: Debugger Info816978
+Node: Miscellaneous Debugger Commands820972
+Node: Readline Support826156
+Node: Limitations827048
+Node: Arbitrary Precision Arithmetic829296
+Ref: Arbitrary Precision Arithmetic-Footnote-1830945
+Node: General Arithmetic831093
+Node: Floating Point Issues832813
+Node: String Conversion Precision833694
+Ref: String Conversion Precision-Footnote-1835399
+Node: Unexpected Results835508
+Node: POSIX Floating Point Problems837661
+Ref: POSIX Floating Point Problems-Footnote-1841482
+Node: Integer Programming841520
+Node: Floating-point Programming843331
+Ref: Floating-point Programming-Footnote-1849659
+Ref: Floating-point Programming-Footnote-2849929
+Node: Floating-point Representation850193
+Node: Floating-point Context851358
+Ref: table-ieee-formats852197
+Node: Rounding Mode853581
+Ref: table-rounding-modes854060
+Ref: Rounding Mode-Footnote-1857075
+Node: Gawk and MPFR857254
+Node: Arbitrary Precision Floats858663
+Ref: Arbitrary Precision Floats-Footnote-1861106
+Node: Setting Precision861427
+Ref: table-predefined-precision-strings862111
+Node: Setting Rounding Mode864256
+Ref: table-gawk-rounding-modes864660
+Node: Floating-point Constants865847
+Node: Changing Precision867299
+Ref: Changing Precision-Footnote-1868691
+Node: Exact Arithmetic868865
+Node: Arbitrary Precision Integers871999
+Ref: Arbitrary Precision Integers-Footnote-1875014
+Node: Dynamic Extensions875161
+Node: Extension Intro876619
+Node: Plugin License877884
+Node: Extension Mechanism Outline878569
+Ref: figure-load-extension878993
+Ref: figure-load-new-function880478
+Ref: figure-call-new-function881480
+Node: Extension API Description883464
+Node: Extension API Functions Introduction884914
+Node: General Data Types889780
+Ref: General Data Types-Footnote-1895473
+Node: Requesting Values895772
+Ref: table-value-types-returned896509
+Node: Memory Allocation Functions897467
+Ref: Memory Allocation Functions-Footnote-1900213
+Node: Constructor Functions900309
+Node: Registration Functions902067
+Node: Extension Functions902752
+Node: Exit Callback Functions905054
+Node: Extension Version String906303
+Node: Input Parsers906953
+Node: Output Wrappers916756
+Node: Two-way processors921272
+Node: Printing Messages923475
+Ref: Printing Messages-Footnote-1924552
+Node: Updating `ERRNO'924704
+Node: Accessing Parameters925443
+Node: Symbol Table Access926673
+Node: Symbol table by name927187
+Node: Symbol table by cookie929163
+Ref: Symbol table by cookie-Footnote-1933296
+Node: Cached values933359
+Ref: Cached values-Footnote-1936864
+Node: Array Manipulation936955
+Ref: Array Manipulation-Footnote-1938053
+Node: Array Data Types938092
+Ref: Array Data Types-Footnote-1940795
+Node: Array Functions940887
+Node: Flattening Arrays944761
+Node: Creating Arrays951613
+Node: Extension API Variables956344
+Node: Extension Versioning956980
+Node: Extension API Informational Variables958881
+Node: Extension API Boilerplate959967
+Node: Finding Extensions963771
+Node: Extension Example964331
+Node: Internal File Description965061
+Node: Internal File Ops969152
+Ref: Internal File Ops-Footnote-1980698
+Node: Using Internal File Ops980838
+Ref: Using Internal File Ops-Footnote-1983185
+Node: Extension Samples983453
+Node: Extension Sample File Functions984977
+Node: Extension Sample Fnmatch992544
+Node: Extension Sample Fork994023
+Node: Extension Sample Inplace995236
+Node: Extension Sample Ord997014
+Node: Extension Sample Readdir997850
+Ref: table-readdir-file-types998705
+Node: Extension Sample Revout999504
+Node: Extension Sample Rev2way1000095
+Node: Extension Sample Read write array1000836
+Node: Extension Sample Readfile1002715
+Node: Extension Sample API Tests1003815
+Node: Extension Sample Time1004340
+Node: gawkextlib1005655
+Node: Language History1008442
+Node: V7/SVR3.11010036
+Node: SVR41012356
+Node: POSIX1013798
+Node: BTL1015184
+Node: POSIX/GNU1015918
+Node: Feature History1021517
+Node: Common Extensions1034629
+Node: Ranges and Locales1035941
+Ref: Ranges and Locales-Footnote-11040558
+Ref: Ranges and Locales-Footnote-21040585
+Ref: Ranges and Locales-Footnote-31040819
+Node: Contributors1041040
+Node: Installation1046391
+Node: Gawk Distribution1047285
+Node: Getting1047769
+Node: Extracting1048595
+Node: Distribution contents1050237
+Node: Unix Installation1055954
+Node: Quick Installation1056571
+Node: Additional Configuration Options1059013
+Node: Configuration Philosophy1060751
+Node: Non-Unix Installation1063102
+Node: PC Installation1063560
+Node: PC Binary Installation1064871
+Node: PC Compiling1066719
+Ref: PC Compiling-Footnote-11069718
+Node: PC Testing1069823
+Node: PC Using1070999
+Node: Cygwin1075157
+Node: MSYS1075966
+Node: VMS Installation1076480
+Node: VMS Compilation1077276
+Ref: VMS Compilation-Footnote-11078497
+Node: VMS Dynamic Extensions1078555
+Node: VMS Installation Details1079928
+Node: VMS Running1082179
+Node: VMS GNV1085013
+Node: VMS Old Gawk1085736
+Node: Bugs1086206
+Node: Other Versions1090210
+Node: Notes1096435
+Node: Compatibility Mode1097235
+Node: Additions1098017
+Node: Accessing The Source1098942
+Node: Adding Code1100378
+Node: New Ports1106556
+Node: Derived Files1111037
+Ref: Derived Files-Footnote-11116113
+Ref: Derived Files-Footnote-21116147
+Ref: Derived Files-Footnote-31116743
+Node: Future Extensions1116857
+Node: Implementation Limitations1117463
+Node: Extension Design1118711
+Node: Old Extension Problems1119865
+Ref: Old Extension Problems-Footnote-11121382
+Node: Extension New Mechanism Goals1121439
+Ref: Extension New Mechanism Goals-Footnote-11124800
+Node: Extension Other Design Decisions1124989
+Node: Extension Future Growth1127095
+Node: Old Extension Mechanism1127931
+Node: Basic Concepts1129671
+Node: Basic High Level1130352
+Ref: figure-general-flow1130624
+Ref: figure-process-flow1131223
+Ref: Basic High Level-Footnote-11134452
+Node: Basic Data Typing1134637
+Node: Glossary1137964
+Node: Copying1163116
+Node: GNU Free Documentation License1200672
+Node: Index1225808

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 382c9db6..36a28e07 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -788,7 +788,7 @@ particular records in a file and perform operations upon them.
programming.
* Profiling:: Profiling your @command{awk} programs.
* I18N and L10N:: Internationalization and Localization.
-* Explaining gettext:: How GNU @code{gettext} works.
+* Explaining gettext:: How GNU @command{gettext} works.
* Programmer i18n:: Features for the programmer.
* Translator i18n:: Features for the translator.
* String Extraction:: Extracting marked strings.
@@ -965,7 +965,7 @@ particular records in a file and perform operations upon them.
* New Ports:: Porting @command{gawk} to a new
operating system.
* Derived Files:: Why derived files are kept in the
- @command{git} repository.
+ Git repository.
* Future Extensions:: New features that may be implemented
one day.
* Implementation Limitations:: Some limitations of the
@@ -2172,7 +2172,7 @@ pattern to search for and one action to perform
upon finding the pattern.
Syntactically, a rule consists of a pattern followed by an action. The
-action is enclosed in curly braces to separate it from the pattern.
+action is enclosed in braces to separate it from the pattern.
Newlines usually separate rules. Therefore, an @command{awk}
program looks like this:
@@ -2938,10 +2938,10 @@ for @emph{every} input line. If the action is omitted, the default
action is to print all lines that match the pattern.
@cindex actions, empty
-Thus, we could leave out the action (the @code{print} statement and the curly
+Thus, we could leave out the action (the @code{print} statement and the
braces) in the previous example and the result would be the same:
@command{awk} prints all lines matching the pattern @samp{li}. By comparison,
-omitting the @code{print} statement but retaining the curly braces makes an
+omitting the @code{print} statement but retaining the braces makes an
empty action that does nothing (i.e., no lines are printed).
@cindex @command{awk} programs, one-line examples
@@ -3683,7 +3683,7 @@ with @samp{#!} scripts (@pxref{Executable Scripts}), like so:
@cindex portable object files, generating
@cindex files, portable object, generating
Analyze the source program and
-generate a GNU @code{gettext} Portable Object Template file on standard
+generate a GNU @command{gettext} Portable Object Template file on standard
output for all string constants that have been marked for translation.
@xref{Internationalization},
for information about this option.
@@ -12994,11 +12994,11 @@ in outline, an @command{awk} program generally looks like this:
@cindex @code{;} (semicolon), separating statements in actions
@cindex semicolon (@code{;}), separating statements in actions
An action consists of one or more @command{awk} @dfn{statements}, enclosed
-in curly braces (@samp{@{@r{@dots{}}@}}). Each statement specifies one
+in braces (@samp{@{@r{@dots{}}@}}). Each statement specifies one
thing to do. The statements are separated by newlines or semicolons.
-The curly braces around an action must be used even if the action
+The braces around an action must be used even if the action
contains only one statement, or if it contains no statements at
-all. However, if you omit the action entirely, omit the curly braces as
+all. However, if you omit the action entirely, omit the braces as
well. An omitted action is equivalent to @samp{@{ print $0 @}}:
@example
@@ -13024,7 +13024,7 @@ programs. The @command{awk} language gives you C-like constructs
special ones (@pxref{Statements}).
@item Compound statements
-Enclose one or more statements in curly braces. A compound statement
+Enclose one or more statements in braces. A compound statement
is used in order to put several statements together in the body of an
@code{if}, @code{while}, @code{do}, or @code{for} statement.
@@ -13072,7 +13072,7 @@ Many control statements contain other statements. For example, the
@code{if} statement contains another statement that may or may not be
executed. The contained statement is called the @dfn{body}.
To include more than one statement in the body, group them into a
-single @dfn{compound statement} with curly braces, separating them with
+single @dfn{compound statement} with braces, separating them with
newlines or semicolons.
@menu
@@ -13126,7 +13126,7 @@ if the value of @code{x} is evenly divisible by two), then the first
statement is executed.
If the @code{else} keyword appears on the same line as @var{then-body} and
@var{then-body} is not a compound statement (i.e., not surrounded by
-curly braces), then a semicolon must separate @var{then-body} from
+braces), then a semicolon must separate @var{then-body} from
the @code{else}.
To illustrate this, the previous example can be rewritten as:
@@ -26825,7 +26825,7 @@ a requirement.
@menu
* I18N and L10N:: Internationalization and Localization.
-* Explaining gettext:: How GNU @code{gettext} works.
+* Explaining gettext:: How GNU @command{gettext} works.
* Programmer i18n:: Features for the programmer.
* Translator i18n:: Features for the translator.
* I18N Example:: A simple i18n example.
@@ -26849,22 +26849,22 @@ responses, and information related to how numerical and
monetary values are printed and read.
@node Explaining gettext
-@section GNU @code{gettext}
+@section GNU @command{gettext}
@cindex internationalizing a program
@c STARTOFRANGE gettex
-@cindex @code{gettext} library
-@command{gawk} uses GNU @code{gettext} to provide its internationalization
+@cindex @command{gettext} library
+@command{gawk} uses GNU @command{gettext} to provide its internationalization
features.
-The facilities in GNU @code{gettext} focus on messages; strings printed
+The facilities in GNU @command{gettext} focus on messages; strings printed
by a program, either directly or via formatting with @code{printf} or
@code{sprintf()}.@footnote{For some operating systems, the @command{gawk}
-port doesn't support GNU @code{gettext}.
+port doesn't support GNU @command{gettext}.
Therefore, these features are not available
if you are using one of those operating systems. Sorry.}
-@cindex portability, @code{gettext} library and
-When using GNU @code{gettext}, each application has its own
+@cindex portability, @command{gettext} library and
+When using GNU @command{gettext}, each application has its own
@dfn{text domain}. This is a unique name, such as @samp{kpilot} or @samp{gawk},
that identifies the application.
A complete application may have multiple components---programs written
@@ -26888,7 +26888,7 @@ language).
@cindex @code{textdomain()} function (C library)
@item
The programmer indicates the application's text domain
-(@code{"guide"}) to the @code{gettext} library,
+(@command{"guide"}) to the @command{gettext} library,
by calling the @code{textdomain()} function.
@cindex @code{.pot} files
@@ -26932,7 +26932,7 @@ are installed in a standard place.
@cindex @code{bindtextdomain()} function (C library)
@item
-For testing and development, it is possible to tell @code{gettext}
+For testing and development, it is possible to tell @command{gettext}
to use @file{.gmo} files in a different directory than the standard
one by using the @code{bindtextdomain()} function.
@@ -26965,7 +26965,7 @@ strings enclosed in calls to @code{gettext()}.
@cindex @code{_} (underscore), C macro
@cindex underscore (@code{_}), C macro
-The GNU @code{gettext} developers, recognizing that typing
+The GNU @command{gettext} developers, recognizing that typing
@samp{gettext(@dots{})} over and over again is both painful and ugly to look
at, use the macro @samp{_} (an underscore) to make things easier:
@@ -26978,7 +26978,7 @@ printf("%s", _("Don't Panic!\n"));
@end example
@cindex internationalization, localization, locale categories
-@cindex @code{gettext} library, locale categories
+@cindex @command{gettext} library, locale categories
@cindex locale categories
@noindent
This reduces the typing overhead to just three extra characters per string
@@ -26986,12 +26986,12 @@ and is considerably easier to read as well.
There are locale @dfn{categories}
for different types of locale-related information.
-The defined locale categories that @code{gettext} knows about are:
+The defined locale categories that @command{gettext} knows about are:
@table @code
@cindex @code{LC_MESSAGES} locale category
@item LC_MESSAGES
-Text messages. This is the default category for @code{gettext}
+Text messages. This is the default category for @command{gettext}
operations, but it is possible to supply a different one explicitly,
if necessary. (It is almost never necessary to supply a different category.)
@@ -27039,7 +27039,7 @@ before or after the day in a date, local month abbreviations, and so on.
@cindex @code{LC_ALL} locale category
@item LC_ALL
-All of the above. (Not too useful in the context of @code{gettext}.)
+All of the above. (Not too useful in the context of @command{gettext}.)
@end table
@c ENDOFRANGE gettex
@@ -27055,7 +27055,7 @@ internationalization:
@cindex @code{TEXTDOMAIN} variable
@item TEXTDOMAIN
This variable indicates the application's text domain.
-For compatibility with GNU @code{gettext}, the default
+For compatibility with GNU @command{gettext}, the default
value is @code{"messages"}.
@cindex internationalization, localization, marked strings
@@ -27110,7 +27110,7 @@ The same remarks about argument order as for the @code{dcgettext()} function app
@cindexgawkfunc{bindtextdomain}
@item @code{bindtextdomain(@var{directory}} [@code{,} @var{domain} ]@code{)}
Change the directory in which
-@code{gettext} looks for @file{.gmo} files, in case they
+@command{gettext} looks for @file{.gmo} files, in case they
will not or cannot be placed in the standard locations
(e.g., during testing).
Return the directory in which @var{domain} is ``bound.''
@@ -27249,12 +27249,12 @@ $ @kbd{gawk --gen-pot -f guide.awk > guide.pot}
@cindex @code{xgettext} utility
When run with @option{--gen-pot}, @command{gawk} does not execute your
program. Instead, it parses it as usual and prints all marked strings
-to standard output in the format of a GNU @code{gettext} Portable Object
+to standard output in the format of a GNU @command{gettext} Portable Object
file. Also included in the output are any constant strings that
appear as the first argument to @code{dcgettext()} or as the first and
second argument to @code{dcngettext()}.@footnote{The
@command{xgettext} utility that comes with GNU
-@code{gettext} can handle @file{.awk} files.}
+@command{gettext} can handle @file{.awk} files.}
@xref{I18N Example},
for the full list of steps to go through to create and test
translations for @command{guide}.
@@ -27270,7 +27270,7 @@ Format strings for @code{printf} and @code{sprintf()}
(@pxref{Printf})
present a special problem for translation.
Consider the following:@footnote{This example is borrowed
-from the GNU @code{gettext} manual.}
+from the GNU @command{gettext} manual.}
@c line broken here only for smallbook format
@example
@@ -27522,8 +27522,8 @@ msgstr "Like, the scoop is"
The next step is to make the directory to hold the binary message object
file and then to create the @file{guide.mo} file.
We pretend that our file is to be used in the @code{en_US.UTF-8} locale.
-The directory layout shown here is standard for GNU @code{gettext} on
-GNU/Linux systems. Other versions of @code{gettext} may use a different
+The directory layout shown here is standard for GNU @command{gettext} on
+GNU/Linux systems. Other versions of @command{gettext} may use a different
layout:
@example
@@ -27576,16 +27576,16 @@ $ @kbd{gawk --posix -f guide.awk -f libintl.awk}
@section @command{gawk} Can Speak Your Language
@command{gawk} itself has been internationalized
-using the GNU @code{gettext} package.
-(GNU @code{gettext} is described in
+using the GNU @command{gettext} package.
+(GNU @command{gettext} is described in
complete detail in
@ifinfo
-@inforef{Top, , GNU @code{gettext} utilities, gettext, GNU gettext tools}.)
+@inforef{Top, , GNU @command{gettext} utilities, gettext, GNU gettext tools}.)
@end ifinfo
@ifnotinfo
@cite{GNU gettext tools}.)
@end ifnotinfo
-As of this writing, the latest version of GNU @code{gettext} is
+As of this writing, the latest version of GNU @command{gettext} is
@uref{ftp://ftp.gnu.org/gnu/gettext/gettext-0.18.2.1.tar.gz, version 0.18.2.1}.
If a translation of @command{gawk}'s messages exists,
@@ -33247,7 +33247,7 @@ code must be compiled. Assuming that the functions are in
a file named @file{filefuncs.c}, and @var{idir} is the location
of the @file{gawkapi.h} header file,
the following steps@footnote{In practice, you would probably want to
-use the GNU Autotools---Automake, Autoconf, Libtool, and Gettext---to
+use the GNU Autotools---Automake, Autoconf, Libtool, and @command{gettext}---to
configure and build your libraries. Instructions for doing so are beyond
the scope of this @value{DOCUMENT}. @xref{gawkextlib}, for WWW links to
the tools.} create a GNU/Linux shared library:
@@ -34001,7 +34001,7 @@ In addition, you must have the GNU Autotools installed
@uref{http://www.gnu.org/software/automake, Automake},
@uref{http://www.gnu.org/software/libtool, Libtool},
and
-@uref{http://www.gnu.org/software/gettext, Gettext}).
+@uref{http://www.gnu.org/software/gettext, GNU @command{gettext}}).
The simple recipe for building and testing @code{gawkextlib} is as follows.
First, build and install @command{gawk}:
@@ -35016,7 +35016,7 @@ The use of GNU Automake to help in standardizing the configuration process
(@pxref{Quick Installation}).
@item
-The use of GNU @code{gettext} for @command{gawk}'s own message output
+The use of GNU @command{gettext} for @command{gawk}'s own message output
(@pxref{Gawk I18N}).
@item
@@ -35597,7 +35597,7 @@ provided the port to BeOS and its documentation.
@cindex Peters, Arno
Arno Peters
did the initial work to convert @command{gawk} to use
-GNU Automake and GNU @code{gettext}.
+GNU Automake and GNU @command{gettext}.
@item
@cindex Broder, Alan J.@:
@@ -35775,7 +35775,6 @@ file and then use @code{tar} to extract it. You can use the following
pipeline to produce the @command{gawk} distribution:
@example
-# Under System V, add 'o' to the tar options
gzip -d -c gawk-@value{VERSION}.@value{PATCHLEVEL}.tar.gz | tar -xvpf -
@end example
@@ -35930,8 +35929,8 @@ actual @file{Makefile} for creating the documentation.
@item Makefile.am
@itemx */Makefile.am
-Files used by the GNU @command{automake} software for generating
-the @file{Makefile.in} files used by @command{autoconf} and
+Files used by the GNU Automake software for generating
+the @file{Makefile.in} files used by Autoconf and
@command{configure}.
@item Makefile.in
@@ -36027,9 +36026,9 @@ to @file{gawk-@value{VERSION}.@value{PATCHLEVEL}}. Like most GNU software,
@command{gawk} is configured
automatically for your system by running the @command{configure} program.
This program is a Bourne shell script that is generated automatically using
-GNU @command{autoconf}.
+GNU Autoconf.
@ifnotinfo
-(The @command{autoconf} software is
+(The Autoconf software is
described fully in
@cite{Autoconf---Generating Automatic Configuration Scripts},
which can be found online at
@@ -36037,7 +36036,7 @@ which can be found online at
the Free Software Foundation's web site}.)
@end ifnotinfo
@ifinfo
-(The @command{autoconf} software is described fully starting with
+(The Autoconf software is described fully starting with
@inforef{Top, , Autoconf, autoconf,Autoconf---Generating Automatic Configuration Scripts}.)
@end ifinfo
@@ -36140,7 +36139,7 @@ improvement.
@cindex @option{--with-whiny-user-strftime} configuration option
@cindex configuration option, @code{--with-whiny-user-strftime}
@item --with-whiny-user-strftime
-Force use of the included version of the @code{strftime()}
+Force use of the included version of the C @code{strftime()}
function for deficient systems.
@end table
@@ -36187,9 +36186,9 @@ should not have. @file{custom.h} is automatically included by
@file{config.h}.
It is also possible that the @command{configure} program generated by
-@command{autoconf} will not work on your system in some other fashion.
+Autoconf will not work on your system in some other fashion.
If you do have a problem, the file @file{configure.ac} is the input for
-@command{autoconf}. You may be able to change this file and generate a
+Autoconf. You may be able to change this file and generate a
new version of @command{configure} that works on your system
(@pxref{Bugs},
for information on how to report problems in configuring @command{gawk}).
@@ -36355,7 +36354,7 @@ and @option{--libexecdir=c:/usr/lib}.
@end ignore
@ignore
-The internal @code{gettext} library tends to be problematic. It is therefore recommended
+The internal @command{gettext} library tends to be problematic. It is therefore recommended
to use either an external one (@option{--without-included-gettext}) or to disable
NLS entirely (@option{--disable-nls}).
@end ignore
@@ -36392,7 +36391,9 @@ Ancient OS/2 ports of GNU @command{make} are not able to handle
the Makefiles of this package. If you encounter any problems with
@command{make}, try GNU Make 3.79.1 or later versions. You should
find the latest version on
-@uref{ftp://hobbes.nmsu.edu/pub/os2/}.
+@uref{ftp://hobbes.nmsu.edu/pub/os2/}.@footnote{As of May, 2014,
+this site is still there, but the author could not find a package
+for GNU Make.}
@end quotation
@end ifclear
@@ -36447,14 +36448,14 @@ program files as described in @ref{AWKPATH Variable}. However,
semicolons (rather than colons) separate elements in the @env{AWKPATH}
variable. If @env{AWKPATH} is not set or is empty, then the default
search path for MS-Windows and MS-DOS versions is
-@code{@w{".;c:/lib/awk;c:/gnu/lib/awk"}}.
+@samp{@w{.;c:/lib/awk;c:/gnu/lib/awk}}.
@ifclear FOR_PRINT
@cindex @command{gawk}, OS/2 version of
@cindex @code{UNIXROOT} variable, on OS/2 systems
The search path for OS/2 (32 bit, EMX) is determined by the prefix directory
(most likely @file{/usr} or @file{c:/usr}) that has been specified as an option of
-the @command{configure} script like it is the case for the Unix versions.
+the @command{configure} script as is the case for the Unix versions.
If @file{c:/usr} is the prefix directory then the default search path contains @file{.}
and @file{c:/usr/share/awk}.
Additionally, to support binary distributions of @command{gawk} for OS/2
@@ -36462,7 +36463,7 @@ systems whose drive @samp{c:} might not support long file names or might not exi
at all, there is a special environment variable. If @env{UNIXROOT} specifies
a drive then this specific drive is also searched for program files.
E.g., if @env{UNIXROOT} is set to @file{e:} the complete default search path is
-@code{@w{".;c:/usr/share/awk;e:/usr/share/awk"}}.
+@samp{@w{.;c:/usr/share/awk;e:/usr/share/awk}}.
An @command{sh}-like shell (as opposed to @command{command.com} under MS-DOS
or @command{cmd.exe} under MS-Windows or OS/2) may be useful for @command{awk} programming.
@@ -36486,8 +36487,8 @@ 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 @code{"\r\n"} to @code{"\n"} on input and @code{"\n"}
-to @code{"\r\n"} on output. A special @code{BINMODE} variable @value{COMMONEXT}
+translate 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:
@itemize @value{BULLET}
@@ -36528,7 +36529,7 @@ The name @code{BINMODE} was chosen to match @command{mawk}
@command{mawk} adds a @samp{-W BINMODE=@var{N}} option and an environment
variable that can set @code{BINMODE}, @code{RS}, and @code{ORS}. The
files @file{binmode[1-3].awk} (under @file{gnu/lib/awk} in some of the
-prepared distributions) have been chosen to match @command{mawk}'s @samp{-W
+prepared binary distributions) have been chosen to match @command{mawk}'s @samp{-W
BINMODE=@var{N}} option. These can be changed or discarded; in particular,
the setting of @code{RS} giving the fewest ``surprises'' is open to debate.
@command{mawk} uses @samp{RS = "\r\n"} if binary mode is set on read, which is
@@ -36652,11 +36653,11 @@ or:
$ @kbd{MMK/DESCRIPTION=[.vms]descrip.mms gawk}
@end example
-@code{MMK} is an open source, free, near-clone of @code{MMS} and
-can better handle @code{ODS-5} volumes with upper- and lowercase filenames.
-@code{MMK} is available from @uref{https://github.com/endlesssoftware/mmk}.
+@command{MMK} is an open source, free, near-clone of @command{MMS} and
+can better handle ODS-5 volumes with upper- and lowercase filenames.
+@command{MMK} is available from @uref{https://github.com/endlesssoftware/mmk}.
-With @code{ODS-5} volumes and extended parsing enabled, the case of the target
+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
@@ -36665,8 +36666,8 @@ 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.@footnote{The IA64 architecture
is also known as ``Itanium.''}
-The @file{[.vms]gawk_build_steps.txt} provides information on how to build
-@command{gawk} into a PCSI kit that is compatible with the GNV product.
+@xref{VMS GNV}, for information on building
+@command{gawk} as a PCSI kit that is compatible with the GNV product.
@node VMS Dynamic Extensions
@appendixsubsubsec Compiling @command{gawk} Dynamic Extensions on VMS
@@ -36871,7 +36872,7 @@ 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
to supply individual PCSI packages for each component.
-See @uref{https://sourceforge.net/p/gnv/wiki/InstallingGNVPackages/}.
+See @w{@uref{https://sourceforge.net/p/gnv/wiki/InstallingGNVPackages/}.}
The normal build procedure for @command{gawk} produces a program that
is suitable for use with GNV.
@@ -36972,12 +36973,14 @@ Once you have a precise problem, send email to
@EMAIL{bug-gawk@@gnu.org,bug-gawk at gnu dot org}.
@cindex Robbins, Arnold
-Using this address automatically sends a copy of your
-mail to me. If necessary, I can be reached directly at
+The @command{gawk} maintainers subscribe to this address and
+thus they will receive your bug report.
+If necessary, the primary maintainer can be reached directly at
@EMAIL{arnold@@skeeve.com,arnold at skeeve dot com}.
The bug reporting address is preferred since the
email list is archived at the GNU Project.
-@emph{All email should be in English, since that is my native language.}
+@emph{All email should be in English. This is the only language
+understood in common by all the maintainers.}
@cindex @code{comp.lang.awk} newsgroup
@quotation CAUTION
@@ -37025,13 +37028,13 @@ as follows:
@cindex Rankin, Pat
@cindex Malmberg, John
@cindex Pitts, Dave
-@multitable {MS-Windows with MINGW} {123456789012345678901234567890123456789001234567890}
+@multitable {MS-Windows with MinGW} {123456789012345678901234567890123456789001234567890}
@item MS-DOS with DJGPP @tab Scott Deifik, @EMAIL{scottd.mail@@sbcglobal.net,scottd dot mail at sbcglobal dot net}.
-@item MS-Windows with MINGW @tab Eli Zaretskii, @EMAIL{eliz@@gnu.org,eliz at gnu dot org}.
+@item 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. OS/2 not mentioned anywhere else
-@c in the print version though.
+@c Leave this in the print version on purpose.
+@c OS/2 is not mentioned anywhere else in the print version though.
@item OS/2 @tab Andreas Buening, @EMAIL{andreas.buening@@nexgo.de,andreas dot buening at nexgo dot de}.
@item VMS @tab Pat Rankin, @EMAIL{r.pat.rankin@@gmail.com,r.pat.rankin at gmail.com}, and
@@ -37190,10 +37193,10 @@ information, see the @uref{http://busybox.net, project's home page}.
@cindex Solaris, POSIX-compliant @command{awk}
@cindex source code, Solaris @command{awk}
@item The OpenSolaris POSIX @command{awk}
-The version of @command{awk} in @file{/usr/xpg4/bin} on Solaris is
-more-or-less POSIX-compliant. It is based on the @command{awk} from
-Mortice Kern Systems for PCs.
-This author was able to make it compile and work under GNU/Linux
+The versions of @command{awk} in @file{/usr/xpg4/bin} and
+@file{/usr/xpg6/bin} on Solaris are more-or-less POSIX-compliant.
+They are based on the @command{awk} from Mortice Kern Systems for PCs.
+This author was 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 Automake) would take more work, and this
has not been done, at least to our knowledge.
@@ -37248,6 +37251,9 @@ under the GPL. It has a large number of extensions over standard
See @uref{http://www.quiktrim.org/QTawk.html} for more information,
including the manual and a download link.
+The project may als be frozen; no new code changes have been made
+since approximately 2008.
+
@item Other Versions
See also the @uref{http://en.wikipedia.org/wiki/Awk_language#Versions_and_implementations,
Wikipedia article}, for information on additional versions.
@@ -37297,7 +37303,7 @@ is one more option available on the command line:
@table @code
@item -Y
@itemx --parsedebug
-Prints out the parse stack information as the program is being parsed.
+Print out the parse stack information as the program is being parsed.
@end table
This option is intended only for serious @command{gawk} developers
@@ -37322,7 +37328,7 @@ as well as any considerations you should bear in mind.
* New Ports:: Porting @command{gawk} to a new operating
system.
* Derived Files:: Why derived files are kept in the
- @command{git} repository.
+ Git repository.
@end menu
@node Accessing The Source
@@ -37346,8 +37352,8 @@ git clone git://git.savannah.gnu.org/gawk.git
@end example
@noindent
-This will clone the @command{gawk} repository. If you are behind a
-firewall that will not allow you to use the Git native protocol, you
+This clones the @command{gawk} repository. If you are behind a
+firewall that does not allow you to use the Git native protocol, you
can still access the repository using:
@example
@@ -37375,7 +37381,7 @@ that has a Git plug-in for working with Git repositories.
You are free to add any new features you like to @command{gawk}.
However, if you want your changes to be incorporated into the @command{gawk}
distribution, there are several steps that you need to take in order to
-make it possible to include your changes:
+make it possible to include them:
@enumerate 1
@item
@@ -37397,8 +37403,9 @@ or @EMAIL{assign@@gnu.org,assign at gnu dot org}.
@item
Get the latest version.
It is much easier for me to integrate changes if they are relative to
-the most recent distributed version of @command{gawk}. If your version of
-@command{gawk} is very old, I may not be able to integrate them at all.
+the most recent distributed version of @command{gawk}, or better yet,
+relative to the latest code in the Git repository. If your version of
+@command{gawk} is very old, I may not be able to integrate your changes at all.
(@xref{Getting},
for information on getting the latest version of @command{gawk}.)
@@ -37529,6 +37536,7 @@ not do so, particularly if there are lots of changes.
Include an entry for the @file{ChangeLog} file with your submission.
This helps further minimize the amount of work I have to do,
making it easier for me to accept patches.
+It is simplest if you just make this part of your diff.
@end enumerate
Although this sounds like a lot of work, please remember that while you
@@ -37586,10 +37594,39 @@ A number of the files that come with @command{gawk} are maintained by other
people. Thus, you should not change them
unless it is for a very good reason; i.e., changes are not out of the
question, but changes to these files are scrutinized extra carefully.
-The files are @file{dfa.c}, @file{dfa.h}, @file{getopt1.c}, @file{getopt.c},
-@file{getopt.h}, @file{install-sh}, @file{mkinstalldirs}, @file{regcomp.c},
-@file{regex.c}, @file{regexec.c}, @file{regexex.c}, @file{regex.h},
-@file{regex_internal.c}, and @file{regex_internal.h}.
+The files are
+@file{dfa.c},
+@file{dfa.h},
+@file{getopt.c},
+@file{getopt.h},
+@file{getopt1.c},
+@file{getopt_int.h},
+@file{gettext.h},
+@file{regcomp.c},
+@file{regex.c},
+@file{regex.h},
+@file{regex_internal.c},
+@file{regex_internal.h},
+and
+@file{regexec.c}.
+
+@item
+A number of other files are provided by the GNU
+Autotools (Autoconf, Automake, and GNU @command{gettext}).
+You should not change them either, unless it is for a very
+good reason. The files are
+@file{ABOUT-NLS},
+@file{config.guess},
+@file{config.rpath},
+@file{config.sub},
+@file{depcomp},
+@file{INSTALL},
+@file{install-sh},
+@file{missing},
+@file{mkinstalldirs},
+@file{xalloc.h},
+and
+@file{ylwrap}.
@item
Be willing to continue to maintain the port.
@@ -37640,16 +37677,16 @@ In the code that you supply and maintain, feel free to use a
coding style and brace layout that suits your taste.
@node Derived Files
-@appendixsubsec Why Generated Files Are Kept In @command{git}
+@appendixsubsec Why Generated Files Are Kept In Git
@c STARTOFRANGE gawkgit
-@cindex @command{git}, use of for @command{gawk} source code
+@cindex Git, use of for @command{gawk} source code
@c From emails written March 22, 2012, to the gawk developers list.
-If you look at the @command{gawk} source in the @command{git}
+If you look at the @command{gawk} source in the Git
repository, you will notice that it includes files that are automatically
generated by GNU infrastructure tools, such as @file{Makefile.in} from
-@command{automake} and even @file{configure} from @command{autoconf}.
+Automake and even @file{configure} from Autoconf.
This is different from many Free Software projects that do not store
the derived files, because that keeps the repository less cluttered,
@@ -37675,11 +37712,10 @@ there a guarantee that we could find that @command{bison} version? Or that
@emph{it} would build?)
If the repository has all the generated files, then it's easy to just check
-them out and build. (Or @emph{easier}, depending upon how far back we go.
-@code{:-)})
+them out and build. (Or @emph{easier}, depending upon how far back we go.)
And that brings us to the second (and stronger) reason why all the files
-really need to be in @command{git}. It boils down to who do you cater
+really need to be in Git. It boils down to who do you cater
to---the @command{gawk} developer(s), or the user who just wants to check
out a version and try it out?
@@ -37688,10 +37724,10 @@ wants it to be possible for any interested @command{awk} user in the
world to just clone the repository, check out the branch of interest and
build it. Without their having to have the correct version(s) of the
autotools.@footnote{There is one GNU program that is (in our opinion)
-severely difficult to bootstrap from the @command{git} repository. For
-example, on the author's old (but still working) PowerPC macintosh with
+severely difficult to bootstrap from the Git repository. For
+example, on the author's old (but still working) PowerPC Macintosh with
Mac OS X 10.5, it was necessary to bootstrap a ton of software, starting
-with @command{git} itself, in order to try to work with the latest code.
+with Git itself, in order to try to work with the latest code.
It's not pleasant, and especially on older systems, it's a big waste
of time.
@@ -37714,14 +37750,14 @@ This is extremely important for the @code{master} and
Further, the @command{gawk} maintainer would argue that it's also
important for the @command{gawk} developers. When he tried to check out
-the @code{xgawk} branch@footnote{A branch created by one of the other
+the @code{xgawk} branch@footnote{A branch (since removed) created by one of the other
developers that did not include the generated files.} to build it, he
couldn't. (No @file{ltmain.sh} file, and he had no idea how to create it,
and that was not the only problem.)
He felt @emph{extremely} frustrated. With respect to that branch,
the maintainer is no different than Jane User who wants to try to build
-@code{gawk-4.0-stable} or @code{master} from the repository.
+@code{gawk-4.1-stable} or @code{master} from the repository.
Thus, the maintainer thinks that it's not just important, but critical,
that for any given branch, the above incantation @emph{just works}.
@@ -37741,14 +37777,14 @@ It's the maintainer's job to merge them and he will deal with it.
@item
He is really good at @samp{git diff x y > /tmp/diff1 ; gvim /tmp/diff1} to
-remove the diffs that aren't of interest in order to review code. @code{:-)}
+remove the diffs that aren't of interest in order to review code.
@end enumerate
@item
It would certainly help if everyone used the same versions of the GNU tools
as he does, which in general are the latest released versions of
-@command{automake},
-@command{autoconf},
+Automake,
+Autoconf,
@command{bison},
and
@command{gettext}.
@@ -37760,10 +37796,10 @@ now it hasn't been a real issue since I'm the only one who's been
dorking with the configuration machinery.
@end ignore
-@enumerate A
-@item
-Installing from source is quite easy. It's how the maintainer worked for years
-under Fedora.
+@c @enumerate A
+@c @item
+Installing from source is quite easy. It's how the maintainer worked for years,
+and still works.
He had @file{/usr/local/bin} at the front of his @env{PATH} and just did:
@example
@@ -37774,10 +37810,11 @@ cd @var{package}-@var{x}.@var{y}.@var{z}
make install # as root
@end example
-@item
+@c @item
+@ignore
These days the maintainer uses Ubuntu 12.04 which is medium current, but
-he is already doing the above for @command{autoconf}, @command{automake}
-and @command{bison}.
+he is already doing the above for Automake, Autoconf, and @command{bison}.
+@end ignore
@ignore
(C. Rant: Recent Linux versions with GNOME 3 really suck. What
@@ -37785,7 +37822,7 @@ and @command{bison}.
me to Ubuntu, but Ubuntu 11.04 and 11.10 are totally unusable from
a UI perspective. Bleah.)
@end ignore
-@end enumerate
+@c @end enumerate
@ignore
@item
@@ -37801,7 +37838,7 @@ the "real" changes and the second with "everything else needed for
Most of the above was originally written by the maintainer to other
@command{gawk} developers. It raised the objection from one of
the developers ``@dots{} that anybody pulling down the source from
-@command{git} is not an end user.''
+Git is not an end user.''
However, this is not true. There are ``power @command{awk} users''
who can build @command{gawk} (using the magic incantation shown previously)
@@ -37811,10 +37848,10 @@ kept buildable all the time.
It was then suggested that there be a @command{cron} job to create
nightly tarballs of ``the source.'' Here, the problem is that there
are source trees, corresponding to the various branches! So,
-nightly tar balls aren't the answer, especially as the repository can go
+nightly tarballs aren't the answer, especially as the repository can go
for weeks without significant change being introduced.
-Fortunately, the @command{git} server can meet this need. For any given
+Fortunately, the Git server can meet this need. For any given
branch named @var{branchname}, use:
@example
@@ -37874,9 +37911,10 @@ Larry
@author Larry Wall
@end quotation
-The @file{TODO} file in the @command{gawk} Git repository lists possible
-future enhancements. Some of these relate to the source code, and others
-to possible new features. Please see that file for the list.
+The @file{TODO} file in the @code{master} branch of the @command{gawk}
+Git repository lists possible future enhancements. Some of these relate
+to the source code, and others to possible new features. Please see
+that file for the list.
@xref{Additions},
if you are interested in tackling any of the projects listed there.
@@ -37948,8 +37986,8 @@ documentation in this @value{DOCUMENT}, but it was quite minimal.
@item
Being able to call into @command{gawk} from an extension required linker
facilities that are common on Unix-derived systems but that did
-not work on Windows systems; users wanting extensions on Windows
-had to statically link them into @command{gawk}, even though Windows supports
+not work on MS-Windows systems; users wanting extensions on MS-Windows
+had to statically link them into @command{gawk}, even though MS-Windows supports
dynamic loading of shared objects.
@item
@@ -38003,7 +38041,7 @@ in order to loop over all the element in an easy fashion for C code.
@item
The ability to create arrays (including @command{gawk}'s true
-multidimensional arrays).
+arrays of arrays).
@end itemize
@end itemize
@@ -38024,8 +38062,8 @@ The API mechanism should not require access to @command{gawk}'s
symbols@footnote{The @dfn{symbols} are the variables and functions
defined inside @command{gawk}. Access to these symbols by code
external to @command{gawk} loaded dynamically at runtime is
-problematic on Windows.} by the compile-time or dynamic linker,
-in order to enable creation of extensions that also work on Windows.
+problematic on MS-Windows.} by the compile-time or dynamic linker,
+in order to enable creation of extensions that also work on MS-Windows.
@end itemize
During development, it became clear that there were other features
@@ -38372,14 +38410,14 @@ like this: @code{""}.
Humans are used to working in decimal; i.e., base 10. In base 10,
numbers go from 0 to 9, and then ``roll over'' into the next
-column. (Remember grade school? 42 is 4 times 10 plus 2.)
+column. (Remember grade school? 42 = 4 x 10 + 2.)
There are other number bases though. Computers commonly use base 2
or @dfn{binary}, base 8 or @dfn{octal}, and base 16 or @dfn{hexadecimal}.
In binary, each column represents two times the value in the column to
its right. Each column may contain either a 0 or a 1.
-Thus, binary 1010 represents 1 times 8, plus 0 times 4, plus 1 times 2,
-plus 0 times 1, or decimal 10.
+Thus, binary 1010 represents (1 x 8) + (0 x 4) + (1 x 2)
++ (0 x 1), or decimal 10.
Octal and hexadecimal are discussed more in
@ref{Nondecimal-numbers}.
@@ -38416,7 +38454,7 @@ Where it makes sense, POSIX @command{awk} is compatible with 1999 ISO C.
@item Action
A series of @command{awk} statements attached to a rule. If the rule's
pattern matches an input record, @command{awk} executes the
-rule's action. Actions are always enclosed in curly braces.
+rule's action. Actions are always enclosed in braces.
(@xref{Action Overview}.)
@cindex Spencer, Henry
@@ -38521,7 +38559,7 @@ Named after the English mathematician Boole. See also ``Logical Expression.''
@item Bourne Shell
The standard shell (@file{/bin/sh}) on Unix and Unix-like systems,
-originally written by Steven R.@: Bourne.
+originally written by Steven R.@: Bourne at Bell Laboratories.
Many shells (Bash, @command{ksh}, @command{pdksh}, @command{zsh}) are
generally upwardly compatible with the Bourne shell.
@@ -38571,7 +38609,9 @@ Changing some of them affects @command{awk}'s running environment.
(@xref{Built-in Variables}.)
@item Braces
-See ``Curly Braces.''
+The characters @samp{@{} and @samp{@}}. Braces are used in
+@command{awk} for delimiting actions, compound statements, and function
+bodies.
@item C
The system programming language that most GNU software is written in. The
@@ -38596,7 +38636,7 @@ or place. The most common character set in use today is ASCII (American
Standard Code for Information Interchange). Many European
countries use an extension of ASCII known as ISO-8859-1 (ISO Latin-1).
The @uref{http://www.unicode.org, Unicode character set} is
-becoming increasingly popular and standard, and is particularly
+increasingly popular and standard, and is particularly
widely used on GNU/Linux systems.
@cindex Kernighan, Brian
@@ -38609,10 +38649,11 @@ It was written in @command{awk}
by Brian Kernighan and Jon Bentley, and is available from
@uref{http://netlib.sandia.gov/netlib/typesetting/chem.gz}.
+@cindex McIlroy, Doug
@cindex cookie
@item Cookie
A peculiar goodie, token, saying or remembrance
-produced by or presented to a program. (With thanks to Doug McIlroy.)
+produced by or presented to a program. (With thanks to Professor Doug McIlroy.)
@ignore
From: Doug McIlroy <doug@cs.dartmouth.edu>
Date: Sat, 13 Oct 2012 19:55:25 -0400
@@ -38690,9 +38731,7 @@ statements, and in patterns to select which input records to process.
(@xref{Typing and Comparison}.)
@item Curly Braces
-The characters @samp{@{} and @samp{@}}. Curly braces are used in
-@command{awk} for delimiting actions, compound statements, and function
-bodies.
+See ``Braces.''
@cindex dark corner
@item Dark Corner
@@ -38737,7 +38776,7 @@ ordinary expression. It could be a string constant, such as
(@xref{Computed Regexps}.)
@item Environment
-A collection of strings, of the form @var{name}@code{=}@code{val}, that each
+A collection of strings, of the form @samp{@var{name}=@var{val}}, that each
program has available to it. Users generally place values into the
environment in order to provide information to various programs. Typical
examples are the environment variables @env{HOME} and @env{PATH}.
@@ -38791,8 +38830,8 @@ this is just a number that can have a fractional part.
See also ``Double Precision'' and ``Single Precision.''
@item Format
-Format strings are used to control the appearance of output in the
-@code{strftime()} and @code{sprintf()} functions, and are used in the
+Format strings control the appearance of output in the
+@code{strftime()} and @code{sprintf()} functions, and in the
@code{printf} statement as well. Also, data conversions from numbers to strings
are controlled by the format strings contained in the built-in variables
@code{CONVFMT} and @code{OFMT}. (@xref{Control Letters}.)
@@ -38861,7 +38900,7 @@ Base 16 notation, where the digits are @code{0}--@code{9} and
@code{A}--@code{F}, with @samp{A}
representing 10, @samp{B} representing 11, and so on, up to @samp{F} for 15.
Hexadecimal numbers are written in C using a leading @samp{0x},
-to indicate their base. Thus, @code{0x12} is 18 (1 times 16 plus 2).
+to indicate their base. Thus, @code{0x12} is 18 ((1 x 16) + 2).
@xref{Nondecimal-numbers}.
@item I/O
@@ -38935,8 +38974,8 @@ meaning. Keywords are reserved and may not be used as variable names.
@code{function},
@code{func},
@code{if},
-@code{nextfile},
@code{next},
+@code{nextfile},
@code{switch},
and
@code{while}.
@@ -38997,13 +39036,9 @@ Ancient @command{awk} implementations used single precision floating-point.
@item Octal
Base-eight notation, where the digits are @code{0}--@code{7}.
Octal numbers are written in C using a leading @samp{0},
-to indicate their base. Thus, @code{013} is 11 (one times 8 plus 3).
+to indicate their base. Thus, @code{013} is 11 ((1 x 8) + 3).
@xref{Nondecimal-numbers}.
-@cindex P1003.1 POSIX standard
-@item P1003.1
-See ``POSIX.''
-
@item Pattern
Patterns tell @command{awk} which input records are interesting to which
rules.
@@ -39044,8 +39079,8 @@ specify single lines. (@xref{Pattern Overview}.)
@item Recursion
When a function calls itself, either directly or indirectly.
-As long as this is not clear, refer to the entry for ``recursion.''
If this is clear, stop, and proceed to the next entry.
+Otherwise, refer to the entry for ``recursion.''
@item Redirection
Redirection means performing input from something other than the standard input
@@ -39124,7 +39159,7 @@ expressions, and function calls have side effects.
An internal representation of numbers that can have fractional parts.
Single precision numbers keep track of fewer digits than do double precision
numbers, but operations on them are sometimes less expensive in terms of CPU time.
-This is the type used by some very old versions of @command{awk} to store
+This is the type used by some ancient versions of @command{awk} to store
numeric values. It is the C type @code{float}.
@item Space
@@ -39161,7 +39196,7 @@ into the local language.
A value in the ``seconds since the epoch'' format used by Unix
and POSIX systems. Used for the @command{gawk} functions
@code{mktime()}, @code{strftime()}, and @code{systime()}.
-See also ``Epoch'' and ``UTC.''
+See also ``Epoch,'' ``GMT,'' and ``UTC.''
@cindex Linux
@cindex GNU/Linux
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 61873570..c85ba0bc 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -783,7 +783,7 @@ particular records in a file and perform operations upon them.
programming.
* Profiling:: Profiling your @command{awk} programs.
* I18N and L10N:: Internationalization and Localization.
-* Explaining gettext:: How GNU @code{gettext} works.
+* Explaining gettext:: How GNU @command{gettext} works.
* Programmer i18n:: Features for the programmer.
* Translator i18n:: Features for the translator.
* String Extraction:: Extracting marked strings.
@@ -960,7 +960,7 @@ particular records in a file and perform operations upon them.
* New Ports:: Porting @command{gawk} to a new
operating system.
* Derived Files:: Why derived files are kept in the
- @command{git} repository.
+ Git repository.
* Future Extensions:: New features that may be implemented
one day.
* Implementation Limitations:: Some limitations of the
@@ -2139,7 +2139,7 @@ pattern to search for and one action to perform
upon finding the pattern.
Syntactically, a rule consists of a pattern followed by an action. The
-action is enclosed in curly braces to separate it from the pattern.
+action is enclosed in braces to separate it from the pattern.
Newlines usually separate rules. Therefore, an @command{awk}
program looks like this:
@@ -2866,10 +2866,10 @@ for @emph{every} input line. If the action is omitted, the default
action is to print all lines that match the pattern.
@cindex actions, empty
-Thus, we could leave out the action (the @code{print} statement and the curly
+Thus, we could leave out the action (the @code{print} statement and the
braces) in the previous example and the result would be the same:
@command{awk} prints all lines matching the pattern @samp{li}. By comparison,
-omitting the @code{print} statement but retaining the curly braces makes an
+omitting the @code{print} statement but retaining the braces makes an
empty action that does nothing (i.e., no lines are printed).
@cindex @command{awk} programs, one-line examples
@@ -3611,7 +3611,7 @@ with @samp{#!} scripts (@pxref{Executable Scripts}), like so:
@cindex portable object files, generating
@cindex files, portable object, generating
Analyze the source program and
-generate a GNU @code{gettext} Portable Object Template file on standard
+generate a GNU @command{gettext} Portable Object Template file on standard
output for all string constants that have been marked for translation.
@xref{Internationalization},
for information about this option.
@@ -12374,11 +12374,11 @@ in outline, an @command{awk} program generally looks like this:
@cindex @code{;} (semicolon), separating statements in actions
@cindex semicolon (@code{;}), separating statements in actions
An action consists of one or more @command{awk} @dfn{statements}, enclosed
-in curly braces (@samp{@{@r{@dots{}}@}}). Each statement specifies one
+in braces (@samp{@{@r{@dots{}}@}}). Each statement specifies one
thing to do. The statements are separated by newlines or semicolons.
-The curly braces around an action must be used even if the action
+The braces around an action must be used even if the action
contains only one statement, or if it contains no statements at
-all. However, if you omit the action entirely, omit the curly braces as
+all. However, if you omit the action entirely, omit the braces as
well. An omitted action is equivalent to @samp{@{ print $0 @}}:
@example
@@ -12404,7 +12404,7 @@ programs. The @command{awk} language gives you C-like constructs
special ones (@pxref{Statements}).
@item Compound statements
-Enclose one or more statements in curly braces. A compound statement
+Enclose one or more statements in braces. A compound statement
is used in order to put several statements together in the body of an
@code{if}, @code{while}, @code{do}, or @code{for} statement.
@@ -12452,7 +12452,7 @@ Many control statements contain other statements. For example, the
@code{if} statement contains another statement that may or may not be
executed. The contained statement is called the @dfn{body}.
To include more than one statement in the body, group them into a
-single @dfn{compound statement} with curly braces, separating them with
+single @dfn{compound statement} with braces, separating them with
newlines or semicolons.
@menu
@@ -12506,7 +12506,7 @@ if the value of @code{x} is evenly divisible by two), then the first
statement is executed.
If the @code{else} keyword appears on the same line as @var{then-body} and
@var{then-body} is not a compound statement (i.e., not surrounded by
-curly braces), then a semicolon must separate @var{then-body} from
+braces), then a semicolon must separate @var{then-body} from
the @code{else}.
To illustrate this, the previous example can be rewritten as:
@@ -25969,7 +25969,7 @@ a requirement.
@menu
* I18N and L10N:: Internationalization and Localization.
-* Explaining gettext:: How GNU @code{gettext} works.
+* Explaining gettext:: How GNU @command{gettext} works.
* Programmer i18n:: Features for the programmer.
* Translator i18n:: Features for the translator.
* I18N Example:: A simple i18n example.
@@ -25993,22 +25993,22 @@ responses, and information related to how numerical and
monetary values are printed and read.
@node Explaining gettext
-@section GNU @code{gettext}
+@section GNU @command{gettext}
@cindex internationalizing a program
@c STARTOFRANGE gettex
-@cindex @code{gettext} library
-@command{gawk} uses GNU @code{gettext} to provide its internationalization
+@cindex @command{gettext} library
+@command{gawk} uses GNU @command{gettext} to provide its internationalization
features.
-The facilities in GNU @code{gettext} focus on messages; strings printed
+The facilities in GNU @command{gettext} focus on messages; strings printed
by a program, either directly or via formatting with @code{printf} or
@code{sprintf()}.@footnote{For some operating systems, the @command{gawk}
-port doesn't support GNU @code{gettext}.
+port doesn't support GNU @command{gettext}.
Therefore, these features are not available
if you are using one of those operating systems. Sorry.}
-@cindex portability, @code{gettext} library and
-When using GNU @code{gettext}, each application has its own
+@cindex portability, @command{gettext} library and
+When using GNU @command{gettext}, each application has its own
@dfn{text domain}. This is a unique name, such as @samp{kpilot} or @samp{gawk},
that identifies the application.
A complete application may have multiple components---programs written
@@ -26032,7 +26032,7 @@ language).
@cindex @code{textdomain()} function (C library)
@item
The programmer indicates the application's text domain
-(@code{"guide"}) to the @code{gettext} library,
+(@command{"guide"}) to the @command{gettext} library,
by calling the @code{textdomain()} function.
@cindex @code{.pot} files
@@ -26076,7 +26076,7 @@ are installed in a standard place.
@cindex @code{bindtextdomain()} function (C library)
@item
-For testing and development, it is possible to tell @code{gettext}
+For testing and development, it is possible to tell @command{gettext}
to use @file{.gmo} files in a different directory than the standard
one by using the @code{bindtextdomain()} function.
@@ -26109,7 +26109,7 @@ strings enclosed in calls to @code{gettext()}.
@cindex @code{_} (underscore), C macro
@cindex underscore (@code{_}), C macro
-The GNU @code{gettext} developers, recognizing that typing
+The GNU @command{gettext} developers, recognizing that typing
@samp{gettext(@dots{})} over and over again is both painful and ugly to look
at, use the macro @samp{_} (an underscore) to make things easier:
@@ -26122,7 +26122,7 @@ printf("%s", _("Don't Panic!\n"));
@end example
@cindex internationalization, localization, locale categories
-@cindex @code{gettext} library, locale categories
+@cindex @command{gettext} library, locale categories
@cindex locale categories
@noindent
This reduces the typing overhead to just three extra characters per string
@@ -26130,12 +26130,12 @@ and is considerably easier to read as well.
There are locale @dfn{categories}
for different types of locale-related information.
-The defined locale categories that @code{gettext} knows about are:
+The defined locale categories that @command{gettext} knows about are:
@table @code
@cindex @code{LC_MESSAGES} locale category
@item LC_MESSAGES
-Text messages. This is the default category for @code{gettext}
+Text messages. This is the default category for @command{gettext}
operations, but it is possible to supply a different one explicitly,
if necessary. (It is almost never necessary to supply a different category.)
@@ -26183,7 +26183,7 @@ before or after the day in a date, local month abbreviations, and so on.
@cindex @code{LC_ALL} locale category
@item LC_ALL
-All of the above. (Not too useful in the context of @code{gettext}.)
+All of the above. (Not too useful in the context of @command{gettext}.)
@end table
@c ENDOFRANGE gettex
@@ -26199,7 +26199,7 @@ internationalization:
@cindex @code{TEXTDOMAIN} variable
@item TEXTDOMAIN
This variable indicates the application's text domain.
-For compatibility with GNU @code{gettext}, the default
+For compatibility with GNU @command{gettext}, the default
value is @code{"messages"}.
@cindex internationalization, localization, marked strings
@@ -26254,7 +26254,7 @@ The same remarks about argument order as for the @code{dcgettext()} function app
@cindexgawkfunc{bindtextdomain}
@item @code{bindtextdomain(@var{directory}} [@code{,} @var{domain} ]@code{)}
Change the directory in which
-@code{gettext} looks for @file{.gmo} files, in case they
+@command{gettext} looks for @file{.gmo} files, in case they
will not or cannot be placed in the standard locations
(e.g., during testing).
Return the directory in which @var{domain} is ``bound.''
@@ -26393,12 +26393,12 @@ $ @kbd{gawk --gen-pot -f guide.awk > guide.pot}
@cindex @code{xgettext} utility
When run with @option{--gen-pot}, @command{gawk} does not execute your
program. Instead, it parses it as usual and prints all marked strings
-to standard output in the format of a GNU @code{gettext} Portable Object
+to standard output in the format of a GNU @command{gettext} Portable Object
file. Also included in the output are any constant strings that
appear as the first argument to @code{dcgettext()} or as the first and
second argument to @code{dcngettext()}.@footnote{The
@command{xgettext} utility that comes with GNU
-@code{gettext} can handle @file{.awk} files.}
+@command{gettext} can handle @file{.awk} files.}
@xref{I18N Example},
for the full list of steps to go through to create and test
translations for @command{guide}.
@@ -26414,7 +26414,7 @@ Format strings for @code{printf} and @code{sprintf()}
(@pxref{Printf})
present a special problem for translation.
Consider the following:@footnote{This example is borrowed
-from the GNU @code{gettext} manual.}
+from the GNU @command{gettext} manual.}
@c line broken here only for smallbook format
@example
@@ -26666,8 +26666,8 @@ msgstr "Like, the scoop is"
The next step is to make the directory to hold the binary message object
file and then to create the @file{guide.mo} file.
We pretend that our file is to be used in the @code{en_US.UTF-8} locale.
-The directory layout shown here is standard for GNU @code{gettext} on
-GNU/Linux systems. Other versions of @code{gettext} may use a different
+The directory layout shown here is standard for GNU @command{gettext} on
+GNU/Linux systems. Other versions of @command{gettext} may use a different
layout:
@example
@@ -26720,16 +26720,16 @@ $ @kbd{gawk --posix -f guide.awk -f libintl.awk}
@section @command{gawk} Can Speak Your Language
@command{gawk} itself has been internationalized
-using the GNU @code{gettext} package.
-(GNU @code{gettext} is described in
+using the GNU @command{gettext} package.
+(GNU @command{gettext} is described in
complete detail in
@ifinfo
-@inforef{Top, , GNU @code{gettext} utilities, gettext, GNU gettext tools}.)
+@inforef{Top, , GNU @command{gettext} utilities, gettext, GNU gettext tools}.)
@end ifinfo
@ifnotinfo
@cite{GNU gettext tools}.)
@end ifnotinfo
-As of this writing, the latest version of GNU @code{gettext} is
+As of this writing, the latest version of GNU @command{gettext} is
@uref{ftp://ftp.gnu.org/gnu/gettext/gettext-0.18.2.1.tar.gz, version 0.18.2.1}.
If a translation of @command{gawk}'s messages exists,
@@ -32391,7 +32391,7 @@ code must be compiled. Assuming that the functions are in
a file named @file{filefuncs.c}, and @var{idir} is the location
of the @file{gawkapi.h} header file,
the following steps@footnote{In practice, you would probably want to
-use the GNU Autotools---Automake, Autoconf, Libtool, and Gettext---to
+use the GNU Autotools---Automake, Autoconf, Libtool, and @command{gettext}---to
configure and build your libraries. Instructions for doing so are beyond
the scope of this @value{DOCUMENT}. @xref{gawkextlib}, for WWW links to
the tools.} create a GNU/Linux shared library:
@@ -33145,7 +33145,7 @@ In addition, you must have the GNU Autotools installed
@uref{http://www.gnu.org/software/automake, Automake},
@uref{http://www.gnu.org/software/libtool, Libtool},
and
-@uref{http://www.gnu.org/software/gettext, Gettext}).
+@uref{http://www.gnu.org/software/gettext, GNU @command{gettext}}).
The simple recipe for building and testing @code{gawkextlib} is as follows.
First, build and install @command{gawk}:
@@ -34160,7 +34160,7 @@ The use of GNU Automake to help in standardizing the configuration process
(@pxref{Quick Installation}).
@item
-The use of GNU @code{gettext} for @command{gawk}'s own message output
+The use of GNU @command{gettext} for @command{gawk}'s own message output
(@pxref{Gawk I18N}).
@item
@@ -34741,7 +34741,7 @@ provided the port to BeOS and its documentation.
@cindex Peters, Arno
Arno Peters
did the initial work to convert @command{gawk} to use
-GNU Automake and GNU @code{gettext}.
+GNU Automake and GNU @command{gettext}.
@item
@cindex Broder, Alan J.@:
@@ -34919,7 +34919,6 @@ file and then use @code{tar} to extract it. You can use the following
pipeline to produce the @command{gawk} distribution:
@example
-# Under System V, add 'o' to the tar options
gzip -d -c gawk-@value{VERSION}.@value{PATCHLEVEL}.tar.gz | tar -xvpf -
@end example
@@ -35074,8 +35073,8 @@ actual @file{Makefile} for creating the documentation.
@item Makefile.am
@itemx */Makefile.am
-Files used by the GNU @command{automake} software for generating
-the @file{Makefile.in} files used by @command{autoconf} and
+Files used by the GNU Automake software for generating
+the @file{Makefile.in} files used by Autoconf and
@command{configure}.
@item Makefile.in
@@ -35171,9 +35170,9 @@ to @file{gawk-@value{VERSION}.@value{PATCHLEVEL}}. Like most GNU software,
@command{gawk} is configured
automatically for your system by running the @command{configure} program.
This program is a Bourne shell script that is generated automatically using
-GNU @command{autoconf}.
+GNU Autoconf.
@ifnotinfo
-(The @command{autoconf} software is
+(The Autoconf software is
described fully in
@cite{Autoconf---Generating Automatic Configuration Scripts},
which can be found online at
@@ -35181,7 +35180,7 @@ which can be found online at
the Free Software Foundation's web site}.)
@end ifnotinfo
@ifinfo
-(The @command{autoconf} software is described fully starting with
+(The Autoconf software is described fully starting with
@inforef{Top, , Autoconf, autoconf,Autoconf---Generating Automatic Configuration Scripts}.)
@end ifinfo
@@ -35284,7 +35283,7 @@ improvement.
@cindex @option{--with-whiny-user-strftime} configuration option
@cindex configuration option, @code{--with-whiny-user-strftime}
@item --with-whiny-user-strftime
-Force use of the included version of the @code{strftime()}
+Force use of the included version of the C @code{strftime()}
function for deficient systems.
@end table
@@ -35331,9 +35330,9 @@ should not have. @file{custom.h} is automatically included by
@file{config.h}.
It is also possible that the @command{configure} program generated by
-@command{autoconf} will not work on your system in some other fashion.
+Autoconf will not work on your system in some other fashion.
If you do have a problem, the file @file{configure.ac} is the input for
-@command{autoconf}. You may be able to change this file and generate a
+Autoconf. You may be able to change this file and generate a
new version of @command{configure} that works on your system
(@pxref{Bugs},
for information on how to report problems in configuring @command{gawk}).
@@ -35499,7 +35498,7 @@ and @option{--libexecdir=c:/usr/lib}.
@end ignore
@ignore
-The internal @code{gettext} library tends to be problematic. It is therefore recommended
+The internal @command{gettext} library tends to be problematic. It is therefore recommended
to use either an external one (@option{--without-included-gettext}) or to disable
NLS entirely (@option{--disable-nls}).
@end ignore
@@ -35536,7 +35535,9 @@ Ancient OS/2 ports of GNU @command{make} are not able to handle
the Makefiles of this package. If you encounter any problems with
@command{make}, try GNU Make 3.79.1 or later versions. You should
find the latest version on
-@uref{ftp://hobbes.nmsu.edu/pub/os2/}.
+@uref{ftp://hobbes.nmsu.edu/pub/os2/}.@footnote{As of May, 2014,
+this site is still there, but the author could not find a package
+for GNU Make.}
@end quotation
@end ifclear
@@ -35591,14 +35592,14 @@ program files as described in @ref{AWKPATH Variable}. However,
semicolons (rather than colons) separate elements in the @env{AWKPATH}
variable. If @env{AWKPATH} is not set or is empty, then the default
search path for MS-Windows and MS-DOS versions is
-@code{@w{".;c:/lib/awk;c:/gnu/lib/awk"}}.
+@samp{@w{.;c:/lib/awk;c:/gnu/lib/awk}}.
@ifclear FOR_PRINT
@cindex @command{gawk}, OS/2 version of
@cindex @code{UNIXROOT} variable, on OS/2 systems
The search path for OS/2 (32 bit, EMX) is determined by the prefix directory
(most likely @file{/usr} or @file{c:/usr}) that has been specified as an option of
-the @command{configure} script like it is the case for the Unix versions.
+the @command{configure} script as is the case for the Unix versions.
If @file{c:/usr} is the prefix directory then the default search path contains @file{.}
and @file{c:/usr/share/awk}.
Additionally, to support binary distributions of @command{gawk} for OS/2
@@ -35606,7 +35607,7 @@ systems whose drive @samp{c:} might not support long file names or might not exi
at all, there is a special environment variable. If @env{UNIXROOT} specifies
a drive then this specific drive is also searched for program files.
E.g., if @env{UNIXROOT} is set to @file{e:} the complete default search path is
-@code{@w{".;c:/usr/share/awk;e:/usr/share/awk"}}.
+@samp{@w{.;c:/usr/share/awk;e:/usr/share/awk}}.
An @command{sh}-like shell (as opposed to @command{command.com} under MS-DOS
or @command{cmd.exe} under MS-Windows or OS/2) may be useful for @command{awk} programming.
@@ -35630,8 +35631,8 @@ 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 @code{"\r\n"} to @code{"\n"} on input and @code{"\n"}
-to @code{"\r\n"} on output. A special @code{BINMODE} variable @value{COMMONEXT}
+translate 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:
@itemize @value{BULLET}
@@ -35672,7 +35673,7 @@ The name @code{BINMODE} was chosen to match @command{mawk}
@command{mawk} adds a @samp{-W BINMODE=@var{N}} option and an environment
variable that can set @code{BINMODE}, @code{RS}, and @code{ORS}. The
files @file{binmode[1-3].awk} (under @file{gnu/lib/awk} in some of the
-prepared distributions) have been chosen to match @command{mawk}'s @samp{-W
+prepared binary distributions) have been chosen to match @command{mawk}'s @samp{-W
BINMODE=@var{N}} option. These can be changed or discarded; in particular,
the setting of @code{RS} giving the fewest ``surprises'' is open to debate.
@command{mawk} uses @samp{RS = "\r\n"} if binary mode is set on read, which is
@@ -35796,11 +35797,11 @@ or:
$ @kbd{MMK/DESCRIPTION=[.vms]descrip.mms gawk}
@end example
-@code{MMK} is an open source, free, near-clone of @code{MMS} and
-can better handle @code{ODS-5} volumes with upper- and lowercase filenames.
-@code{MMK} is available from @uref{https://github.com/endlesssoftware/mmk}.
+@command{MMK} is an open source, free, near-clone of @command{MMS} and
+can better handle ODS-5 volumes with upper- and lowercase filenames.
+@command{MMK} is available from @uref{https://github.com/endlesssoftware/mmk}.
-With @code{ODS-5} volumes and extended parsing enabled, the case of the target
+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
@@ -35809,8 +35810,8 @@ 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.@footnote{The IA64 architecture
is also known as ``Itanium.''}
-The @file{[.vms]gawk_build_steps.txt} provides information on how to build
-@command{gawk} into a PCSI kit that is compatible with the GNV product.
+@xref{VMS GNV}, for information on building
+@command{gawk} as a PCSI kit that is compatible with the GNV product.
@node VMS Dynamic Extensions
@appendixsubsubsec Compiling @command{gawk} Dynamic Extensions on VMS
@@ -36015,7 +36016,7 @@ 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
to supply individual PCSI packages for each component.
-See @uref{https://sourceforge.net/p/gnv/wiki/InstallingGNVPackages/}.
+See @w{@uref{https://sourceforge.net/p/gnv/wiki/InstallingGNVPackages/}.}
The normal build procedure for @command{gawk} produces a program that
is suitable for use with GNV.
@@ -36116,12 +36117,14 @@ Once you have a precise problem, send email to
@EMAIL{bug-gawk@@gnu.org,bug-gawk at gnu dot org}.
@cindex Robbins, Arnold
-Using this address automatically sends a copy of your
-mail to me. If necessary, I can be reached directly at
+The @command{gawk} maintainers subscribe to this address and
+thus they will receive your bug report.
+If necessary, the primary maintainer can be reached directly at
@EMAIL{arnold@@skeeve.com,arnold at skeeve dot com}.
The bug reporting address is preferred since the
email list is archived at the GNU Project.
-@emph{All email should be in English, since that is my native language.}
+@emph{All email should be in English. This is the only language
+understood in common by all the maintainers.}
@cindex @code{comp.lang.awk} newsgroup
@quotation CAUTION
@@ -36169,13 +36172,13 @@ as follows:
@cindex Rankin, Pat
@cindex Malmberg, John
@cindex Pitts, Dave
-@multitable {MS-Windows with MINGW} {123456789012345678901234567890123456789001234567890}
+@multitable {MS-Windows with MinGW} {123456789012345678901234567890123456789001234567890}
@item MS-DOS with DJGPP @tab Scott Deifik, @EMAIL{scottd.mail@@sbcglobal.net,scottd dot mail at sbcglobal dot net}.
-@item MS-Windows with MINGW @tab Eli Zaretskii, @EMAIL{eliz@@gnu.org,eliz at gnu dot org}.
+@item 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. OS/2 not mentioned anywhere else
-@c in the print version though.
+@c Leave this in the print version on purpose.
+@c OS/2 is not mentioned anywhere else in the print version though.
@item OS/2 @tab Andreas Buening, @EMAIL{andreas.buening@@nexgo.de,andreas dot buening at nexgo dot de}.
@item VMS @tab Pat Rankin, @EMAIL{r.pat.rankin@@gmail.com,r.pat.rankin at gmail.com}, and
@@ -36334,10 +36337,10 @@ information, see the @uref{http://busybox.net, project's home page}.
@cindex Solaris, POSIX-compliant @command{awk}
@cindex source code, Solaris @command{awk}
@item The OpenSolaris POSIX @command{awk}
-The version of @command{awk} in @file{/usr/xpg4/bin} on Solaris is
-more-or-less POSIX-compliant. It is based on the @command{awk} from
-Mortice Kern Systems for PCs.
-This author was able to make it compile and work under GNU/Linux
+The versions of @command{awk} in @file{/usr/xpg4/bin} and
+@file{/usr/xpg6/bin} on Solaris are more-or-less POSIX-compliant.
+They are based on the @command{awk} from Mortice Kern Systems for PCs.
+This author was 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 Automake) would take more work, and this
has not been done, at least to our knowledge.
@@ -36392,6 +36395,9 @@ under the GPL. It has a large number of extensions over standard
See @uref{http://www.quiktrim.org/QTawk.html} for more information,
including the manual and a download link.
+The project may als be frozen; no new code changes have been made
+since approximately 2008.
+
@item Other Versions
See also the @uref{http://en.wikipedia.org/wiki/Awk_language#Versions_and_implementations,
Wikipedia article}, for information on additional versions.
@@ -36441,7 +36447,7 @@ is one more option available on the command line:
@table @code
@item -Y
@itemx --parsedebug
-Prints out the parse stack information as the program is being parsed.
+Print out the parse stack information as the program is being parsed.
@end table
This option is intended only for serious @command{gawk} developers
@@ -36466,7 +36472,7 @@ as well as any considerations you should bear in mind.
* New Ports:: Porting @command{gawk} to a new operating
system.
* Derived Files:: Why derived files are kept in the
- @command{git} repository.
+ Git repository.
@end menu
@node Accessing The Source
@@ -36490,8 +36496,8 @@ git clone git://git.savannah.gnu.org/gawk.git
@end example
@noindent
-This will clone the @command{gawk} repository. If you are behind a
-firewall that will not allow you to use the Git native protocol, you
+This clones the @command{gawk} repository. If you are behind a
+firewall that does not allow you to use the Git native protocol, you
can still access the repository using:
@example
@@ -36519,7 +36525,7 @@ that has a Git plug-in for working with Git repositories.
You are free to add any new features you like to @command{gawk}.
However, if you want your changes to be incorporated into the @command{gawk}
distribution, there are several steps that you need to take in order to
-make it possible to include your changes:
+make it possible to include them:
@enumerate 1
@item
@@ -36541,8 +36547,9 @@ or @EMAIL{assign@@gnu.org,assign at gnu dot org}.
@item
Get the latest version.
It is much easier for me to integrate changes if they are relative to
-the most recent distributed version of @command{gawk}. If your version of
-@command{gawk} is very old, I may not be able to integrate them at all.
+the most recent distributed version of @command{gawk}, or better yet,
+relative to the latest code in the Git repository. If your version of
+@command{gawk} is very old, I may not be able to integrate your changes at all.
(@xref{Getting},
for information on getting the latest version of @command{gawk}.)
@@ -36673,6 +36680,7 @@ not do so, particularly if there are lots of changes.
Include an entry for the @file{ChangeLog} file with your submission.
This helps further minimize the amount of work I have to do,
making it easier for me to accept patches.
+It is simplest if you just make this part of your diff.
@end enumerate
Although this sounds like a lot of work, please remember that while you
@@ -36730,10 +36738,39 @@ A number of the files that come with @command{gawk} are maintained by other
people. Thus, you should not change them
unless it is for a very good reason; i.e., changes are not out of the
question, but changes to these files are scrutinized extra carefully.
-The files are @file{dfa.c}, @file{dfa.h}, @file{getopt1.c}, @file{getopt.c},
-@file{getopt.h}, @file{install-sh}, @file{mkinstalldirs}, @file{regcomp.c},
-@file{regex.c}, @file{regexec.c}, @file{regexex.c}, @file{regex.h},
-@file{regex_internal.c}, and @file{regex_internal.h}.
+The files are
+@file{dfa.c},
+@file{dfa.h},
+@file{getopt.c},
+@file{getopt.h},
+@file{getopt1.c},
+@file{getopt_int.h},
+@file{gettext.h},
+@file{regcomp.c},
+@file{regex.c},
+@file{regex.h},
+@file{regex_internal.c},
+@file{regex_internal.h},
+and
+@file{regexec.c}.
+
+@item
+A number of other files are provided by the GNU
+Autotools (Autoconf, Automake, and GNU @command{gettext}).
+You should not change them either, unless it is for a very
+good reason. The files are
+@file{ABOUT-NLS},
+@file{config.guess},
+@file{config.rpath},
+@file{config.sub},
+@file{depcomp},
+@file{INSTALL},
+@file{install-sh},
+@file{missing},
+@file{mkinstalldirs},
+@file{xalloc.h},
+and
+@file{ylwrap}.
@item
Be willing to continue to maintain the port.
@@ -36784,16 +36821,16 @@ In the code that you supply and maintain, feel free to use a
coding style and brace layout that suits your taste.
@node Derived Files
-@appendixsubsec Why Generated Files Are Kept In @command{git}
+@appendixsubsec Why Generated Files Are Kept In Git
@c STARTOFRANGE gawkgit
-@cindex @command{git}, use of for @command{gawk} source code
+@cindex Git, use of for @command{gawk} source code
@c From emails written March 22, 2012, to the gawk developers list.
-If you look at the @command{gawk} source in the @command{git}
+If you look at the @command{gawk} source in the Git
repository, you will notice that it includes files that are automatically
generated by GNU infrastructure tools, such as @file{Makefile.in} from
-@command{automake} and even @file{configure} from @command{autoconf}.
+Automake and even @file{configure} from Autoconf.
This is different from many Free Software projects that do not store
the derived files, because that keeps the repository less cluttered,
@@ -36819,11 +36856,10 @@ there a guarantee that we could find that @command{bison} version? Or that
@emph{it} would build?)
If the repository has all the generated files, then it's easy to just check
-them out and build. (Or @emph{easier}, depending upon how far back we go.
-@code{:-)})
+them out and build. (Or @emph{easier}, depending upon how far back we go.)
And that brings us to the second (and stronger) reason why all the files
-really need to be in @command{git}. It boils down to who do you cater
+really need to be in Git. It boils down to who do you cater
to---the @command{gawk} developer(s), or the user who just wants to check
out a version and try it out?
@@ -36832,10 +36868,10 @@ wants it to be possible for any interested @command{awk} user in the
world to just clone the repository, check out the branch of interest and
build it. Without their having to have the correct version(s) of the
autotools.@footnote{There is one GNU program that is (in our opinion)
-severely difficult to bootstrap from the @command{git} repository. For
-example, on the author's old (but still working) PowerPC macintosh with
+severely difficult to bootstrap from the Git repository. For
+example, on the author's old (but still working) PowerPC Macintosh with
Mac OS X 10.5, it was necessary to bootstrap a ton of software, starting
-with @command{git} itself, in order to try to work with the latest code.
+with Git itself, in order to try to work with the latest code.
It's not pleasant, and especially on older systems, it's a big waste
of time.
@@ -36858,14 +36894,14 @@ This is extremely important for the @code{master} and
Further, the @command{gawk} maintainer would argue that it's also
important for the @command{gawk} developers. When he tried to check out
-the @code{xgawk} branch@footnote{A branch created by one of the other
+the @code{xgawk} branch@footnote{A branch (since removed) created by one of the other
developers that did not include the generated files.} to build it, he
couldn't. (No @file{ltmain.sh} file, and he had no idea how to create it,
and that was not the only problem.)
He felt @emph{extremely} frustrated. With respect to that branch,
the maintainer is no different than Jane User who wants to try to build
-@code{gawk-4.0-stable} or @code{master} from the repository.
+@code{gawk-4.1-stable} or @code{master} from the repository.
Thus, the maintainer thinks that it's not just important, but critical,
that for any given branch, the above incantation @emph{just works}.
@@ -36885,14 +36921,14 @@ It's the maintainer's job to merge them and he will deal with it.
@item
He is really good at @samp{git diff x y > /tmp/diff1 ; gvim /tmp/diff1} to
-remove the diffs that aren't of interest in order to review code. @code{:-)}
+remove the diffs that aren't of interest in order to review code.
@end enumerate
@item
It would certainly help if everyone used the same versions of the GNU tools
as he does, which in general are the latest released versions of
-@command{automake},
-@command{autoconf},
+Automake,
+Autoconf,
@command{bison},
and
@command{gettext}.
@@ -36904,10 +36940,10 @@ now it hasn't been a real issue since I'm the only one who's been
dorking with the configuration machinery.
@end ignore
-@enumerate A
-@item
-Installing from source is quite easy. It's how the maintainer worked for years
-under Fedora.
+@c @enumerate A
+@c @item
+Installing from source is quite easy. It's how the maintainer worked for years,
+and still works.
He had @file{/usr/local/bin} at the front of his @env{PATH} and just did:
@example
@@ -36918,10 +36954,11 @@ cd @var{package}-@var{x}.@var{y}.@var{z}
make install # as root
@end example
-@item
+@c @item
+@ignore
These days the maintainer uses Ubuntu 12.04 which is medium current, but
-he is already doing the above for @command{autoconf}, @command{automake}
-and @command{bison}.
+he is already doing the above for Automake, Autoconf, and @command{bison}.
+@end ignore
@ignore
(C. Rant: Recent Linux versions with GNOME 3 really suck. What
@@ -36929,7 +36966,7 @@ and @command{bison}.
me to Ubuntu, but Ubuntu 11.04 and 11.10 are totally unusable from
a UI perspective. Bleah.)
@end ignore
-@end enumerate
+@c @end enumerate
@ignore
@item
@@ -36945,7 +36982,7 @@ the "real" changes and the second with "everything else needed for
Most of the above was originally written by the maintainer to other
@command{gawk} developers. It raised the objection from one of
the developers ``@dots{} that anybody pulling down the source from
-@command{git} is not an end user.''
+Git is not an end user.''
However, this is not true. There are ``power @command{awk} users''
who can build @command{gawk} (using the magic incantation shown previously)
@@ -36955,10 +36992,10 @@ kept buildable all the time.
It was then suggested that there be a @command{cron} job to create
nightly tarballs of ``the source.'' Here, the problem is that there
are source trees, corresponding to the various branches! So,
-nightly tar balls aren't the answer, especially as the repository can go
+nightly tarballs aren't the answer, especially as the repository can go
for weeks without significant change being introduced.
-Fortunately, the @command{git} server can meet this need. For any given
+Fortunately, the Git server can meet this need. For any given
branch named @var{branchname}, use:
@example
@@ -37018,9 +37055,10 @@ Larry
@author Larry Wall
@end quotation
-The @file{TODO} file in the @command{gawk} Git repository lists possible
-future enhancements. Some of these relate to the source code, and others
-to possible new features. Please see that file for the list.
+The @file{TODO} file in the @code{master} branch of the @command{gawk}
+Git repository lists possible future enhancements. Some of these relate
+to the source code, and others to possible new features. Please see
+that file for the list.
@xref{Additions},
if you are interested in tackling any of the projects listed there.
@@ -37092,8 +37130,8 @@ documentation in this @value{DOCUMENT}, but it was quite minimal.
@item
Being able to call into @command{gawk} from an extension required linker
facilities that are common on Unix-derived systems but that did
-not work on Windows systems; users wanting extensions on Windows
-had to statically link them into @command{gawk}, even though Windows supports
+not work on MS-Windows systems; users wanting extensions on MS-Windows
+had to statically link them into @command{gawk}, even though MS-Windows supports
dynamic loading of shared objects.
@item
@@ -37147,7 +37185,7 @@ in order to loop over all the element in an easy fashion for C code.
@item
The ability to create arrays (including @command{gawk}'s true
-multidimensional arrays).
+arrays of arrays).
@end itemize
@end itemize
@@ -37168,8 +37206,8 @@ The API mechanism should not require access to @command{gawk}'s
symbols@footnote{The @dfn{symbols} are the variables and functions
defined inside @command{gawk}. Access to these symbols by code
external to @command{gawk} loaded dynamically at runtime is
-problematic on Windows.} by the compile-time or dynamic linker,
-in order to enable creation of extensions that also work on Windows.
+problematic on MS-Windows.} by the compile-time or dynamic linker,
+in order to enable creation of extensions that also work on MS-Windows.
@end itemize
During development, it became clear that there were other features
@@ -37516,14 +37554,14 @@ like this: @code{""}.
Humans are used to working in decimal; i.e., base 10. In base 10,
numbers go from 0 to 9, and then ``roll over'' into the next
-column. (Remember grade school? 42 is 4 times 10 plus 2.)
+column. (Remember grade school? 42 = 4 x 10 + 2.)
There are other number bases though. Computers commonly use base 2
or @dfn{binary}, base 8 or @dfn{octal}, and base 16 or @dfn{hexadecimal}.
In binary, each column represents two times the value in the column to
its right. Each column may contain either a 0 or a 1.
-Thus, binary 1010 represents 1 times 8, plus 0 times 4, plus 1 times 2,
-plus 0 times 1, or decimal 10.
+Thus, binary 1010 represents (1 x 8) + (0 x 4) + (1 x 2)
++ (0 x 1), or decimal 10.
Octal and hexadecimal are discussed more in
@ref{Nondecimal-numbers}.
@@ -37560,7 +37598,7 @@ Where it makes sense, POSIX @command{awk} is compatible with 1999 ISO C.
@item Action
A series of @command{awk} statements attached to a rule. If the rule's
pattern matches an input record, @command{awk} executes the
-rule's action. Actions are always enclosed in curly braces.
+rule's action. Actions are always enclosed in braces.
(@xref{Action Overview}.)
@cindex Spencer, Henry
@@ -37665,7 +37703,7 @@ Named after the English mathematician Boole. See also ``Logical Expression.''
@item Bourne Shell
The standard shell (@file{/bin/sh}) on Unix and Unix-like systems,
-originally written by Steven R.@: Bourne.
+originally written by Steven R.@: Bourne at Bell Laboratories.
Many shells (Bash, @command{ksh}, @command{pdksh}, @command{zsh}) are
generally upwardly compatible with the Bourne shell.
@@ -37715,7 +37753,9 @@ Changing some of them affects @command{awk}'s running environment.
(@xref{Built-in Variables}.)
@item Braces
-See ``Curly Braces.''
+The characters @samp{@{} and @samp{@}}. Braces are used in
+@command{awk} for delimiting actions, compound statements, and function
+bodies.
@item C
The system programming language that most GNU software is written in. The
@@ -37740,7 +37780,7 @@ or place. The most common character set in use today is ASCII (American
Standard Code for Information Interchange). Many European
countries use an extension of ASCII known as ISO-8859-1 (ISO Latin-1).
The @uref{http://www.unicode.org, Unicode character set} is
-becoming increasingly popular and standard, and is particularly
+increasingly popular and standard, and is particularly
widely used on GNU/Linux systems.
@cindex Kernighan, Brian
@@ -37753,10 +37793,11 @@ It was written in @command{awk}
by Brian Kernighan and Jon Bentley, and is available from
@uref{http://netlib.sandia.gov/netlib/typesetting/chem.gz}.
+@cindex McIlroy, Doug
@cindex cookie
@item Cookie
A peculiar goodie, token, saying or remembrance
-produced by or presented to a program. (With thanks to Doug McIlroy.)
+produced by or presented to a program. (With thanks to Professor Doug McIlroy.)
@ignore
From: Doug McIlroy <doug@cs.dartmouth.edu>
Date: Sat, 13 Oct 2012 19:55:25 -0400
@@ -37834,9 +37875,7 @@ statements, and in patterns to select which input records to process.
(@xref{Typing and Comparison}.)
@item Curly Braces
-The characters @samp{@{} and @samp{@}}. Curly braces are used in
-@command{awk} for delimiting actions, compound statements, and function
-bodies.
+See ``Braces.''
@cindex dark corner
@item Dark Corner
@@ -37881,7 +37920,7 @@ ordinary expression. It could be a string constant, such as
(@xref{Computed Regexps}.)
@item Environment
-A collection of strings, of the form @var{name}@code{=}@code{val}, that each
+A collection of strings, of the form @samp{@var{name}=@var{val}}, that each
program has available to it. Users generally place values into the
environment in order to provide information to various programs. Typical
examples are the environment variables @env{HOME} and @env{PATH}.
@@ -37935,8 +37974,8 @@ this is just a number that can have a fractional part.
See also ``Double Precision'' and ``Single Precision.''
@item Format
-Format strings are used to control the appearance of output in the
-@code{strftime()} and @code{sprintf()} functions, and are used in the
+Format strings control the appearance of output in the
+@code{strftime()} and @code{sprintf()} functions, and in the
@code{printf} statement as well. Also, data conversions from numbers to strings
are controlled by the format strings contained in the built-in variables
@code{CONVFMT} and @code{OFMT}. (@xref{Control Letters}.)
@@ -38005,7 +38044,7 @@ Base 16 notation, where the digits are @code{0}--@code{9} and
@code{A}--@code{F}, with @samp{A}
representing 10, @samp{B} representing 11, and so on, up to @samp{F} for 15.
Hexadecimal numbers are written in C using a leading @samp{0x},
-to indicate their base. Thus, @code{0x12} is 18 (1 times 16 plus 2).
+to indicate their base. Thus, @code{0x12} is 18 ((1 x 16) + 2).
@xref{Nondecimal-numbers}.
@item I/O
@@ -38079,8 +38118,8 @@ meaning. Keywords are reserved and may not be used as variable names.
@code{function},
@code{func},
@code{if},
-@code{nextfile},
@code{next},
+@code{nextfile},
@code{switch},
and
@code{while}.
@@ -38141,13 +38180,9 @@ Ancient @command{awk} implementations used single precision floating-point.
@item Octal
Base-eight notation, where the digits are @code{0}--@code{7}.
Octal numbers are written in C using a leading @samp{0},
-to indicate their base. Thus, @code{013} is 11 (one times 8 plus 3).
+to indicate their base. Thus, @code{013} is 11 ((1 x 8) + 3).
@xref{Nondecimal-numbers}.
-@cindex P1003.1 POSIX standard
-@item P1003.1
-See ``POSIX.''
-
@item Pattern
Patterns tell @command{awk} which input records are interesting to which
rules.
@@ -38188,8 +38223,8 @@ specify single lines. (@xref{Pattern Overview}.)
@item Recursion
When a function calls itself, either directly or indirectly.
-As long as this is not clear, refer to the entry for ``recursion.''
If this is clear, stop, and proceed to the next entry.
+Otherwise, refer to the entry for ``recursion.''
@item Redirection
Redirection means performing input from something other than the standard input
@@ -38268,7 +38303,7 @@ expressions, and function calls have side effects.
An internal representation of numbers that can have fractional parts.
Single precision numbers keep track of fewer digits than do double precision
numbers, but operations on them are sometimes less expensive in terms of CPU time.
-This is the type used by some very old versions of @command{awk} to store
+This is the type used by some ancient versions of @command{awk} to store
numeric values. It is the C type @code{float}.
@item Space
@@ -38305,7 +38340,7 @@ into the local language.
A value in the ``seconds since the epoch'' format used by Unix
and POSIX systems. Used for the @command{gawk} functions
@code{mktime()}, @code{strftime()}, and @code{systime()}.
-See also ``Epoch'' and ``UTC.''
+See also ``Epoch,'' ``GMT,'' and ``UTC.''
@cindex Linux
@cindex GNU/Linux