texinfo-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[5946] new texindex implementation in awk, by Arnold Robbins


From: karl
Subject: [5946] new texindex implementation in awk, by Arnold Robbins
Date: Wed, 03 Dec 2014 00:57:17 +0000

Revision: 5946
          http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=5946
Author:   karl
Date:     2014-12-03 00:57:15 +0000 (Wed, 03 Dec 2014)
Log Message:
-----------
new texindex implementation in awk, by Arnold Robbins

Added Paths:
-----------
    trunk/texindex/
    trunk/texindex/ChangeLog
    trunk/texindex/Makefile
    trunk/texindex/README
    trunk/texindex/donald_knuth.png
    trunk/texindex/jrtangle
    trunk/texindex/jrweave
    trunk/texindex/tests/
    trunk/texindex/tests/gawk.cp
    trunk/texindex/tests/gawk.cps
    trunk/texindex/tests/gawk.cps-cvers
    trunk/texindex/tests/gawk.cps-good
    trunk/texindex/tests/texinfo.cp
    trunk/texindex/tests/texinfo.cps
    trunk/texindex/tests/texinfo.cps-cvers
    trunk/texindex/tests/texinfo.cps-good
    trunk/texindex/tests/texinfo.fn
    trunk/texindex/tests/texinfo.fns
    trunk/texindex/tests/texinfo.fns-cvers
    trunk/texindex/tests/texinfo.fns-good
    trunk/texindex/ti.twjr

Added: trunk/texindex/ChangeLog
===================================================================
--- trunk/texindex/ChangeLog                            (rev 0)
+++ trunk/texindex/ChangeLog    2014-12-03 00:57:15 UTC (rev 5946)
@@ -0,0 +1,68 @@
+2014-08-07         Arnold D. Robbins     <address@hidden>
+
+       * ti.twjr: Typo fix in an index entry. Change the update month
+       and increase version to 0.95.
+
+2014-05-30         Arnold D. Robbins     <address@hidden>
+
+       * README: New file.
+       * tests: New directory with some regression tests.
+       * jrtangle, jrweave: Copied from TexiWebJr to have standalone.
+
+       *****
+
+       * All: Pushed to https://github.com/arnoldrobbins/texindex.
+
+2014-04-26         Arnold D. Robbins     <address@hidden>
+
+       * ti.twjr: Remove summaries appendix. Not needed with better
+       formatting from jrweave.  Bump version to 0.94.
+
+2014-04-16         Arnold D. Robbins     <address@hidden>
+
+       * ti.twjr: Bug fix. Multiple files had junk in second and
+       subsequent output files. Needed to clear out more data between
+       files. Bump version to 0.93.
+
+2014-03-21         Arnold D. Robbins     <address@hidden>
+
+       * ti.twjr: General cleanup and finalizatio of the text. Bump
+       version to 0.92.
+
+2014-03-17         Arnold D. Robbins     <address@hidden>
+
+       * ti.twjr: Fix case in chunk names.
+
+2014-03-14         Arnold D. Robbins     <address@hidden>
+
+       * ti.twjr: Add a few commands to make the PDF nicer.
+
+2014-03-04         Arnold D. Robbins     <address@hidden>
+
+       * ti.twjr: Polished up. Add an XKCD cartoon. Bump version to 0.9.
+       * donald_knuth.jpg: New file.
+
+2014-03-03         Arnold D. Robbins     <address@hidden>
+
+       * ti.twjr: Rework where initial extraction is done. Set up to
+       produce \{ and \}. Works when used with itself to sort the
+       index!  Woo hoo!
+
+2014-02-27         Arnold D. Robbins     <address@hidden>
+
+       * ti.twjr: Revise extraction of the initial as per Karl.
+       Still needs more documentation but I think we've hit
+       functionally complete.
+
+2014-02-26         Arnold D. Robbins     <address@hidden>
+
+       * ti.twjr: Sorting in and seems to work well. Still need to add
+       more descriptive prose.  Did some cleanup and added menues.
+
+2014-02-25         Arnold D. Robbins     <address@hidden>
+
+       * ti.twjr: Just about done, except for sorting.
+
+2014-02-24         Arnold D. Robbins     <address@hidden>
+
+       * ti.twjr, texinfo.tex, Makefile: Initial check-in.

Added: trunk/texindex/Makefile
===================================================================
--- trunk/texindex/Makefile                             (rev 0)
+++ trunk/texindex/Makefile     2014-12-03 00:57:15 UTC (rev 5946)
@@ -0,0 +1,18 @@
+SOURCE = ti.twjr
+TEXISOURCE = ti.texi
+
+all: texindex.awk ti.pdf
+
+$(TEXISOURCE): $(SOURCE)
+       ./jrweave $(SOURCE) > $(TEXISOURCE)
+
+texindex.awk: $(SOURCE)
+       ./jrtangle $(SOURCE)
+
+ti.pdf: $(TEXISOURCE)
+       texi2dvi --pdf --batch --build-dir=ti.t2p -o ti.pdf ti.texi
+
+html: ti.html
+
+ti.html: $(TEXISOURCE)
+       makeinfo --no-split --html $(TEXISOURCE)


Property changes on: trunk/texindex/Makefile
___________________________________________________________________
Added: svn:eol-style
   + native

Added: trunk/texindex/README
===================================================================
--- trunk/texindex/README                               (rev 0)
+++ trunk/texindex/README       2014-12-03 00:57:15 UTC (rev 5946)
@@ -0,0 +1,24 @@
+Fri May 30 10:31:20 IDT 2014
+============================
+
+This is texindex.awk, a replacement version of the texindex.c program
+from Texinfo. It's written in a literate style using TexiWebJr.
+
+ChangeLog              --- What it looks like
+Makefile               --- What it looks like
+README                 --- What it looks like
+donald_knuth.png       --- A cute cartoon
+jrtangle               --- TexiWeb Jr tangle program
+jrweave                        --- TexiWeb Jr weave program
+texindex.awk           --- The program (created from ti.twjr)
+tests/gawk.cp          --- Gawk manual unsorted index, test input
+tests/gawk.cps-cvers   --- Output of same from C version
+tests/gawk.cps-good    --- Output of same from awk version
+tests/texinfo.cp       --- Texinfo manual unsorted index, test input
+tests/texinfo.cps-cvers        --- Output of same from C version
+tests/texinfo.cps-good --- Output of same from awk version
+tests/texinfo.fn       --- Texinfo manual unsorted index, test input
+tests/texinfo.fns-cvers        --- Output of same from C version
+tests/texinfo.fns-good --- Output of same from awk version
+tests/texinfo.tex      --- What it looks like
+ti.twjr                        --- TexiWeb Jr source file


Property changes on: trunk/texindex/README
___________________________________________________________________
Added: svn:eol-style
   + native

Added: trunk/texindex/donald_knuth.png
===================================================================
(Binary files differ)


Property changes on: trunk/texindex/donald_knuth.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: trunk/texindex/jrtangle
===================================================================
--- trunk/texindex/jrtangle                             (rev 0)
+++ trunk/texindex/jrtangle     2014-12-03 00:57:15 UTC (rev 5946)
@@ -0,0 +1,462 @@
+#! /usr/local/bin/gawk -f
+#
+# Copyright (C) 2013, 2014 Arnold David Robbins
+# 
+# This file is part of TexiWeb Jr., a literate programming system.
+# 
+# TexiWeb Jr. is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+# 
+# TexiWeb Jr. is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, 
USA
+BEGIN {
+       TRUE = 1
+       FALSE = 0
+       File_chunk_pattern = 
"address@hidden(([^)]+)@\\)[[:space:]]*=[[:space:]]*$"
+       Code_chunk_pattern = "^@" "<(.+)" "@>[[:space:]]*=[[:space:]]*$"
+       Chunk_name_pattern = "@<[^>\n]+@>"
+}
+# Error checking:
+
+# Use brackets to avoid triggering the warning on ourselves!
+/(^<address@hidden)|(>address@hidden([[:space:]]*=[[:space:]]*)?$)/    {
+       # Ditto, with concatenation
+       warning("<" "@ or >" "@ used instead of @" "< or @" ">\n\t%s\n",
+                       $0)
+}
+
+END {
+       check_unfinished()
+}
+# check_unfinished --- print a fatal error when an unfinished code or
+#                      file chunk is detected. Also ifweave / iftangle.
+
+function check_unfinished()
+{
+       if (Flags["file chunk"])
+               fatal(_"unfinished file chunk (started at %s)\n",
+                       Line_numbers["file chunk"])
+       else if (Flags["code chunk"])
+               fatal(_"unfinished code chunk (started at %s)\n",
+                       Line_numbers["code chunk"])
+
+       if ("ifweave" in Line_numbers)
+               fatal(_"unfinished @ifweave section (started at %s)\n",
+                       Line_numbers["ifweave"])
+
+       if ("iftangle" in Line_numbers)
+               fatal(_"unfinished @iftangle section (started at %s)\n",
+                       Line_numbers["iftangle"])
+}
+# strip_out_name --- get the name from name
+
+function strip_out_name(name,  l)
+{
+       l = length(name)
+       name = substr(name, 3, l - 4)
+
+       return name
+}
+# Helper functions
+
+# message --- write a particular kind of message out to stderr
+
+function message(msg, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
+{
+       printf("%s:%d: %s: " format, FILENAME, FNR, msg,
+               a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) > "/dev/stderr"
+
+       if (substr(format, length(format), 1) != "\n")
+               printf("\n") > "/dev/stderr"
+}
+
+# fatal --- print a fatal error message and exit.
+#       No varargs, so fake it with lots of parameters.
+
+function fatal(format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
+{
+       message(_"fatal", format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
+       exit 1
+}
+
+# warning --- print a warning message to stderr
+#       No varargs, so fake it with lots of parameters.
+
+function warning(format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
+{
+       message(_"warning", format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
+}
+
+# join.awk --- join an array into a string
+#
+# Arnold Robbins, address@hidden, Public Domain
+# May 1993
+
+function join(array, start, end, sep,    result, i)
+{
+       if (sep == "")
+               sep = " "
+       else if (sep == SUBSEP) # magic value
+               sep = ""
+       result = array[start]
+       for (i = start + 1; i <= end; i++)
+               result = result sep array[i]
+       return result
+}
+# ifweave lines should be removed
+
+/address@hidden:space:]]*$/, /address@hidden ifweave[[:space:]]*$/ {
+       if ("iftangle" in Line_numbers)
+               fatal(_"cannot nest @ifweave inside @iftangle\n")
+
+       # start of construct, save line number
+       if (/address@hidden:space:]]*$/)
+               Line_numbers["ifweave"] = (FILENAME ":" FNR)
+
+       # end of construct, delete line number
+       if (/address@hidden ifweave[[:space:]]*$/)
+               delete Line_numbers["ifweave"]
+
+       # simply skip these lines, this is tangling
+       next
+}
+
+# For tangling we remove the bracketing control lines and let anything
+# in between fall through.
+
+/address@hidden:space:]]*$/, /address@hidden iftangle[[:space:]]*$/ {
+       if ("ifweave" in Line_numbers)
+               fatal(_"cannot nest @iftangle inside @ifweave\n")
+
+       # start of construct, save line number, skip this line
+       if (/address@hidden:space:]]*$/) {
+               Line_numbers["iftangle"] = (FILENAME ":" FNR)
+               next
+       }
+
+       # end of construct, delete line number, skip this line
+       if (/address@hidden iftangle[[:space:]]*$/) {
+               delete Line_numbers["iftangle"]
+               next
+       }
+
+       # otherwise fall through into the rest of the code
+}
+$0 ~ Code_chunk_pattern {
+       Chunk_type = "code chunk"
+       Pattern = Code_chunk_pattern
+       Debug_pat = "code"
+       new_chunk = gensub(Pattern, "\\1", 1)
+       if (Flags[Chunk_type]) {
+               fatal(_"%s start of %s found while still collecting %s\n",
+                       Chunk_type, new_chunk, Current_chunk)
+       }
+       check_unfinished()
+       
+       Flags[Chunk_type] = TRUE
+       Line_numbers[Chunk_type] = (FILENAME ":" FNR)
+       Current_chunk = new_chunk
+       Chunk_info[Current_chunk]["type"] = Chunk_type
+       
+       if (Debug ~ Debug_pat)
+               printf("saw new %s %s\n", Debug_pat, Current_chunk) > 
"/dev/stderr"
+       next
+}
+$0 ~ File_chunk_pattern {
+       Chunk_type = "file chunk"
+       Pattern = File_chunk_pattern
+       Debug_pat = "filename"
+       new_chunk = gensub(Pattern, "\\1", 1)
+       if (Flags[Chunk_type]) {
+               fatal(_"%s start of %s found while still collecting %s\n",
+                       Chunk_type, new_chunk, Current_chunk)
+       }
+       check_unfinished()
+       
+       Flags[Chunk_type] = TRUE
+       Line_numbers[Chunk_type] = (FILENAME ":" FNR)
+       Current_chunk = new_chunk
+       Chunk_info[Current_chunk]["type"] = Chunk_type
+       
+       if (Debug ~ Debug_pat)
+               printf("saw new %s %s\n", Debug_pat, Current_chunk) > 
"/dev/stderr"
+       next
+}
+/address@hidden:space:]]*$/ {
+       if (Flags["file chunk"])
+               end_file_gathering()
+       else if (Flags["code chunk"])
+               end_code_gathering()
+       else
+               warning(_"unmatched terminating @-sign: ignored\n")
+
+       Chunk_lines = ""
+       Flags[Chunk_type] = FALSE
+       Line_numbers[Chunk_type] = ""
+       Chunk_type = ""
+
+       next
+}
+Flags["file chunk"] || Flags["code chunk"] {
+       if (Chunk_lines == "")
+               Chunk_lines = $0
+       else
+               Chunk_lines = Chunk_lines "\n" $0
+
+       next
+}
+# end_file_gathering ---finish up collecting a file
+
+function end_file_gathering()
+{
+       if (Current_chunk in File_contents)
+               File_contents[Current_chunk] = \
+                       File_contents[Current_chunk] "\n" Chunk_lines
+       else
+               File_contents[Current_chunk] = Chunk_lines
+
+       if (Debug ~ /filename/)
+               printf("finished collecting file %s\n",
+                                               Current_chunk) > "/dev/stderr"
+}
+# end_code_gathering --- complete collecting lines of the code chunk
+
+function end_code_gathering()
+{
+       if (Current_chunk in Code_contents)
+               Code_contents[Current_chunk] = \
+                       Code_contents[Current_chunk] "\n" Chunk_lines
+       else
+               Code_contents[Current_chunk] = Chunk_lines
+
+       if (Debug ~ /code/)
+               printf("finished collecting %s\n",
+                                       Current_chunk) > "/dev/stderr"
+}
+# Finishing off code is easy, at least from 10,000 feet.
+
+END {
+       if (length(Initial_setup) > 0) {
+               Initial_setup = Initial_setup "\n"
+               system(Shell_debug Initial_setup)
+       }
+
+       dump_files()
+
+       if (Debug ~ /code/)
+               dump_chunks()
+}
+# dump_files --- create files and update them as needed
+
+function dump_files(   i, s, update_recipe)
+{
+       for (i in File_contents) {
+               s = expand_code_chunks(File_contents[i])
+
+               create_update_recipe(i, update_recipe)
+               printf("%s\n", s) > update_recipe["output"]
+               close(update_recipe["output"])
+
+               # update the file if necessary
+               update_recipe["recipe"] = (Shell_debug update_recipe["recipe"])
+               system(update_recipe["recipe"])
+
+               # run any "post create" command (such as changing mode)
+               if (i in Post_create_commands)
+                       system(Shell_debug Post_create_commands[i])
+       }
+}
+# expand_code_chunks --- expand embedded code chunks.
+
+function expand_code_chunks(contents)
+{
+       delete Currently_expanding
+
+       return do_expand_code_chunks(contents)
+}
+# do_expand_code_chunks --- do the actual work to expand code chunks
+
+function do_expand_code_chunks(contents,
+                                                               nlines, lines, 
results, i, j) # locals
+{
+       nlines = split(contents, lines, "\n")
+
+       for (i = 1; i <= nlines; i++) {
+               if (lines[i] !~ Chunk_name_pattern) {
+                       results[i] = lines[i]
+               } else
+                       results[i] = expand_one_line(lines[i])
+       }
+
+       return join(results, 1, nlines, "\n")
+}
+# expand_one_line --- expand a line with code chunk references
+
+function expand_one_line(input_line,   parts, chunk_names, nparts,
+                                                                               
num_names, code_lines, i, j)
+{
+       nparts = split(input_line, parts, Chunk_name_pattern, chunk_names)
+       num_names = length(chunk_names)
+       # check for recursive expansion
+       for (i = 1; i <= num_names; i++) {
+               j = strip_out_name(chunk_names[i])
+       
+               if (! (j in Code_contents))
+                       fatal(_"expand_one_line: code chunk `%s' used but not 
defined\n",
+                               chunk_names[i])
+       
+               if (j in Currently_expanding)
+                       fatal(_"expand_one_line: code chunk `%s' expands itself 
recursively\n",
+                               chunk_names[i])
+               else
+                       Currently_expanding[j] = TRUE
+       }
+       code_lines = code_body(chunk_names[1])
+       delete Currently_expanding[strip_out_name(chunk_names[1])]
+       
+       if (input_line !~ ("^" Chunk_name_pattern)) {
+               if (parts[1] ~ /^[[:space:]]+$/) {
+                       # insert leading white space on all lines to get 
indentation
+                       gsub(/^|\n/, ("&" parts[1]), code_lines)
+               } else {
+                       code_lines = parts[1] code_lines
+               }
+       }
+       for (i = 2; i <= nparts; i++) {
+               code_lines = code_lines parts[i]
+               if (i in chunk_names) {
+                       code_lines = code_lines code_body(chunk_names[i])
+                       delete 
Currently_expanding[strip_out_name(chunk_names[i])]
+               }
+       }
+
+       if (code_lines ~ Chunk_name_pattern) {
+               # get any further code chunks, recursively
+               return do_expand_code_chunks(code_lines)
+       } else
+               return code_lines
+}
+# code_body --- get the code body associated with name
+
+function code_body(name)
+{
+       return Code_contents[strip_out_name(name)]
+}
+/address@hidden:space:]]*$/, /address@hidden initial_setup[[:space:]]*$/ {
+       if (/address@hidden:space:]]*$/) {
+               # start of construct, save line number, skip this line
+               if ("initial_setup" in Line_numbers)
+                       fatal(_"cannot nest one @initial_setup inside 
another\n")
+               Line_numbers["initial_setup"] = (FILENAME ":" FNR)
+               Initial_setup = ""
+       } else if (/address@hidden initial_setup[[:space:]]*$/) {
+               # end of construct, delete line number, skip this line
+               delete Line_numbers["initial_setup"]
+       } else
+               Initial_setup = Initial_setup "\n" $0
+
+       next
+}
+BEGIN {
+       Update_recipe = \
+               "PATH=/bin:/usr/bin\n" \
+               "export PATH\n" \
+               "destname=\"@DIR@/@address@hidden"\n" \
+               "outname=\"address@hidden@\"\n" \
+               "if [ ! -f \"$destname\" ]\n" \
+               "then\n" \
+               "\tmv \"$outname\" \"$destname\"\n" \
+               "elif cmp -s \"$outname\" \"$destname\" > /dev/null\n" \
+               "then\n" \
+               "\trm \"$outname\"\n" \
+               "else\n" \
+               "\tmv \"$outname\" \"$destname\"\n" \
+               "fi\n"
+}
+/address@hidden:space:]]*$/,
+                       /address@hidden file_update_recipe[[:space:]]*$/ {
+       if (/address@hidden:space:]]*$/) {
+               # start of construct, save line number, skip this line
+               if ("file_update_recipe" in Line_numbers)
+                       fatal(_"cannot nest one @file_update_recipe inside 
another\n")
+               Line_numbers["file_update_recipe"] = (FILENAME ":" FNR)
+               Update_recipe = ""
+       } if (/address@hidden file_update_recipe[[:space:]]*$/) {
+               # end of construct, delete line number, skip this line
+               delete Line_numbers["file_update_recipe"]
+       } else
+               Update_recipe = Update_recipe "\n" $0
+
+       next
+}
+BEGIN {
+       # @default is an unlikely name for a real file
+       Update_value["@default"]["DIR"] = "."   # current directory
+       Update_value["@default"]["SUFFIX"] = ".tangle_tmp"      # unlikely 
suffix
+       # No default for filename, jrtangle knows it!
+}
+/address@hidden:space:]]/ {
+       if (NF != 4)
+               fatal(_"usage: @file_update name dir suffix\n")
+
+       Update_value[$2]["DIR"] = $3
+       Update_value[$2]["SUFFIX"] = $4
+
+       next
+}
+# create_update_recipe --- create update recipe per file,
+#                                                      return dest filename
+
+function create_update_recipe(file, results,
+                                                       source_file, dir, 
suffix, recipe) # locals
+{
+       if (file in Update_value)
+               source_file = file
+       else
+               source_file = "@default"
+
+       dir = Update_value[source_file]["DIR"]
+       suffix = Update_value[source_file]["SUFFIX"]
+
+       delete results
+
+       recipe = Update_recipe
+       gsub(/@DIR@/, dir, recipe)
+       gsub(/@FILE@/, file, recipe)
+       gsub(/@SUFFIX@/, suffix, recipe)
+
+       results["recipe"] = recipe
+       results["output"] = (dir "/" file suffix)
+}
+BEGIN {
+       if (Debug ~ /shell/)
+               if (length(Shell_debug) == 0)
+                       Shell_debug = "set -x; "
+}
+/address@hidden:space:]]+/ {
+       if (NF < 3)
+               fatal(_"usage: @post_create filename command\n")
+       check_unfinished()
+
+       name = $2
+       $1 = $2 = ""
+       $0 = $0
+       Post_create_commands[name] = $0
+}
+# dump_chunks --- print out all the chunks
+
+function dump_chunks(  i, format)
+{
+       format = "@<%s"
+       format = format "@>address@hidden"
+       for (i in Code_contents)
+               printf(format, i, Code_contents[i]) > "/dev/stderr"
+}


Property changes on: trunk/texindex/jrtangle
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/texindex/jrweave
===================================================================
--- trunk/texindex/jrweave                              (rev 0)
+++ trunk/texindex/jrweave      2014-12-03 00:57:15 UTC (rev 5946)
@@ -0,0 +1,876 @@
+#! /usr/local/bin/gawk -f
+#
+# Copyright (C) 2013, 2014 Arnold David Robbins
+# 
+# This file is part of TexiWeb Jr., a literate programming system.
+# 
+# TexiWeb Jr. is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+# 
+# TexiWeb Jr. is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, 
USA
+BEGIN {
+       TRUE = 1
+       FALSE = 0
+       File_chunk_pattern = 
"address@hidden(([^)]+)@\\)[[:space:]]*=[[:space:]]*$"
+       Code_chunk_pattern = "^@" "<(.+)" "@>[[:space:]]*=[[:space:]]*$"
+       Chunk_name_pattern = "@<[^>\n]+@>"
+}
+# Error checking:
+
+# Use brackets to avoid triggering the warning on ourselves!
+/(^<address@hidden)|(>address@hidden([[:space:]]*=[[:space:]]*)?$)/    {
+       # Ditto, with concatenation
+       warning("<" "@ or >" "@ used instead of @" "< or @" ">\n\t%s\n",
+                       $0)
+}
+
+END {
+       check_unfinished()
+}
+BEGIN {
+       if (ARGC < 2)
+               fatal(_"usage: jrweave file.twjr [...]\n")
+
+       Pass = 1
+       n = ARGC
+       ARGV[ARGC++] = "Pass=2"
+       for (i = 1; i < n; i++) {
+               if (ARGV[i] == "-" || ARGV[i] == "/dev/stdin")
+                       fatal(_"jrweave: standard input not allowed\n")
+               ARGV[ARGC++] = ARGV[i]
+       }
+}
+Pass == 2 && FNR == 1 && Debug ~ /pass2/ {
+       junk++
+}
+BEGIN {
+       print_do_not_edit(ARGV[1])
+}
+
+# print_do_not_edit --- create and print warning
+
+function print_do_not_edit(filename,   i, pl, pr, l, s, t)
+{
+       t = _"DO NOT EDIT THIS FILE!!!!"
+       if (ARGC > 4)   # more than one file
+               s = sprintf(_"It was created by jrweave from `%s' (or maybe 
others).",
+                               filename)
+       else
+               s = sprintf(_"It was created by jrweave from `%s'.", filename)
+       
+       l = length(s)
+       pl = (l - length(t)) / 2        # padding on left side
+       pr = l - (pl + length(t))       # padding on right side
+       if (pl * 2 < l)                         # account for odd lengths
+               pr++
+       for (i = 1; i <= l + 4; i++)
+               printf("%%")
+       printf "\n"
+
+       # print the titles with their padding
+       printf("%% %*s%s%*s %%\n", pl, " ", t, pr, " ")
+       printf("%% %s %%\n", s)
+
+       for (i = 1; i <= l + 4; i++)
+               printf("%%")
+       printf "\n"
+}
+# check_unfinished --- print a fatal error when an unfinished code or
+#                      file chunk is detected. Also ifweave / iftangle.
+
+function check_unfinished()
+{
+       if (Flags["file chunk"])
+               fatal(_"unfinished file chunk (started at %s)\n",
+                       Line_numbers["file chunk"])
+       else if (Flags["code chunk"])
+               fatal(_"unfinished code chunk (started at %s)\n",
+                       Line_numbers["code chunk"])
+
+       if ("ifweave" in Line_numbers)
+               fatal(_"unfinished @ifweave section (started at %s)\n",
+                       Line_numbers["ifweave"])
+
+       if ("iftangle" in Line_numbers)
+               fatal(_"unfinished @iftangle section (started at %s)\n",
+                       Line_numbers["iftangle"])
+}
+# strip_out_name --- get the name from name
+
+function strip_out_name(name,  l)
+{
+       l = length(name)
+       name = substr(name, 3, l - 4)
+
+       return name
+}
+# Helper functions
+
+# message --- write a particular kind of message out to stderr
+
+function message(msg, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
+{
+       printf("%s:%d: %s: " format, FILENAME, FNR, msg,
+               a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) > "/dev/stderr"
+
+       if (substr(format, length(format), 1) != "\n")
+               printf("\n") > "/dev/stderr"
+}
+
+# fatal --- print a fatal error message and exit.
+#       No varargs, so fake it with lots of parameters.
+
+function fatal(format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
+{
+       message(_"fatal", format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
+       exit 1
+}
+
+# warning --- print a warning message to stderr
+#       No varargs, so fake it with lots of parameters.
+
+function warning(format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
+{
+       message(_"warning", format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
+}
+
+# join.awk --- join an array into a string
+#
+# Arnold Robbins, address@hidden, Public Domain
+# May 1993
+
+function join(array, start, end, sep,    result, i)
+{
+       if (sep == "")
+               sep = " "
+       else if (sep == SUBSEP) # magic value
+               sep = ""
+       result = array[start]
+       for (i = start + 1; i <= end; i++)
+               result = result sep array[i]
+       return result
+}
+# iftangle lines should be removed
+
+/address@hidden:space:]]*$/, /address@hidden iftangle[[:space:]]*$/ {
+       if (Pass == 1)
+               next
+
+       if ("ifweave" in Line_numbers)
+               fatal(_"cannot nest @iftangle inside @ifweave\n")
+
+       # start of construct, save line number
+       if (/address@hidden:space:]]*$/)
+               Line_numbers["iftangle"] = (FILENAME ":" FNR)
+
+       # end of construct, delete line number
+       if (/address@hidden iftangle[[:space:]]*$/)
+               delete Line_numbers["iftangle"]
+
+       # simply skip these lines, this is weaving
+       next
+}
+
+# For weaving we remove the bracketing control lines and let anything
+# in between fall through.
+
+/address@hidden:space:]]*$/, /address@hidden ifweave[[:space:]]*$/ {
+       if (Pass == 1)
+               next
+
+       if ("iftangle" in Line_numbers)
+               fatal(_"cannot nest @ifweave inside @iftangle\n")
+
+       # start of construct, save line number, skip this line
+       if (/address@hidden:space:]]*$/) {
+               Line_numbers["ifweave"] = (FILENAME ":" FNR)
+               next
+       }
+
+       # end of construct, delete line number, skip this line
+       if (/address@hidden ifweave[[:space:]]*$/) {
+               delete Line_numbers["ifweave"]
+               next
+       }
+
+       # otherwise fall through into the rest of the code
+}
+/address@hidden:space:]]*$/,
+               /address@hidden file_update_recipe[[:space:]]*$/ {
+       next
+}
+/address@hidden:space:]]/ {
+       next
+}
+/address@hidden:space:]]+/ {
+       next
+}
+BEGIN {
+       Example_start = "@example"
+       Example_end = "@end example"
+}
+Pass == 2 && /address@hidden:space:]]*$/ {
+       Example_start = "@smallexample"
+       Example_end = "@end smallexample"
+       next
+}
+
+Pass == 2 && /address@hidden:space:]]*$/ {
+       Example_start = "@example"
+       Example_end = "@end example"
+       next
+}
+Pass == 2 && /address@hidden/ {
+       print ""
+       print "@c Start extra commands added by jrweave\n"
+       print "@c For HTML, spell out email addresses, to avoid problems with"
+       print "@c address harvesters for spammers."
+       print "@ifhtml"
+       print "@macro EMAIL{real,spelled}"
+       print "``\\spelled\\''"
+       print "@end macro"
+       print "@end ifhtml"
+       print "@ifnothtml"
+       print "@macro EMAIL{real,spelled}"
+       print "@email{\\real\\}"
+       print "@end macro"
+       print "@end ifnothtml"
+       print ""
+       print "@macro FIXME{text}"
+       print "@strong{FIXME}: \\text\\"
+       print "@end macro"
+       print ""
+       print "@macro oldnum{value}"
+       print "\\value\\"
+       print "@end macro"
+       print ""
+       print "@tex"
+       print "\\gdef\\oldnum#1{\\begingroup\\oldstyle #1\\endgroup}%"
+       print "@end tex"
+       print "address@hidden End extra commands added by jrweave"
+
+       print ""
+       print   # print the line
+
+       next
+}
+/address@hidden:space:]]*$/ {
+       if (Pass == 1)
+               Numbered_chunks = TRUE
+       next
+}
+/address@hidden:space:]]*$/ {
+       if (Pass == 1)
+               Print_file_full_defs = TRUE
+       next
+}
+Pass == 2 && /address@hidden:space:]]+/ {
+       sub(/address@hidden:space:]]+/, "", $0)
+       Sidebar_title = $0
+       Sidebar_body = ""
+       Collecting_sidebar = TRUE
+       next
+}
+
+Pass == 2 && /address@hidden:space:]]+sidebar[[:space:]]*$/ {
+       Collecting_sidebar = FALSE
+       printf "@cindex sidebar, %s\n", Sidebar_title
+       printf "@ifdocbook\n"
+               printf "@docbook\n"
+               printf "<sidebar><title>%s</title>\n", Sidebar_title
+               printf "@end docbook\n"
+                       print Sidebar_body
+               print ""
+               printf "@docbook\n"
+               printf "</sidebar>\n"
+               printf "@end docbook\n"
+       printf "@end ifdocbook\n\n"
+
+       printf "@ifnotdocbook\n"
+               printf "@cartouche\n"
+               printf "@center @b{%s}\n\n", Sidebar_title
+                       print "@noindent"
+                       sub(/^\n*/, "", Sidebar_body)   # remove initial 
newlines
+                       print Sidebar_body
+               printf "@end cartouche\n"
+       printf "@end ifnotdocbook\n"
+       Sidebar_body = ""
+       next
+}
+
+Pass == 2 && Collecting_sidebar {
+       Sidebar_body = Sidebar_body "\n" $0
+       next
+}
+Pass == 2 && /address@hidden:space:]]*$/ {
+       print "@tex"
+#      print "%\\gdef\\xrefprintnodename#1{{\\it #1}}"
+       print "\\gdef\\xrefprintnodename#1{``#1''}"
+       print "@end tex"
+
+       next
+}
+Pass == 2 && /address@hidden:space:]]*.*$/ {
+       if (NF != 1 && NF != 4)
+               fatal(_"@pdflinkcolor: wrong number of arguments\n")
+
+       if (NF == 1)
+               Link_color = Dark_red
+       else {
+               $1 = ""
+               $0 = $0
+               Link_color = $0
+       }
+
+       print "@tex"
+       print "\\gdef\\linkcolor{" Link_color "}"
+       print "@end tex"
+
+       next
+}
+Pass == 2 && /address@hidden:space:]]*.*$/ {
+       if (NF != 1 && NF != 4)
+               fatal(_"@urllinkcolor: wrong number of arguments\n")
+
+       if (NF == 1)
+               URL_color = Dark_red
+       else {
+               $1 = ""
+               $0 = $0
+               URL_color = $0
+       }
+
+       print "@tex"
+       print "\\gdef\\urlcolor{" URL_color "}"
+       print "@end tex"
+
+       next
+}
+Pass == 2 && /address@hidden:space:]]*$/ {
+       print "@tex"
+       print "\\global\\urefurlonlylinktrue"   # NOTE: *not* \gdef
+       print "@end tex"
+
+       next
+}
+Pass == 2 && /address@hidden:space:]]*$/ {
+       print "@tex"
+       print "\\global\\usebracesinindexestrue"        # NOTE: *not* \gdef
+       print "@end tex"
+
+       next
+}
+BEGIN {
+       Dark_red = "0.5 0.09 0.12"
+}
+Pass == 2 && /address@hidden %\*\*end of header/ {
+       print   # print the line
+
+       print "address@hidden Extra indices added by jrweave"
+       print "@defindex cd   @c chunk definition"
+       print "@defindex cr   @c chunk reference"
+
+       next
+}
+$0 ~ File_chunk_pattern {
+       Chunk_type = "file chunk"
+       Pattern = File_chunk_pattern
+       Debug_pat = "filename"
+       new_chunk = gensub(Pattern, "\\1", 1)
+       if (Flags[Chunk_type]) {
+               fatal(_"%s start of %s found while still collecting %s\n",
+                       Chunk_type, new_chunk, Current_chunk)
+       }
+       check_unfinished()
+       
+       Flags[Chunk_type] = TRUE
+       Line_numbers[Chunk_type] = (FILENAME ":" FNR)
+       Current_chunk = new_chunk
+       Chunk_info[Current_chunk]["type"] = Chunk_type
+       
+       if (Debug ~ Debug_pat)
+               printf("saw new %s %s\n", Debug_pat, Current_chunk) > 
"/dev/stderr"
+       next
+}
+$0 ~ Code_chunk_pattern {
+       Chunk_type = "code chunk"
+       Pattern = Code_chunk_pattern
+       Debug_pat = "code"
+       new_chunk = gensub(Pattern, "\\1", 1)
+       if (Flags[Chunk_type]) {
+               fatal(_"%s start of %s found while still collecting %s\n",
+                       Chunk_type, new_chunk, Current_chunk)
+       }
+       check_unfinished()
+       
+       Flags[Chunk_type] = TRUE
+       Line_numbers[Chunk_type] = (FILENAME ":" FNR)
+       Current_chunk = new_chunk
+       Chunk_info[Current_chunk]["type"] = Chunk_type
+       
+       if (Debug ~ Debug_pat)
+               printf("saw new %s %s\n", Debug_pat, Current_chunk) > 
"/dev/stderr"
+       next
+}
+/address@hidden:space:]]*$/ {
+       if (Flags["file chunk"])
+               end_file_gathering()
+       else if (Flags["code chunk"])
+               end_code_gathering()
+       else
+               warning(_"unmatched terminating @-sign: ignored\n")
+
+       Chunk_lines = ""
+       Flags[Chunk_type] = FALSE
+       Line_numbers[Chunk_type] = ""
+       Chunk_type = ""
+
+       next
+}
+Flags["file chunk"] || Flags["code chunk"] {
+       if (Chunk_lines == "")
+               Chunk_lines = $0
+       else
+               Chunk_lines = Chunk_lines "\n" $0
+
+       next
+}
+function end_chunk_gathering()
+{
+       if (Pass == 1) {
+               collect_chunk_info()
+               Chunk_lines = ""
+               Flags[Chunk_type] = FALSE
+       } else
+               print_out_chunk()
+}
+
+function end_file_gathering()
+{
+       end_chunk_gathering()
+}
+function collect_chunk_info(   i, n, x, called, junk)
+{
+       # Current_chunk, Chunk_type already set by initial code
+       # Chunk number:
+       if (! ("chunk number" in Chunk_info[Current_chunk])) {
+               Chunk_info[Current_chunk]["chunk number"] = \
+                                                               
++Chunk_numbers[Chunk_type]
+       }
+
+       # Definition instance
+       Chunk_info[Current_chunk]["defn"]++
+
+       # Get names of called chunks into called
+       n = split(Chunk_lines, junk, Chunk_name_pattern, called)
+
+       # Add ourselves to the callers
+       for (i in called) {
+               x = strip_out_name(called[i])
+               Chunk_info[x]["callers"][Current_chunk] = TRUE
+       }
+}
+function print_out_chunk(      x, y, n, i, parts, names,
+                                                       name, anchor, 
chunk_being_used)
+{
+       # Redefinition instance
+       Chunk_info[Current_chunk]["redefn"]++
+
+       print "@need 400"
+       anchor = format_anchor(Current_chunk,
+                               Chunk_info[Current_chunk]["redefn"],
+                               Chunk_info[Current_chunk]["defn"])
+       printf("%s\n", anchor)
+       x = expand_tabs(Chunk_lines, Tabstop)
+       # extract code chunks
+       n = split(x, parts, Chunk_name_pattern, names)
+       
+       # escape special chars in parts of code that aren't chunk names
+       for (i = 1; i in parts; i++)
+               gsub(/address@hidden/, "@&", parts[i])
+       y = parts[1]
+       if (n > 1) {    # embedded chunk names
+               for (i = 1; i in names; i++) {
+                       name = strip_out_name(names[i])
+                       chunk_being_used = \
+                               format_chunk_name(name, Chunk_info[name]["chunk 
number"],
+                                       Chunk_info[name]["type"])
+                       printf("@crindex %s, use\n", chunk_being_used)
+                       y = y chunk_being_used
+                       y = y parts[i+1]
+               }
+       }
+       chunk_being_defined = \
+               format_chunk_name(Current_chunk,
+                                                       
Chunk_info[Current_chunk]["chunk number"],
+                                                       Chunk_type)
+       printf("@cdindex %s, definition\n", chunk_being_defined)
+       printf("@noindent\n%s address@hidden",
+               chunk_being_defined,
+               Chunk_info[Current_chunk]["redefn"] == 1 ? "" : "+")
+       print Example_start
+       printf("%s\n", y)
+       print Example_end
+       for (i in names)
+               names[i] = strip_out_name(names[i])     # remove delimiters
+       
+       print "@iftex"
+       print "@smallfonts @rm"
+       print "@end iftex"
+       # Print other definition sites for code chunks, or for file
+       # chunk if Print_file_full_defs is true
+       if (Chunk_type == "code chunk" || Print_file_full_defs) {
+               print_other_defns(Current_chunk,
+                               Chunk_info[Current_chunk]["defn"],
+                               Chunk_info[Current_chunk]["redefn"])
+       }
+       # Print callers for code chunks
+       if (Chunk_type == "code chunk") {
+               if ("callers" in Chunk_info[Current_chunk]) {
+                       print ""
+                       asorti(Chunk_info[Current_chunk]["callers"], my_callers)
+                       if (length(my_callers) > 1) {
+                               print "@noindent"
+                               print "This chunk is called by the following 
chunks:\n"
+                               print_ref_table(my_callers)
+                       } else {
+                               n = Chunk_info[my_callers[1]]["defn"]
+               
+                               print "@noindent"
+                               printf("This chunk is called by %s; see its 
first definition at %s.\n",
+                                       format_chunk_name(my_callers[1],
+                                                               
Chunk_info[my_callers[1]]["chunk number"],
+                                                               
Chunk_info[my_callers[1]]["type"]),
+                                       format_xref(my_callers[1], n > 1 ? 1 : 
0))
+                       }
+               } else
+                       warning(_"chunk %s has no callers\n", Current_chunk)
+       }
+       sort_and_remove_duplicates(names)
+       switch (length(names)) {
+       case 0:
+               break
+       case 1:
+               print "address@hidden"
+               printf("The called chunk %s is first defined at\n%s.\n",
+                               format_chunk_name(names[1],
+                                                       
Chunk_info[names[1]]["chunk number"],
+                                                       
Chunk_info[names[1]]["type"]),
+                                                       format_xref(names[1],
+                                                               
(Chunk_info[names[1]]["defn"] > 1) ? 1 : 0))
+               break;
+       default:
+               print "address@hidden"
+               printf("The following table lists called chunk definition 
points.\n")
+               print_ref_table(names)
+               break;
+       }
+       print "@iftex"
+       print "@textfonts @rm"
+       print "@end iftex"
+}
+function print_other_defns(chunk, total_defns, current_defn,
+                                                       other_defns, i, j)      
# locals
+{
+               if (total_defns == 1)
+                       return
+
+               print ""
+               print "@noindent"
+               print "This chunk is also defined in"
+
+               for (i = j = 1; i <= total_defns; i++) {
+                       if (i == current_defn)
+                               continue
+
+                       other_defns[j++] = i
+               }
+
+               for (i = 1; i < j; i++) {
+                       printf("%s", format_xref(chunk, other_defns[i]))
+                       if (i + 2 == j)
+                               print ", and"
+                       else if (i + 2 < j)
+                               print ","
+               }
+               print "."
+}
+function print_ref_table(chunklist,            i, x, n)
+{
+       print "@multitable @columnfractions .35 .65"
+       print "@headitem Chunk name @tab First definition point"
+
+       for (i = 1; i in chunklist; i++) {
+               x = chunklist[i]
+               n = (Chunk_info[x]["defn"] > 1) ? 1 : 0
+               printf("@item %s @tab See %s.\n",
+                       format_chunk_name(x,
+                               Chunk_info[x]["chunk number"],
+                               Chunk_info[x]["type"]),
+                       format_xref(x, n))
+       }
+
+       print "@end multitable"
+}
+function sort_and_remove_duplicates(names,     i, dups)
+{
+       for (i in names)
+               dups[names[i]] = 1
+
+       asorti(dups)
+       delete names
+       for (i in dups)
+               names[i] = dups[i]
+}
+function end_code_gathering()
+{
+       end_chunk_gathering()
+
+       if (Debug ~ /code/)
+               printf("finished formatting code %s\n",
+                                       Code_chunk) > "/dev/stderr"
+}
+Pass == 2 && /address@hidden:space:]]*$/ {
+       delete Sorted_file_names
+       j = 1
+       for (i in Chunk_info) {
+               if (Chunk_info[i]["type"] == "file chunk")
+                       Sorted_file_names[j++] = i
+       }
+       asort(Sorted_file_names)        # Sorted by value
+       print "@table @asis"
+       for (i = 1; i in Sorted_file_names; i++) {
+               name = Sorted_file_names[i]
+               x = format_chunk_name(name,
+                                       Chunk_info[name]["chunk number"],
+                                       Chunk_info[name]["type"])
+               printf("@item %s\n", x)
+               n = Chunk_info[name]["defn"]
+               if (n == 1) {
+                       printf("This chunk is defined in\n")
+                       printf("%s.\n", format_xref(name, 0))
+               } else {
+                       printf("Multiple definitions occur in\n")
+                       for (j = 1; j <= n; j++) {
+                               printf("%s", format_xref(name, j))
+                               if (j == n - 1)
+                                       printf(",\nand\n")
+                               else if (j < n - 1)
+                                       printf(",\n")
+                       }
+                       print ".\n"
+               }
+       }
+       print "@end table"
+       next
+}
+Pass == 2 && /address@hidden:space:]]*$/ {
+       delete Sorted_code_names
+       j = 1
+       for (i in Chunk_info) {
+               if (Chunk_info[i]["type"] == "code chunk")
+                       Sorted_code_names[j++] = i
+       }
+       asort(Sorted_code_names)        # Sorted by value
+       print "@table @asis"
+       for (i = 1; i in Sorted_code_names; i++) {
+               name = Sorted_code_names[i]
+               x = format_chunk_name(name,
+                                       Chunk_info[name]["chunk number"],
+                                       Chunk_info[name]["type"])
+               printf("@item %s\n", x)
+               n = Chunk_info[name]["defn"]
+               if (n == 1) {
+                       printf("This chunk is defined in\n")
+                       printf("%s.\n", format_xref(name, 0))
+               } else {
+                       printf("Multiple definitions occur in\n")
+                       for (j = 1; j <= n; j++) {
+                               printf("%s", format_xref(name, j))
+                               if (j == n - 1)
+                                       printf(",\nand\n")
+                               else if (j < n - 1)
+                                       printf(",\n")
+                       }
+                       print ".\n"
+               }
+       }
+       print "@end table"
+       next
+}
+Pass == 2 && /address@hidden:space:]]*$/ {
+       delete Sorted_code_names
+       j = 1
+       for (i in Chunk_info) {
+               if (Chunk_info[i]["type"] == "code chunk")
+                       Sorted_code_names[j++] = i
+       }
+       asort(Sorted_code_names)        # Sorted by value
+       print "@table @asis"
+       for (i = 1; i in Sorted_code_names; i++) {
+               name = Sorted_code_names[i]
+       
+               n = Chunk_info[name]["defn"]
+               if (n == 0)             # warning printed elsewhere
+                       continue
+       
+               fmt_name = format_chunk_name(name, Chunk_info[name]["chunk 
number"],
+                                                               
Chunk_info[name]["type"])
+               printf("@item %s\n", fmt_name)
+       
+               Current_chunk = name    # for use by next chunk
+               if ("callers" in Chunk_info[Current_chunk]) {
+                       print ""
+                       asorti(Chunk_info[Current_chunk]["callers"], my_callers)
+                       if (length(my_callers) > 1) {
+                               print "@noindent"
+                               print "This chunk is called by the following 
chunks:\n"
+                               print_ref_table(my_callers)
+                       } else {
+                               n = Chunk_info[my_callers[1]]["defn"]
+               
+                               print "@noindent"
+                               printf("This chunk is called by %s; see its 
first definition at %s.\n",
+                                       format_chunk_name(my_callers[1],
+                                                               
Chunk_info[my_callers[1]]["chunk number"],
+                                                               
Chunk_info[my_callers[1]]["type"]),
+                                       format_xref(my_callers[1], n > 1 ? 1 : 
0))
+                       }
+               } else
+                       warning(_"chunk %s has no callers\n", Current_chunk)
+       }
+       print "@end table"
+       next
+}
+/address@hidden([[:space:]]+.*|[[:space:]]*)$/ {
+       Print_initial_setup = TRUE
+       if (NF > 1) {
+               $1 = ""
+               $0 = $0
+               Initial_setup_name = $0
+       }
+       else
+               Initial_setup_name = "Initial setup"
+
+       next
+}
+
+/address@hidden:space:]]*$/, /address@hidden initial_setup[[:space:]]*$/ {
+       if (Pass == 1 || ! Print_initial_setup)
+               next
+
+       Chunk_info[Initial_setup_name]["type"] = "code chunk"
+       Chunk_info[Initial_setup_name]["defn"] = 1
+       if (/address@hidden:space:]]*$/) {
+               print "@need 400"
+               printf("%s\n", format_anchor(Initial_setup_name, 0))
+               printf("@noindent\n%s @equiv{}\n",
+                       format_chunk_name(Initial_setup_name, 0, "code chunk"))
+               print Example_start
+       } else if (/address@hidden initial_setup[[:space:]]*$/) {
+               print Example_end
+       } else {
+               x = expand_tabs($0, Tabstop)
+               gsub(/address@hidden/, "@&", x)
+               print x
+       }
+
+       next
+}
+Pass == 2 { print }
+BEGIN {
+       if (Tabstop == 0)
+               Tabstop = 4             # default tab stops
+}
+# expand_tabs --- expand tabs in the string
+
+function expand_tabs(string, tabstop,  chars, out, i, j, k, n)
+{
+       if (tabstop < 2)
+               fatal(_"expand_tabs: tabstop %d < 2\n", tabstop)
+
+       n = split(string, chars, "")
+       j = k = 0
+       for (i = 1; i <= n;) {
+               if (chars[i] == "\n") {
+                       out[j++] = chars[i++]
+                       k = 0
+                       continue
+               }
+
+               if (chars[i] != "\t") {
+                       out[j++] = chars[i++]
+                       k++
+                       continue
+               }
+               i++     # skip the tab
+
+               do {
+                       out[j++] = " "
+                       k++
+               } while (and(k, tabstop-1) != 0)
+       }
+
+       return join(out, 0, j, SUBSEP)
+}
+function sanitize_name(name)
+{
+       gsub(/[^[:alnum:]]/, "-", name)
+
+       return name
+}
+function format_anchor_or_ref(type, name, defn,
+                                                               clean_name, 
result)     # locals
+{
+       clean_name = sanitize_name(name)
+       if (defn > 0)
+               result = sprintf("@%s{%s-%d}", type, clean_name, defn)
+       else
+               result = sprintf("@%s{%s}", type, clean_name)
+
+       return result
+}
+
+function format_xref(name, defn)
+{
+       return format_anchor_or_ref("ref", name, defn)
+}
+function format_anchor(name, cur_defn, total_defns,            defn)
+{
+       if (total_defns == 1)
+               defn = 0
+       else if (cur_defn <= total_defns)
+               defn = cur_defn
+       return format_anchor_or_ref("anchor", name, defn)
+}
+function format_chunk_name(name, count, type,
+                                                       result, left, right, 
style) # locals
+{
+       if (type == "file chunk") {
+               left = "@{"
+               right = "@}"
+               style = "file"
+       } else if (type == "code chunk") {
+               left = "<"
+               right = ">"
+               style = "i"
+       } else
+               fatal(_"format_chunk_name: Unknown chunk type `%s'\n", type)
+
+       if (count > 0 && Numbered_chunks)
+               result = sprintf("@address@hidden @oldnum{%d}%s}",
+                                               left, style, name, count, right)
+       else
+               result = sprintf("@address@hidden", left, style, name, right)
+
+       return result
+}


Property changes on: trunk/texindex/jrweave
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/texindex/tests/gawk.cp
===================================================================
--- trunk/texindex/tests/gawk.cp                                (rev 0)
+++ trunk/texindex/tests/gawk.cp        2014-12-03 00:57:15 UTC (rev 5946)
@@ -0,0 +1,2568 @@
+\entry{Brennan, Michael}{2}{Brennan, Michael}
+\entry{Brian Kernighan's awk}{3}{Brian Kernighan's \command {awk}}
+\entry{awk, POSIX and, See Also POSIX awk}{3}{\command {awk}, POSIX and, See 
Also POSIX \command {awk}}
+\entry{awk, POSIX and}{3}{\command {awk}, POSIX and}
+\entry{POSIX, awk and}{3}{POSIX, \command {awk} and}
+\entry{gawk, awk and}{3}{\command {gawk}, \command {awk} and}
+\entry{awk, gawk and}{3}{\command {awk}, \command {gawk} and}
+\entry{awk, uses for}{3}{\command {awk}, uses for}
+\entry{awk, See Also gawk}{3}{\command {awk}, See Also \command {gawk}}
+\entry{gawk, See Also awk}{3}{\command {gawk}, See Also \command {awk}}
+\entry{gawk, uses for}{3}{\command {gawk}, uses for}
+\entry{GNU awk, See gawk}{3}{GNU \command {awk}, See \command {gawk}}
+\entry{recipe for a programming language}{4}{recipe for a programming language}
+\entry{programming language, recipe for}{4}{programming language, recipe for}
+\entry{sidebar, Recipe For A Programming Language}{4}{sidebar, Recipe For A 
Programming Language}
+\entry{Aho, Alfred}{4}{Aho, Alfred}
+\entry{Weinberger, Peter}{4}{Weinberger, Peter}
+\entry{Kernighan, Brian}{4}{Kernighan, Brian}
+\entry{awk, history of}{4}{\command {awk}, history of}
+\entry{Rubin, Paul}{4}{Rubin, Paul}
+\entry{Fenlason, Jay}{4}{Fenlason, Jay}
+\entry{Trueman, David}{4}{Trueman, David}
+\entry{awk, new vs. old}{4}{\command {awk}, new vs.\: old}
+\entry{awk, versions of}{4}{\command {awk}, versions of}
+\entry{nawk utility}{4}{\command {nawk} utility}
+\entry{oawk utility}{4}{\command {oawk} utility}
+\entry{awk, terms describing}{5}{\command {awk}, terms describing}
+\entry{gawk, awk and}{5}{\command {gawk}, \command {awk} and}
+\entry{awk, gawk and}{5}{\command {awk}, \command {gawk} and}
+\entry{POSIX awk}{5}{POSIX \command {awk}}
+\entry{Texinfo}{7}{Texinfo}
+\entry{Kernighan, Brian}{7}{Kernighan, Brian}
+\entry{d.c., See dark corner}{7}{d.c., See dark corner}
+\entry{dark corner}{7}{dark corner}
+\entry{FSF (Free Software Foundation)}{8}{FSF (Free Software Foundation)}
+\entry{Free Software Foundation (FSF)}{8}{Free Software Foundation (FSF)}
+\entry{Stallman, Richard}{8}{Stallman, Richard}
+\entry{GNU Project}{8}{GNU Project}
+\entry{GPL (General Public License)}{8}{GPL (General Public License)}
+\entry{General Public License, See GPL}{8}{General Public License, See GPL}
+\entry{documentation, online}{8}{documentation, online}
+\entry{Linux}{8}{Linux}
+\entry{GNU/Linux}{8}{GNU/Linux}
+\entry{operating systems, BSD-based}{8}{operating systems, BSD-based}
+\entry{Alpha (DEC)}{8}{Alpha (DEC)}
+\entry{Close, Diane}{8}{Close, Diane}
+\entry{Stallman, Richard}{9}{Stallman, Richard}
+\entry{Berry, Karl}{10}{Berry, Karl}
+\entry{Chassell, Robert J.}{10}{Chassell, Robert J.\:}
+\entry{Hartholz, Marshall}{10}{Hartholz, Marshall}
+\entry{Hartholz, Elaine}{10}{Hartholz, Elaine}
+\entry{Schreiber, Bert}{10}{Schreiber, Bert}
+\entry{Schreiber, Rita}{10}{Schreiber, Rita}
+\entry{Hughes, Phil}{10}{Hughes, Phil}
+\entry{Trueman, David}{10}{Trueman, David}
+\entry{Drepper, Ulrich}{10}{Drepper, Ulrich}
+\entry{GNITS mailing list}{10}{GNITS mailing list}
+\entry{mailing list, GNITS}{10}{mailing list, GNITS}
+\entry{Beebe, Nelson H.F.}{10}{Beebe, Nelson H.F.\:}
+\entry{Buening, Andreas}{10}{Buening, Andreas}
+\entry{Collado, Manuel}{10}{Collado, Manuel}
+\entry{Colombo, Antonio}{10}{Colombo, Antonio}
+\entry{Davies, Stephen}{10}{Davies, Stephen}
+\entry{Deifik, Scott}{10}{Deifik, Scott}
+\entry{Demaille, Akim}{10}{Demaille, Akim}
+\entry{Hankerson, Darrel}{10}{Hankerson, Darrel}
+\entry{Jaegermann, Michal}{10}{Jaegermann, Michal}
+\entry{Kahrs, Jurgen}{10}{Kahrs, J\"urgen}
+\entry{Kasal, Stepan}{10}{Kasal, Stepan}
+\entry{Malmberg, John}{10}{Malmberg, John}
+\entry{Pitts, Dave}{10}{Pitts, Dave}
+\entry{Ramey, Chet}{10}{Ramey, Chet}
+\entry{Rankin, Pat}{10}{Rankin, Pat}
+\entry{Schorr, Andrew}{10}{Schorr, Andrew}
+\entry{Vinschen, Corinna}{10}{Vinschen, Corinna}
+\entry{Zaretskii, Eli}{10}{Zaretskii, Eli}
+\entry{Kernighan, Brian}{10}{Kernighan, Brian}
+\entry{Robbins, Miriam}{10}{Robbins, Miriam}
+\entry{Robbins, Jean}{10}{Robbins, Jean}
+\entry{Robbins, Harry}{10}{Robbins, Harry}
+\entry{G-d}{10}{G-d}
+\entry{awk, function of}{13}{\command {awk}, function of}
+\entry{awk, uses for}{13}{\command {awk}, uses for}
+\entry{programming languages,{} data-driven vs. procedural}{13}{programming 
languages\comma {} data-driven vs.\: procedural}
+\entry{awk programs}{13}{\command {awk} programs}
+\entry{program, definition of}{13}{program, definition of}
+\entry{rule, definition of}{13}{rule, definition of}
+\entry{awk programs, running}{13}{\command {awk} programs, running}
+\entry{command line, formats}{13}{command line, formats}
+\entry{single quote (')}{13}{single quote (\code {'})}
+\entry{' (single quote)}{13}{\code {'} (single quote)}
+\entry{shells, scripts}{13}{shells, scripts}
+\entry{awk programs, running, from shell scripts}{13}{\command {awk} programs, 
running, from shell scripts}
+\entry{standard input}{14}{standard input}
+\entry{input, standard}{14}{input, standard}
+\entry{input files, running awk without}{14}{input files, running \command 
{awk} without}
+\entry{files, input, See input files}{14}{files, input, See input files}
+\entry{input files, running awk without}{14}{input files, running \command 
{awk} without}
+\entry{awk programs, running, without input files}{14}{\command {awk} 
programs, running, without input files}
+\entry{shell quoting, double quote}{14}{shell quoting, double quote}
+\entry{double quote (") in shell commands}{14}{double quote (\code {"}) in 
shell commands}
+\entry{" (double quote) in shell commands}{14}{\code {"} (double quote) in 
shell commands}
+\entry{{\tt \indexbackslash } (backslash) in shell commands}{14}{\code {{\tt 
\backslashcurfont }} (backslash) in shell commands}
+\entry{backslash ({\tt \indexbackslash }) in shell commands}{14}{backslash 
(\code {{\tt \backslashcurfont }}) in shell commands}
+\entry{awk programs, running}{14}{\command {awk} programs, running}
+\entry{awk programs, lengthy}{14}{\command {awk} programs, lengthy}
+\entry{files, awk programs in}{14}{files, \command {awk} programs in}
+\entry{-f option}{14}{\option {-f} option}
+\entry{command line, option -f}{14}{command line, option \option {-f}}
+\entry{quoting in gawk command lines}{15}{quoting in \command {gawk} command 
lines}
+\entry{single quote (') in gawk command lines}{15}{single quote (\code {'}) in 
\command {gawk} command lines}
+\entry{' (single quote) in gawk command lines}{15}{\code {'} (single quote) in 
\command {gawk} command lines}
+\entry{awk programs}{15}{\command {awk} programs}
+\entry{# (number sign), #! (executable scripts)}{15}{\code {#} (number sign), 
\code {#!} (executable scripts)}
+\entry{Unix, awk scripts and}{15}{Unix, \command {awk} scripts and}
+\entry{number sign (#), #! (executable scripts)}{15}{number sign (\code {#}), 
\code {#!} (executable scripts)}
+\entry{sidebar, Portability Issues with #!}{15}{sidebar, Portability Issues 
with \samp {#!}}
+\entry{portability, #! (executable scripts)}{16}{portability, \code {#!} 
(executable scripts)}
+\entry{ARGC/ARGV variables, portability and}{16}{\code {ARGC}/\code {ARGV} 
variables, portability and}
+\entry{portability, ARGV variable}{16}{portability, \code {ARGV} variable}
+\entry{# (number sign), commenting}{16}{\code {#} (number sign), commenting}
+\entry{number sign (#), commenting}{16}{number sign (\code {#}), commenting}
+\entry{commenting}{16}{commenting}
+\entry{awk programs, documenting}{16}{\command {awk} programs, documenting}
+\entry{quoting, for small awk programs}{16}{quoting, for small awk programs}
+\entry{single quote ('), vs. apostrophe}{16}{single quote (\code {'}), vs.\: 
apostrophe}
+\entry{' (single quote), vs. apostrophe}{16}{\code {'} (single quote), vs.\: 
apostrophe}
+\entry{{\tt \indexbackslash } (backslash)}{16}{\code {{\tt \backslashcurfont 
}} (backslash)}
+\entry{backslash ({\tt \indexbackslash })}{16}{backslash (\code {{\tt 
\backslashcurfont }})}
+\entry{shell quoting, rules for}{17}{shell quoting, rules for}
+\entry{shells, quoting, rules for}{17}{shells, quoting, rules for}
+\entry{Bourne shell, quoting rules for}{17}{Bourne shell, quoting rules for}
+\entry{{\tt \indexbackslash } (backslash), in shell commands}{17}{\code {{\tt 
\backslashcurfont }} (backslash), in shell commands}
+\entry{backslash ({\tt \indexbackslash }), in shell commands}{17}{backslash 
(\code {{\tt \backslashcurfont }}), in shell commands}
+\entry{single quote ('), in shell commands}{17}{single quote (\code {'}), in 
shell commands}
+\entry{' (single quote), in shell commands}{17}{\code {'} (single quote), in 
shell commands}
+\entry{double quote ("), in shell commands}{17}{double quote (\code {"}), in 
shell commands}
+\entry{" (double quote), in shell commands}{17}{\code {"} (double quote), in 
shell commands}
+\entry{single quote ('), with double quotes}{17}{single quote (\code {'}), 
with double quotes}
+\entry{' (single quote), with double quotes}{17}{\code {'} (single quote), 
with double quotes}
+\entry{null strings in gawk arguments, quoting and}{17}{null strings in 
\command {gawk} arguments, quoting and}
+\entry{quoting in gawk command lines, tricks for}{17}{quoting in \command 
{gawk} command lines, tricks for}
+\entry{input files, examples}{18}{input files, examples}
+\entry{mail-list file}{18}{\code {mail-list} file}
+\entry{inventory-shipped file}{19}{\code {inventory-shipped} file}
+\entry{actions, default}{20}{actions, default}
+\entry{patterns, default}{20}{patterns, default}
+\entry{actions, empty}{20}{actions, empty}
+\entry{awk programs, one-line examples}{20}{\command {awk} programs, one-line 
examples}
+\entry{expand utility}{20}{\command {expand} utility}
+\entry{awk programs}{21}{\command {awk} programs}
+\entry{ls utility}{22}{\command {ls} utility}
+\entry{line continuations, with C shell}{22}{line continuations, with C shell}
+\entry{initialization, automatic}{22}{initialization, automatic}
+\entry{line breaks}{23}{line breaks}
+\entry{newlines}{23}{newlines}
+\entry{gawk, newlines in}{23}{\command {gawk}, newlines in}
+\entry{{\tt \indexbackslash } (backslash), continuing lines and}{23}{\code 
{{\tt \backslashcurfont }} (backslash), continuing lines and}
+\entry{backslash ({\tt \indexbackslash }), continuing lines and}{23}{backslash 
(\code {{\tt \backslashcurfont }}), continuing lines and}
+\entry{portability, backslash continuation and}{23}{portability, backslash 
continuation and}
+\entry{csh utility}{23}{\command {csh} utility}
+\entry{backslash ({\tt \indexbackslash }), continuing lines and, in 
csh}{23}{backslash (\code {{\tt \backslashcurfont }}), continuing lines and, in 
\command {csh}}
+\entry{{\tt \indexbackslash } (backslash), continuing lines and, in 
csh}{23}{\code {{\tt \backslashcurfont }} (backslash), continuing lines and, in 
\command {csh}}
+\entry{backslash ({\tt \indexbackslash }), continuing lines and, comments 
and}{24}{backslash (\code {{\tt \backslashcurfont }}), continuing lines and, 
comments and}
+\entry{{\tt \indexbackslash } (backslash), continuing lines and, comments 
and}{24}{\code {{\tt \backslashcurfont }} (backslash), continuing lines and, 
comments and}
+\entry{commenting, backslash continuation and}{24}{commenting, backslash 
continuation and}
+\entry{statements, multiple}{24}{statements, multiple}
+\entry{; (semicolon), separating statements in actions}{24}{\code {;} 
(semicolon), separating statements in actions}
+\entry{semicolon (;), separating statements in actions}{24}{semicolon (\code 
{;}), separating statements in actions}
+\entry{variables}{24}{variables}
+\entry{awk, uses for}{24}{\command {awk}, uses for}
+\entry{Brian Kernighan's awk}{25}{Brian Kernighan's \command {awk}}
+\entry{awk programs, complex}{25}{\command {awk} programs, complex}
+\entry{command line, invoking awk from}{27}{command line, invoking \command 
{awk} from}
+\entry{awk, invoking}{27}{\command {awk}, invoking}
+\entry{arguments, command-line, invoking awk}{27}{arguments, command-line, 
invoking \command {awk}}
+\entry{options, command-line, invoking awk}{27}{options, command-line, 
invoking \command {awk}}
+\entry{GNU long options}{27}{GNU long options}
+\entry{long options}{27}{long options}
+\entry{options, long}{27}{options, long}
+\entry{dark corner, invoking awk}{27}{dark corner, invoking \command {awk}}
+\entry{lint checking, empty programs}{27}{lint checking, empty programs}
+\entry{--lint option}{27}{\option {--lint} option}
+\entry{options, command-line}{27}{options, command-line}
+\entry{command line, options}{27}{command line, options}
+\entry{GNU long options}{27}{GNU long options}
+\entry{options, long}{27}{options, long}
+\entry{POSIX awk, GNU long options and}{27}{POSIX \command {awk}, GNU long 
options and}
+\entry{-F option}{27}{\option {-F} option}
+\entry{--field-separator option}{27}{\option {--field-separator} option}
+\entry{FS variable, --field-separator option and}{27}{\code {FS} variable, 
\code {--field-separator} option and}
+\entry{-f option}{27}{\option {-f} option}
+\entry{--file option}{27}{\option {--file} option}
+\entry{awk programs, location of}{27}{\command {awk} programs, location of}
+\entry{-v option}{28}{\option {-v} option}
+\entry{--assign option}{28}{\option {--assign} option}
+\entry{variables, setting}{28}{variables, setting}
+\entry{built-in variables, -v option,{} setting with}{28}{built-in variables, 
\code {-v} option\comma {} setting with}
+\entry{variables, built-in, -v option,{} setting with}{28}{variables, 
built-in, \code {-v} option\comma {} setting with}
+\entry{-W option}{28}{\option {-W} option}
+\entry{command line, options, end of}{28}{command line, options, end of}
+\entry{options, command-line, end of}{28}{options, command-line, end of}
+\entry{- (hyphen), filenames beginning with}{28}{\code {-} (hyphen), filenames 
beginning with}
+\entry{hyphen (-), filenames beginning with}{28}{hyphen (\code {-}), filenames 
beginning with}
+\entry{-b option}{28}{\option {-b} option}
+\entry{--characters-as-bytes option}{28}{\option {--characters-as-bytes} 
option}
+\entry{-c option}{28}{\option {-c} option}
+\entry{--traditional option}{28}{\option {--traditional} option}
+\entry{compatibility mode (gawk), specifying}{28}{compatibility mode (\command 
{gawk}), specifying}
+\entry{-C option}{28}{\option {-C} option}
+\entry{--copyright option}{28}{\option {--copyright} option}
+\entry{GPL (General Public License), printing}{28}{GPL (General Public 
License), printing}
+\entry{-d option}{29}{\option {-d} option}
+\entry{--dump-variables option}{29}{\option {--dump-variables} option}
+\entry{dump all variables of a program}{29}{dump all variables of a program}
+\entry{awkvars.out file}{29}{\file {awkvars.out} file}
+\entry{files, awkvars.out}{29}{files, \file {awkvars.out}}
+\entry{variables, global, printing list of}{29}{variables, global, printing 
list of}
+\entry{troubleshooting, typographical errors,{} global 
variables}{29}{troubleshooting, typographical errors\comma {} global variables}
+\entry{-D option}{29}{\option {-D} option}
+\entry{--debug option}{29}{\option {--debug} option}
+\entry{awk debugging, enabling}{29}{\command {awk} debugging, enabling}
+\entry{-e option}{29}{\option {-e} option}
+\entry{--source option}{29}{\option {--source} option}
+\entry{source code, mixing}{29}{source code, mixing}
+\entry{-E option}{29}{\option {-E} option}
+\entry{--exec option}{29}{\option {--exec} option}
+\entry{awk programs, location of}{29}{\command {awk} programs, location of}
+\entry{CGI, awk scripts for}{29}{CGI, \command {awk} scripts for}
+\entry{-g option}{29}{\option {-g} option}
+\entry{--gen-pot option}{29}{\option {--gen-pot} option}
+\entry{portable object files, generating}{29}{portable object files, 
generating}
+\entry{files, portable object, generating}{29}{files, portable object, 
generating}
+\entry{-h option}{30}{\option {-h} option}
+\entry{--help option}{30}{\option {--help} option}
+\entry{GNU long options, printing list of}{30}{GNU long options, printing list 
of}
+\entry{options, printing list of}{30}{options, printing list of}
+\entry{printing, list of options}{30}{printing, list of options}
+\entry{-i option}{30}{\option {-i} option}
+\entry{--include option}{30}{\option {--include} option}
+\entry{awk programs, location of}{30}{\command {awk} programs, location of}
+\entry{-l option}{30}{\option {-l} option}
+\entry{--load option}{30}{\option {--load} option}
+\entry{loading, library}{30}{loading, library}
+\entry{-l option}{30}{\option {-l} option}
+\entry{--lint option}{30}{\option {--lint} option}
+\entry{lint checking, issuing warnings}{30}{lint checking, issuing warnings}
+\entry{warnings, issuing}{30}{warnings, issuing}
+\entry{-M option}{30}{\option {-M} option}
+\entry{--bignum option}{30}{\option {--bignum} option}
+\entry{-n option}{30}{\option {-n} option}
+\entry{--non-decimal-data option}{30}{\option {--non-decimal-data} option}
+\entry{hexadecimal values,{} enabling interpretation of}{30}{hexadecimal 
values\comma {} enabling interpretation of}
+\entry{octal values,{} enabling interpretation of}{30}{octal values\comma {} 
enabling interpretation of}
+\entry{troubleshooting, --non-decimal-data option}{30}{troubleshooting, \code 
{--non-decimal-data} option}
+\entry{-N option}{31}{\option {-N} option}
+\entry{--use-lc-numeric option}{31}{\option {--use-lc-numeric} option}
+\entry{-o option}{31}{\option {-o} option}
+\entry{--pretty-print option}{31}{\option {--pretty-print} option}
+\entry{--optimize option}{31}{\option {--optimize} option}
+\entry{-O option}{31}{\option {-O} option}
+\entry{-p option}{31}{\option {-p} option}
+\entry{--profile option}{31}{\option {--profile} option}
+\entry{awk profiling, enabling}{31}{\command {awk} profiling, enabling}
+\entry{-P option}{31}{\option {-P} option}
+\entry{--posix option}{31}{\option {--posix} option}
+\entry{POSIX mode}{31}{POSIX mode}
+\entry{gawk, extensions,{} disabling}{31}{\command {gawk}, extensions\comma {} 
disabling}
+\entry{newlines}{31}{newlines}
+\entry{whitespace, newlines as}{31}{whitespace, newlines as}
+\entry{FS variable, as TAB character}{31}{\code {FS} variable, as TAB 
character}
+\entry{locale decimal point character}{31}{locale decimal point character}
+\entry{decimal point character, locale specific}{31}{decimal point character, 
locale specific}
+\entry{--traditional option, --posix option and}{31}{\option {--traditional} 
option, \code {--posix} option and}
+\entry{--posix option, --traditional option and}{31}{\option {--posix} option, 
\code {--traditional} option and}
+\entry{-r option}{32}{\option {-r} option}
+\entry{--re-interval option}{32}{\option {--re-interval} option}
+\entry{regular expressions, interval expressions and}{32}{regular expressions, 
interval expressions and}
+\entry{-S option}{32}{\option {-S} option}
+\entry{--sandbox option}{32}{\option {--sandbox} option}
+\entry{sandbox mode}{32}{sandbox mode}
+\entry{-L option}{32}{\option {-L} option}
+\entry{--lint-old option}{32}{\option {--lint-old} option}
+\entry{-V option}{32}{\option {-V} option}
+\entry{--version option}{32}{\option {--version} option}
+\entry{gawk, versions of, information about,{} printing}{32}{\command {gawk}, 
versions of, information about\comma {} printing}
+\entry{-F option, -Ft sets FS to TAB}{32}{\option {-F} option, \option {-Ft} 
sets \code {FS} to TAB}
+\entry{-f option, multiple uses}{32}{\option {-f} option, multiple uses}
+\entry{--source option}{32}{\option {--source} option}
+\entry{POSIXLY_CORRECT environment variable}{33}{\env {POSIXLY_CORRECT} 
environment variable}
+\entry{lint checking, POSIXLY_CORRECT environment variable}{33}{lint checking, 
\env {POSIXLY_CORRECT} environment variable}
+\entry{POSIX mode}{33}{POSIX mode}
+\entry{csh utility, POSIXLY_CORRECT environment variable}{33}{\command {csh} 
utility, \env {POSIXLY_CORRECT} environment variable}
+\entry{portability, POSIXLY_CORRECT environment variable}{33}{portability, 
\env {POSIXLY_CORRECT} environment variable}
+\entry{command line, arguments}{33}{command line, arguments}
+\entry{arguments, command-line}{33}{arguments, command-line}
+\entry{gawk, ARGIND variable in}{33}{\command {gawk}, \code {ARGIND} variable 
in}
+\entry{ARGIND variable, command-line arguments}{33}{\code {ARGIND} variable, 
command-line arguments}
+\entry{ARGV array, indexing into}{33}{\code {ARGV} array, indexing into}
+\entry{ARGC/ARGV variables, command-line arguments}{33}{\code {ARGC}/\code 
{ARGV} variables, command-line arguments}
+\entry{input files, variable assignments and}{33}{input files, variable 
assignments and}
+\entry{variable assignments and input files}{33}{variable assignments and 
input files}
+\entry{dark corner, escape sequences}{33}{dark corner, escape sequences}
+\entry{files, multiple passes over}{34}{files, multiple passes over}
+\entry{environment variables used by gawk}{34}{environment variables used by 
\command {gawk}}
+\entry{AWKPATH environment variable}{34}{\env {AWKPATH} environment variable}
+\entry{directories, searching for source files}{34}{directories, searching for 
source files}
+\entry{search paths, for source files}{34}{search paths, for source files}
+\entry{differences in awk and gawk, AWKPATH environment 
variable}{34}{differences in \command {awk} and \command {gawk}, \code 
{AWKPATH} environment variable}
+\entry{AWKLIBPATH environment variable}{35}{\env {AWKLIBPATH} environment 
variable}
+\entry{directories, searching for shared libraries}{35}{directories, searching 
for shared libraries}
+\entry{search paths, for shared libraries}{35}{search paths, for shared 
libraries}
+\entry{differences in awk and gawk, AWKLIBPATH environment 
variable}{35}{differences in \command {awk} and \command {gawk}, \code 
{AWKLIBPATH} environment variable}
+\entry{exit status, of gawk}{37}{exit status, of \command {gawk}}
+\entry{features, advanced, See advanced features}{39}{features, advanced, See 
advanced features}
+\entry{options, deprecated}{39}{options, deprecated}
+\entry{features, deprecated}{39}{features, deprecated}
+\entry{obsolete features}{39}{obsolete features}
+\entry{undocumented features}{39}{undocumented features}
+\entry{features, undocumented}{39}{features, undocumented}
+\entry{Skywalker, Luke}{39}{Skywalker, Luke}
+\entry{Kenobi, Obi-Wan}{39}{Kenobi, Obi-Wan}
+\entry{Jedi knights}{39}{Jedi knights}
+\entry{Knights, jedi}{39}{Knights, jedi}
+\entry{shells, sea}{39}{shells, sea}
+\entry{regexp}{41}{regexp}
+\entry{regular expressions}{41}{regular expressions}
+\entry{forward slash (/) to enclose regular expressions}{41}{forward slash 
(\code {/}) to enclose regular expressions}
+\entry{/ (forward slash) to enclose regular expressions}{41}{\code {/} 
(forward slash) to enclose regular expressions}
+\entry{regular expressions, as patterns}{41}{regular expressions, as patterns}
+\entry{regular expressions, operators}{41}{regular expressions, operators}
+\entry{operators, string-matching}{41}{operators, string-matching}
+\entry{string-matching operators}{41}{string-matching operators}
+\entry{~ (tilde), ~ operator}{41}{\code {~} (tilde), \code {~} operator}
+\entry{tilde (~), ~ operator}{41}{tilde (\code {~}), \code {~} operator}
+\entry{! (exclamation point), !~ operator}{41}{\code {!} (exclamation point), 
\code {!~} operator}
+\entry{exclamation point (!), !~ operator}{41}{exclamation point (\code {!}), 
\code {!~} operator}
+\entry{if statement, use of regexps in}{41}{\code {if} statement, use of 
regexps in}
+\entry{while statement, use of regexps in}{41}{\code {while} statement, use of 
regexps in}
+\entry{do-while statement, use of regexps in}{41}{\code {do}-\code {while} 
statement, use of regexps in}
+\entry{regexp constants}{42}{regexp constants}
+\entry{constant regexps}{42}{constant regexps}
+\entry{regular expressions, constants, See regexp constants}{42}{regular 
expressions, constants, See regexp constants}
+\entry{escape sequences, in strings}{42}{escape sequences, in strings}
+\entry{backslash ({\tt \indexbackslash }), in escape sequences}{42}{backslash 
(\code {{\tt \backslashcurfont }}), in escape sequences}
+\entry{{\tt \indexbackslash } (backslash), in escape sequences}{42}{\code 
{{\tt \backslashcurfont }} (backslash), in escape sequences}
+\entry{{\tt \indexbackslash } (backslash), {\tt \indexbackslash }a escape 
sequence}{42}{\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }a} escape sequence}
+\entry{backslash ({\tt \indexbackslash }), {\tt \indexbackslash }a escape 
sequence}{42}{backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }a} escape sequence}
+\entry{{\tt \indexbackslash } (backslash), {\tt \indexbackslash }b escape 
sequence}{42}{\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }b} escape sequence}
+\entry{backslash ({\tt \indexbackslash }), {\tt \indexbackslash }b escape 
sequence}{42}{backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }b} escape sequence}
+\entry{{\tt \indexbackslash } (backslash), {\tt \indexbackslash }f escape 
sequence}{42}{\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }f} escape sequence}
+\entry{backslash ({\tt \indexbackslash }), {\tt \indexbackslash }f escape 
sequence}{42}{backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }f} escape sequence}
+\entry{{\tt \indexbackslash } (backslash), {\tt \indexbackslash }n escape 
sequence}{42}{\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }n} escape sequence}
+\entry{backslash ({\tt \indexbackslash }), {\tt \indexbackslash }n escape 
sequence}{42}{backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }n} escape sequence}
+\entry{{\tt \indexbackslash } (backslash), {\tt \indexbackslash }r escape 
sequence}{42}{\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }r} escape sequence}
+\entry{backslash ({\tt \indexbackslash }), {\tt \indexbackslash }r escape 
sequence}{42}{backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }r} escape sequence}
+\entry{{\tt \indexbackslash } (backslash), {\tt \indexbackslash }t escape 
sequence}{42}{\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }t} escape sequence}
+\entry{backslash ({\tt \indexbackslash }), {\tt \indexbackslash }t escape 
sequence}{42}{backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }t} escape sequence}
+\entry{{\tt \indexbackslash } (backslash), {\tt \indexbackslash }v escape 
sequence}{42}{\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }v} escape sequence}
+\entry{backslash ({\tt \indexbackslash }), {\tt \indexbackslash }v escape 
sequence}{42}{backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }v} escape sequence}
+\entry{{\tt \indexbackslash } (backslash), {\tt \indexbackslash }nnn escape 
sequence}{42}{\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }}\var {nnn} escape sequence}
+\entry{backslash ({\tt \indexbackslash }), {\tt \indexbackslash }nnn escape 
sequence}{42}{backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }}\var {nnn} escape sequence}
+\entry{{\tt \indexbackslash } (backslash), {\tt \indexbackslash }x escape 
sequence}{42}{\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }x} escape sequence}
+\entry{backslash ({\tt \indexbackslash }), {\tt \indexbackslash }x escape 
sequence}{42}{backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }x} escape sequence}
+\entry{common extensions, {\tt \indexbackslash }x escape sequence}{42}{common 
extensions, \code {{\tt \backslashcurfont }x} escape sequence}
+\entry{extensions, common,{} {\tt \indexbackslash }x escape 
sequence}{42}{extensions, common\comma {} \code {{\tt \backslashcurfont }x} 
escape sequence}
+\entry{{\tt \indexbackslash } (backslash), {\tt \indexbackslash }/ escape 
sequence}{43}{\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }/} escape sequence}
+\entry{backslash ({\tt \indexbackslash }), {\tt \indexbackslash }/ escape 
sequence}{43}{backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }/} escape sequence}
+\entry{{\tt \indexbackslash } (backslash), {\tt \indexbackslash }" escape 
sequence}{43}{\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }"} escape sequence}
+\entry{backslash ({\tt \indexbackslash }), {\tt \indexbackslash }" escape 
sequence}{43}{backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }"} escape sequence}
+\entry{backslash ({\tt \indexbackslash }), in escape sequences}{43}{backslash 
(\code {{\tt \backslashcurfont }}), in escape sequences}
+\entry{{\tt \indexbackslash } (backslash), in escape sequences}{43}{\code 
{{\tt \backslashcurfont }} (backslash), in escape sequences}
+\entry{portability}{43}{portability}
+\entry{sidebar, Backslash Before Regular Characters}{44}{sidebar, Backslash 
Before Regular Characters}
+\entry{portability, backslash in escape sequences}{44}{portability, backslash 
in escape sequences}
+\entry{POSIX awk, backslashes in string constants}{44}{POSIX \command {awk}, 
backslashes in string constants}
+\entry{backslash ({\tt \indexbackslash }), in escape sequences, POSIX 
and}{44}{backslash (\code {{\tt \backslashcurfont }}), in escape sequences, 
POSIX and}
+\entry{{\tt \indexbackslash } (backslash), in escape sequences, POSIX 
and}{44}{\code {{\tt \backslashcurfont }} (backslash), in escape sequences, 
POSIX and}
+\entry{troubleshooting, backslash before nonspecial 
character}{44}{troubleshooting, backslash before nonspecial character}
+\entry{Brian Kernighan's awk}{44}{Brian Kernighan's \command {awk}}
+\entry{gawk, escape sequences}{44}{\command {gawk}, escape sequences}
+\entry{Unix awk, backslashes in escape sequences}{44}{Unix \command {awk}, 
backslashes in escape sequences}
+\entry{mawk utility}{44}{\command {mawk} utility}
+\entry{sidebar, Escape Sequences for Metacharacters}{44}{sidebar, Escape 
Sequences for Metacharacters}
+\entry{metacharacters, escape sequences for}{44}{metacharacters, escape 
sequences for}
+\entry{dark corner, escape sequences, for metacharacters}{44}{dark corner, 
escape sequences, for metacharacters}
+\entry{regular expressions, operators}{44}{regular expressions, operators}
+\entry{metacharacters in regular expressions}{44}{metacharacters in regular 
expressions}
+\entry{backslash ({\tt \indexbackslash }), regexp operator}{44}{backslash 
(\code {{\tt \backslashcurfont }}), regexp operator}
+\entry{{\tt \indexbackslash } (backslash), regexp operator}{44}{\code {{\tt 
\backslashcurfont }} (backslash), regexp operator}
+\entry{regular expressions, anchors in}{44}{regular expressions, anchors in}
+\entry{Texinfo, chapter beginnings in files}{44}{Texinfo, chapter beginnings 
in files}
+\entry{^ (caret), regexp operator}{44}{\code {^} (caret), regexp operator}
+\entry{caret (^), regexp operator}{44}{caret (\code {^}), regexp operator}
+\entry{$ (dollar sign), regexp operator}{44}{\code {$} (dollar sign), regexp 
operator}
+\entry{dollar sign ($), regexp operator}{44}{dollar sign (\code {$}), regexp 
operator}
+\entry{. (period), regexp operator}{45}{\code {.} (period), regexp operator}
+\entry{period (.), regexp operator}{45}{period (\code {.}), regexp operator}
+\entry{POSIX awk, period (.),{} using}{45}{POSIX \command {awk}, period (\code 
{.})\comma {} using}
+\entry{[] (square brackets), regexp operator}{45}{\code {[]} (square 
brackets), regexp operator}
+\entry{square brackets ([]), regexp operator}{45}{square brackets (\code 
{[]}), regexp operator}
+\entry{bracket expressions}{45}{bracket expressions}
+\entry{character sets, See Also bracket expressions}{45}{character sets, See 
Also bracket expressions}
+\entry{character lists, See bracket expressions}{45}{character lists, See 
bracket expressions}
+\entry{character classes, See bracket expressions}{45}{character classes, See 
bracket expressions}
+\entry{bracket expressions, complemented}{45}{bracket expressions, 
complemented}
+\entry{| (vertical bar)}{45}{\code {|} (vertical bar)}
+\entry{vertical bar (|)}{45}{vertical bar (\code {|})}
+\entry{() (parentheses), regexp operator}{45}{\code {()} (parentheses), regexp 
operator}
+\entry{parentheses (), regexp operator}{45}{parentheses \code {()}, regexp 
operator}
+\entry{* (asterisk), * operator, as regexp operator}{45}{\code {*} (asterisk), 
\code {*} operator, as regexp operator}
+\entry{asterisk (*), * operator, as regexp operator}{45}{asterisk (\code {*}), 
\code {*} operator, as regexp operator}
+\entry{+ (plus sign), regexp operator}{45}{\code {+} (plus sign), regexp 
operator}
+\entry{plus sign (+), regexp operator}{45}{plus sign (\code {+}), regexp 
operator}
+\entry{? (question mark), regexp operator}{46}{\code {?} (question mark), 
regexp operator}
+\entry{question mark (?), regexp operator}{46}{question mark (\code {?}), 
regexp operator}
+\entry{interval expressions, regexp operator}{46}{interval expressions, regexp 
operator}
+\entry{POSIX awk, interval expressions in}{46}{POSIX \command {awk}, interval 
expressions in}
+\entry{gawk, interval expressions and}{46}{\command {gawk}, interval 
expressions and}
+\entry{precedence, regexp operators}{46}{precedence, regexp operators}
+\entry{regular expressions, operators, precedence of}{46}{regular expressions, 
operators, precedence of}
+\entry{POSIX awk, regular expressions and}{46}{POSIX \command {awk}, regular 
expressions and}
+\entry{gawk, regular expressions, precedence}{46}{\command {gawk}, regular 
expressions, precedence}
+\entry{bracket expressions}{47}{bracket expressions}
+\entry{bracket expressions, range expressions}{47}{bracket expressions, range 
expressions}
+\entry{range expressions (regexps)}{47}{range expressions (regexps)}
+\entry{character lists in regular expression}{47}{character lists in regular 
expression}
+\entry{{\tt \indexbackslash } (backslash), in bracket expressions}{47}{\code 
{{\tt \backslashcurfont }} (backslash), in bracket expressions}
+\entry{backslash ({\tt \indexbackslash }), in bracket 
expressions}{47}{backslash (\code {{\tt \backslashcurfont }}), in bracket 
expressions}
+\entry{^ (caret), in bracket expressions}{47}{\code {^} (caret), in bracket 
expressions}
+\entry{caret (^), in bracket expressions}{47}{caret (\code {^}), in bracket 
expressions}
+\entry{- (hyphen), in bracket expressions}{47}{\code {-} (hyphen), in bracket 
expressions}
+\entry{hyphen (-), in bracket expressions}{47}{hyphen (\code {-}), in bracket 
expressions}
+\entry{POSIX awk, bracket expressions and}{47}{POSIX \command {awk}, bracket 
expressions and}
+\entry{Extended Regular Expressions (EREs)}{47}{Extended Regular Expressions 
(EREs)}
+\entry{EREs (Extended Regular Expressions)}{47}{EREs (Extended Regular 
Expressions)}
+\entry{egrep utility}{47}{\command {egrep} utility}
+\entry{bracket expressions, character classes}{47}{bracket expressions, 
character classes}
+\entry{POSIX awk, bracket expressions and, character classes}{47}{POSIX 
\command {awk}, bracket expressions and, character classes}
+\entry{bracket expressions, collating elements}{48}{bracket expressions, 
collating elements}
+\entry{bracket expressions, non-ASCII}{48}{bracket expressions, non-ASCII}
+\entry{collating elements}{48}{collating elements}
+\entry{bracket expressions, collating symbols}{48}{bracket expressions, 
collating symbols}
+\entry{collating symbols}{48}{collating symbols}
+\entry{bracket expressions, equivalence classes}{48}{bracket expressions, 
equivalence classes}
+\entry{internationalization, localization, character 
classes}{48}{internationalization, localization, character classes}
+\entry{gawk, character classes and}{48}{\command {gawk}, character classes and}
+\entry{POSIX awk, bracket expressions and, character classes}{48}{POSIX 
\command {awk}, bracket expressions and, character classes}
+\entry{regular expressions, operators, gawk}{48}{regular expressions, 
operators, \command {gawk}}
+\entry{gawk, regular expressions, operators}{48}{\command {gawk}, regular 
expressions, operators}
+\entry{operators, GNU-specific}{48}{operators, GNU-specific}
+\entry{regular expressions, operators, for words}{48}{regular expressions, 
operators, for words}
+\entry{word, regexp definition of}{48}{word, regexp definition of}
+\entry{backslash ({\tt \indexbackslash }), {\tt \indexbackslash }s operator 
(gawk)}{48}{backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }s} operator (\command {gawk})}
+\entry{{\tt \indexbackslash } (backslash), {\tt \indexbackslash }s operator 
(gawk)}{48}{\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }s} operator (\command {gawk})}
+\entry{backslash ({\tt \indexbackslash }), {\tt \indexbackslash }S operator 
(gawk)}{48}{backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }S} operator (\command {gawk})}
+\entry{{\tt \indexbackslash } (backslash), {\tt \indexbackslash }S operator 
(gawk)}{48}{\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }S} operator (\command {gawk})}
+\entry{backslash ({\tt \indexbackslash }), {\tt \indexbackslash }w operator 
(gawk)}{48}{backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }w} operator (\command {gawk})}
+\entry{{\tt \indexbackslash } (backslash), {\tt \indexbackslash }w operator 
(gawk)}{48}{\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }w} operator (\command {gawk})}
+\entry{backslash ({\tt \indexbackslash }), {\tt \indexbackslash }W operator 
(gawk)}{48}{backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }W} operator (\command {gawk})}
+\entry{{\tt \indexbackslash } (backslash), {\tt \indexbackslash }W operator 
(gawk)}{48}{\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }W} operator (\command {gawk})}
+\entry{backslash ({\tt \indexbackslash }), {\tt \indexbackslash }< operator 
(gawk)}{48}{backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }<} operator (\command {gawk})}
+\entry{{\tt \indexbackslash } (backslash), {\tt \indexbackslash }< operator 
(gawk)}{48}{\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }<} operator (\command {gawk})}
+\entry{backslash ({\tt \indexbackslash }), {\tt \indexbackslash }> operator 
(gawk)}{48}{backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }>} operator (\command {gawk})}
+\entry{{\tt \indexbackslash } (backslash), {\tt \indexbackslash }> operator 
(gawk)}{48}{\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }>} operator (\command {gawk})}
+\entry{backslash ({\tt \indexbackslash }), {\tt \indexbackslash }y operator 
(gawk)}{48}{backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }y} operator (\command {gawk})}
+\entry{{\tt \indexbackslash } (backslash), {\tt \indexbackslash }y operator 
(gawk)}{48}{\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }y} operator (\command {gawk})}
+\entry{word boundaries,{} matching}{48}{word boundaries\comma {} matching}
+\entry{backslash ({\tt \indexbackslash }), {\tt \indexbackslash }B operator 
(gawk)}{48}{backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }B} operator (\command {gawk})}
+\entry{{\tt \indexbackslash } (backslash), {\tt \indexbackslash }B operator 
(gawk)}{48}{\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }B} operator (\command {gawk})}
+\entry{buffers, operators for}{49}{buffers, operators for}
+\entry{regular expressions, operators, for buffers}{49}{regular expressions, 
operators, for buffers}
+\entry{operators, string-matching, for buffers}{49}{operators, 
string-matching, for buffers}
+\entry{backslash ({\tt \indexbackslash }), {\tt \indexbackslash }` operator 
(gawk)}{49}{backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }`} operator (\command {gawk})}
+\entry{{\tt \indexbackslash } (backslash), {\tt \indexbackslash }` operator 
(gawk)}{49}{\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }`} operator (\command {gawk})}
+\entry{backslash ({\tt \indexbackslash }), {\tt \indexbackslash }' operator 
(gawk)}{49}{backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }'} operator (\command {gawk})}
+\entry{{\tt \indexbackslash } (backslash), {\tt \indexbackslash }' operator 
(gawk)}{49}{\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }'} operator (\command {gawk})}
+\entry{^ (caret), regexp operator}{49}{\code {^} (caret), regexp operator}
+\entry{caret (^), regexp operator}{49}{caret (\code {^}), regexp operator}
+\entry{? (question mark), regexp operator}{49}{\code {?} (question mark), 
regexp operator}
+\entry{question mark (?), regexp operator}{49}{question mark (\code {?}), 
regexp operator}
+\entry{gawk, word-boundary operator}{49}{\command {gawk}, word-boundary 
operator}
+\entry{word-boundary operator (gawk)}{49}{word-boundary operator (\command 
{gawk})}
+\entry{operators, word-boundary (gawk)}{49}{operators, word-boundary (\command 
{gawk})}
+\entry{regular expressions, gawk, command-line options}{49}{regular 
expressions, \command {gawk}, command-line options}
+\entry{gawk, command-line options, and regular expressions}{49}{\command 
{gawk}, command-line options, and regular expressions}
+\entry{Brian Kernighan's awk}{49}{Brian Kernighan's \command {awk}}
+\entry{regular expressions, case sensitivity}{49}{regular expressions, case 
sensitivity}
+\entry{case sensitivity, regexps and}{49}{case sensitivity, regexps and}
+\entry{gawk, regular expressions, case sensitivity}{50}{\command {gawk}, 
regular expressions, case sensitivity}
+\entry{case sensitivity, gawk}{50}{case sensitivity, \command {gawk}}
+\entry{differences in awk and gawk, regular expressions}{50}{differences in 
\command {awk} and \command {gawk}, regular expressions}
+\entry{~ (tilde), ~ operator}{50}{\code {~} (tilde), \code {~} operator}
+\entry{tilde (~), ~ operator}{50}{tilde (\code {~}), \code {~} operator}
+\entry{! (exclamation point), !~ operator}{50}{\code {!} (exclamation point), 
\code {!~} operator}
+\entry{exclamation point (!), !~ operator}{50}{exclamation point (\code {!}), 
\code {!~} operator}
+\entry{IGNORECASE variable, with ~ and !~ operators}{50}{\code {IGNORECASE} 
variable, with \code {~} and \code {!~} operators}
+\entry{gawk, IGNORECASE variable in}{50}{\command {gawk}, \code {IGNORECASE} 
variable in}
+\entry{regular expressions, leftmost longest match}{50}{regular expressions, 
leftmost longest match}
+\entry{regular expressions, computed}{51}{regular expressions, computed}
+\entry{regular expressions, dynamic}{51}{regular expressions, dynamic}
+\entry{~ (tilde), ~ operator}{51}{\code {~} (tilde), \code {~} operator}
+\entry{tilde (~), ~ operator}{51}{tilde (\code {~}), \code {~} operator}
+\entry{! (exclamation point), !~ operator}{51}{\code {!} (exclamation point), 
\code {!~} operator}
+\entry{exclamation point (!), !~ operator}{51}{exclamation point (\code {!}), 
\code {!~} operator}
+\entry{regexp constants, slashes vs. quotes}{51}{regexp constants, slashes 
vs.\: quotes}
+\entry{{\tt \indexbackslash } (backslash), in regexp constants}{51}{\code 
{{\tt \backslashcurfont }} (backslash), in regexp constants}
+\entry{backslash ({\tt \indexbackslash }), in regexp constants}{51}{backslash 
(\code {{\tt \backslashcurfont }}), in regexp constants}
+\entry{" (double quote), in regexp constants}{51}{\code {"} (double quote), in 
regexp constants}
+\entry{double quote ("), in regexp constants}{51}{double quote (\code {"}), in 
regexp constants}
+\entry{troubleshooting, regexp constants vs. string 
constants}{51}{troubleshooting, regexp constants vs.\: string constants}
+\entry{regexp constants, vs. string constants}{51}{regexp constants, vs.\: 
string constants}
+\entry{string constants, vs. regexp constants}{51}{string constants, vs.\: 
regexp constants}
+\entry{sidebar, Using {\tt \indexbackslash }n in Bracket Expressions of 
Dynamic Regexps}{52}{sidebar, Using \code {{\tt \backslashcurfont }n} in 
Bracket Expressions of Dynamic Regexps}
+\entry{regular expressions, dynamic, with embedded newlines}{52}{regular 
expressions, dynamic, with embedded newlines}
+\entry{newlines, in dynamic regexps}{52}{newlines, in dynamic regexps}
+\entry{newlines, in regexp constants}{52}{newlines, in regexp constants}
+\entry{reading input files}{53}{reading input files}
+\entry{input files, reading}{53}{input files, reading}
+\entry{input files}{53}{input files}
+\entry{FILENAME variable}{53}{\code {FILENAME} variable}
+\entry{records}{53}{records}
+\entry{fields}{53}{fields}
+\entry{getline command}{53}{\code {getline} command}
+\entry{input, splitting into records}{53}{input, splitting into records}
+\entry{records, splitting input into}{53}{records, splitting input into}
+\entry{NR variable}{53}{\code {NR} variable}
+\entry{FNR variable}{53}{\code {FNR} variable}
+\entry{separators, for records}{53}{separators, for records}
+\entry{record separators}{53}{record separators}
+\entry{newlines, as record separators}{53}{newlines, as record separators}
+\entry{RS variable}{53}{\code {RS} variable}
+\entry{record separators, changing}{54}{record separators, changing}
+\entry{separators, for records}{54}{separators, for records}
+\entry{dark corner, input files}{55}{dark corner, input files}
+\entry{empty strings}{55}{empty strings}
+\entry{null strings}{55}{null strings}
+\entry{strings, empty, See null strings}{55}{strings, empty, See null strings}
+\entry{gawk, RT variable in}{55}{\command {gawk}, \code {RT} variable in}
+\entry{RT variable}{55}{\code {RT} variable}
+\entry{records, terminating}{55}{records, terminating}
+\entry{terminating records}{55}{terminating records}
+\entry{differences in awk and gawk, record separators}{55}{differences in 
\command {awk} and \command {gawk}, record separators}
+\entry{regular expressions, as record separators}{55}{regular expressions, as 
record separators}
+\entry{record separators, regular expressions as}{55}{record separators, 
regular expressions as}
+\entry{separators, for records, regular expressions as}{55}{separators, for 
records, regular expressions as}
+\entry{common extensions, RS as a regexp}{55}{common extensions, \code {RS} as 
a regexp}
+\entry{extensions, common,{} RS as a regexp}{55}{extensions, common\comma {} 
\code {RS} as a regexp}
+\entry{differences in awk and gawk, RS/RT variables}{56}{differences in 
\command {awk} and \command {gawk}, \code {RS}/\code {RT} variables}
+\entry{sidebar, RS = "{\tt \indexbackslash }0" Is Not Portable}{56}{sidebar, 
\code {RS = "{\tt \backslashcurfont }0"} Is Not Portable}
+\entry{portability, data files as single record}{56}{portability, data files 
as single record}
+\entry{differences in awk and gawk, strings, storing}{56}{differences in 
\command {awk} and \command {gawk}, strings, storing}
+\entry{dark corner, strings, storing}{56}{dark corner, strings, storing}
+\entry{records, treating files as}{56}{records, treating files as}
+\entry{treating files, as single records}{56}{treating files, as single 
records}
+\entry{examining fields}{56}{examining fields}
+\entry{fields}{56}{fields}
+\entry{accessing fields}{56}{accessing fields}
+\entry{fields, examining}{56}{fields, examining}
+\entry{POSIX awk, field separators and}{56}{POSIX \command {awk}, field 
separators and}
+\entry{field separators, POSIX and}{56}{field separators, POSIX and}
+\entry{separators, field, POSIX and}{56}{separators, field, POSIX and}
+\entry{field operator $}{57}{field operator \code {$}}
+\entry{$ (dollar sign), $ field operator}{57}{\code {$} (dollar sign), \code 
{$} field operator}
+\entry{dollar sign ($), $ field operator}{57}{dollar sign (\code {$}), \code 
{$} field operator}
+\entry{field operators,{} dollar sign as}{57}{field operators\comma {} dollar 
sign as}
+\entry{NF variable}{57}{\code {NF} variable}
+\entry{fields, number of}{57}{fields, number of}
+\entry{fields, numbers}{57}{fields, numbers}
+\entry{field numbers}{57}{field numbers}
+\entry{fields, changing contents of}{58}{fields, changing contents of}
+\entry{adding, fields}{59}{adding, fields}
+\entry{fields, adding}{59}{fields, adding}
+\entry{OFS variable}{59}{\code {OFS} variable}
+\entry{output field separator, See OFS variable}{59}{output field separator, 
See \code {OFS} variable}
+\entry{field separators, See Also OFS}{59}{field separators, See Also \code 
{OFS}}
+\entry{dark corner, NF variable, decrementing}{60}{dark corner, \code {NF} 
variable, decrementing}
+\entry{NF variable, decrementing}{60}{\code {NF} variable, decrementing}
+\entry{portability, NF variable,{} decrementing}{60}{portability, \code {NF} 
variable\comma {} decrementing}
+\entry{sidebar, Understanding $0}{60}{sidebar, Understanding \code {$0}}
+\entry{FS variable}{60}{\code {FS} variable}
+\entry{fields, separating}{60}{fields, separating}
+\entry{field separators}{60}{field separators}
+\entry{fields, separating}{60}{fields, separating}
+\entry{troubleshooting, awk uses FS not IFS}{61}{troubleshooting, \command 
{awk} uses \code {FS} not \code {IFS}}
+\entry{FS variable, changing value of}{61}{\code {FS} variable, changing value 
of}
+\entry{BEGIN pattern}{61}{\code {BEGIN} pattern}
+\entry{field separators, choice of}{61}{field separators, choice of}
+\entry{regular expressions as field separators}{61}{regular expressions as 
field separators}
+\entry{field separators, regular expressions as}{61}{field separators, regular 
expressions as}
+\entry{newlines, as field separators}{61}{newlines, as field separators}
+\entry{whitespace, as field separators}{61}{whitespace, as field separators}
+\entry{regular expressions, as field separators}{61}{regular expressions, as 
field separators}
+\entry{field separators, regular expressions as}{61}{field separators, regular 
expressions as}
+\entry{null strings}{62}{null strings}
+\entry{strings, null}{62}{strings, null}
+\entry{empty strings, See null strings}{62}{empty strings, See null strings}
+\entry{FS, containing ^}{62}{\code {FS}, containing \code {^}}
+\entry{^ (caret), in FS}{62}{\code {^} (caret), in \code {FS}}
+\entry{dark corner, ^, in FS}{62}{dark corner, \code {^}, in \code {FS}}
+\entry{Brian Kernighan's awk}{62}{Brian Kernighan's \command {awk}}
+\entry{common extensions, single character fields}{63}{common extensions, 
single character fields}
+\entry{extensions, common,{} single character fields}{63}{extensions, 
common\comma {} single character fields}
+\entry{differences in awk and gawk, single-character fields}{63}{differences 
in \command {awk} and \command {gawk}, single-character fields}
+\entry{single-character fields}{63}{single-character fields}
+\entry{fields, single-character}{63}{fields, single-character}
+\entry{dark corner, FS as null string}{63}{dark corner, \code {FS} as null 
string}
+\entry{FS variable, as null string}{63}{\code {FS} variable, as null string}
+\entry{-F option, command line}{63}{\option {-F} option, command line}
+\entry{field separator, on command line}{63}{field separator, on command line}
+\entry{command line, FS on,{} setting}{63}{command line, \code {FS} on\comma 
{} setting}
+\entry{FS variable, setting from command line}{63}{\code {FS} variable, 
setting from command line}
+\entry{{\tt \indexbackslash } (backslash), as field separator}{63}{\code {{\tt 
\backslashcurfont }} (backslash), as field separator}
+\entry{backslash ({\tt \indexbackslash }), as field separator}{63}{backslash 
(\code {{\tt \backslashcurfont }}), as field separator}
+\entry{Unix awk, password files,{} field separators and}{64}{Unix \command 
{awk}, password files\comma {} field separators and}
+\entry{Robbins, Arnold}{64}{Robbins, Arnold}
+\entry{sidebar, Changing FS Does Not Affect the Fields}{65}{sidebar, Changing 
\code {FS} Does Not Affect the Fields}
+\entry{POSIX awk, field separators and}{65}{POSIX \command {awk}, field 
separators and}
+\entry{field separator, POSIX and}{65}{field separator, POSIX and}
+\entry{dark corner, field separators}{65}{dark corner, field separators}
+\entry{sed utility}{65}{\command {sed} utility}
+\entry{stream editors}{65}{stream editors}
+\entry{sidebar, FS and IGNORECASE}{65}{sidebar, \code {FS} and \code 
{IGNORECASE}}
+\entry{data, fixed-width}{66}{data, fixed-width}
+\entry{fixed-width data}{66}{fixed-width data}
+\entry{advanced features, fixed-width data}{66}{advanced features, fixed-width 
data}
+\entry{troubleshooting, fatal errors, field widths,{} 
specifying}{66}{troubleshooting, fatal errors, field widths\comma {} specifying}
+\entry{w utility}{66}{\command {w} utility}
+\entry{FIELDWIDTHS variable}{66}{\code {FIELDWIDTHS} variable}
+\entry{gawk, FIELDWIDTHS variable in}{66}{\command {gawk}, \code {FIELDWIDTHS} 
variable in}
+\entry{gawk, splitting fields and}{67}{\command {gawk}, splitting fields and}
+\entry{advanced features, specifying field content}{67}{advanced features, 
specifying field content}
+\entry{gawk, FPAT variable in}{68}{\command {gawk}, \code {FPAT} variable in}
+\entry{FPAT variable}{68}{\code {FPAT} variable}
+\entry{multiple-line records}{69}{multiple-line records}
+\entry{records, multiline}{69}{records, multiline}
+\entry{input, multiline records}{69}{input, multiline records}
+\entry{files, reading, multiline records}{69}{files, reading, multiline 
records}
+\entry{input, files, See input files}{69}{input, files, See input files}
+\entry{record separators, with multiline records}{69}{record separators, with 
multiline records}
+\entry{RS variable, multiline records and}{69}{\code {RS} variable, multiline 
records and}
+\entry{leftmost longest match}{69}{leftmost longest match}
+\entry{matching, leftmost longest}{69}{matching, leftmost longest}
+\entry{dark corner, multiline records}{69}{dark corner, multiline records}
+\entry{field separator, in multiline records}{69}{field separator, in 
multiline records}
+\entry{FS, in multiline records}{69}{\code {FS}, in multiline records}
+\entry{gawk, RT variable in}{71}{\command {gawk}, \code {RT} variable in}
+\entry{RT variable}{71}{\code {RT} variable}
+\entry{getline command, explicit input with}{71}{\code {getline} command, 
explicit input with}
+\entry{input, explicit}{71}{input, explicit}
+\entry{gawk, ERRNO variable in}{71}{\command {gawk}, \code {ERRNO} variable in}
+\entry{ERRNO variable, with getline command}{71}{\code {ERRNO} variable, with 
\command {getline} command}
+\entry{differences in awk and gawk, getline command}{71}{differences in 
\command {awk} and \command {gawk}, \code {getline} command}
+\entry{getline command, return values}{71}{\code {getline} command, return 
values}
+\entry{--sandbox option, input redirection with getline}{71}{\option 
{--sandbox} option, input redirection with \code {getline}}
+\entry{getline into a variable}{72}{\code {getline} into a variable}
+\entry{variables, getline command into,{} using}{72}{variables, \code 
{getline} command into\comma {} using}
+\entry{getline from a file}{73}{\code {getline} from a file}
+\entry{input redirection}{73}{input redirection}
+\entry{redirection of input}{73}{redirection of input}
+\entry{< (left angle bracket), < operator (I/O)}{73}{\code {<} (left angle 
bracket), \code {<} operator (I/O)}
+\entry{left angle bracket (<), < operator (I/O)}{73}{left angle bracket (\code 
{<}), \code {<} operator (I/O)}
+\entry{operators, input/output}{73}{operators, input/output}
+\entry{POSIX awk, < operator and}{73}{POSIX \command {awk}, \code {<} operator 
and}
+\entry{variables, getline command into,{} using}{73}{variables, \code 
{getline} command into\comma {} using}
+\entry{Kernighan, Brian}{74}{Kernighan, Brian}
+\entry{| (vertical bar), | operator (I/O)}{74}{\code {|} (vertical bar), \code 
{|} operator (I/O)}
+\entry{vertical bar (|), | operator (I/O)}{74}{vertical bar (\code {|}), \code 
{|} operator (I/O)}
+\entry{input pipeline}{74}{input pipeline}
+\entry{pipe, input}{74}{pipe, input}
+\entry{operators, input/output}{74}{operators, input/output}
+\entry{Robbins, Bill}{75}{Robbins, Bill}
+\entry{Robbins, Miriam}{75}{Robbins, Miriam}
+\entry{Robbins, Arnold}{75}{Robbins, Arnold}
+\entry{POSIX awk, | I/O operator and}{75}{POSIX \command {awk}, \code {|} I/O 
operator and}
+\entry{Brian Kernighan's awk}{75}{Brian Kernighan's \command {awk}}
+\entry{mawk utility}{75}{\command {mawk} utility}
+\entry{variables, getline command into,{} using}{75}{variables, \code 
{getline} command into\comma {} using}
+\entry{coprocesses, getline from}{75}{coprocesses, \code {getline} from}
+\entry{getline command, coprocesses,{} using from}{75}{\code {getline} 
command, coprocesses\comma {} using from}
+\entry{| (vertical bar), |& operator (I/O)}{75}{\code {|} (vertical bar), 
\code {|&} operator (I/O)}
+\entry{vertical bar (|), |& operator (I/O)}{75}{vertical bar (\code {|}), 
\code {|&} operator (I/O)}
+\entry{operators, input/output}{75}{operators, input/output}
+\entry{differences in awk and gawk, input/output operators}{75}{differences in 
\command {awk} and \command {gawk}, input/output operators}
+\entry{variables, getline command into,{} using}{76}{variables, \code 
{getline} command into\comma {} using}
+\entry{differences in awk and gawk, implementation 
limitations}{76}{differences in \command {awk} and \command {gawk}, 
implementation limitations}
+\entry{implementation issues, gawk, limits}{76}{implementation issues, 
\command {gawk}, limits}
+\entry{awk, implementations, limits}{76}{\command {awk}, implementations, 
limits}
+\entry{gawk, implementation issues, limits}{76}{\command {gawk}, 
implementation issues, limits}
+\entry{side effects, FILENAME variable}{76}{side effects, \code {FILENAME} 
variable}
+\entry{FILENAME variable, getline,{} setting with}{76}{\code {FILENAME} 
variable, \code {getline}\comma {} setting with}
+\entry{dark corner, FILENAME variable}{76}{dark corner, \code {FILENAME} 
variable}
+\entry{getline command, FILENAME variable and}{76}{\code {getline} command, 
\code {FILENAME} variable and}
+\entry{BEGIN pattern, getline and}{76}{\code {BEGIN} pattern, \code {getline} 
and}
+\entry{getline command, variants}{77}{\code {getline} command, variants}
+\entry{timeout, reading input}{77}{timeout, reading input}
+\entry{differences in awk and gawk, command line directories}{79}{differences 
in \command {awk} and \command {gawk}, command line directories}
+\entry{directories, command line}{79}{directories, command line}
+\entry{command line, directories on}{79}{command line, directories on}
+\entry{printing}{81}{printing}
+\entry{output, printing, See printing}{81}{output, printing, See printing}
+\entry{print statement}{81}{\code {print} statement}
+\entry{printf statement}{81}{\code {printf} statement}
+\entry{records, printing}{81}{records, printing}
+\entry{lines, blank, printing}{81}{lines, blank, printing}
+\entry{text, printing}{81}{text, printing}
+\entry{newlines, printing}{81}{newlines, printing}
+\entry{fields, printing}{81}{fields, printing}
+\entry{print statement, commas, omitting}{82}{\code {print} statement, commas, 
omitting}
+\entry{troubleshooting, print statement,{} omitting 
commas}{82}{troubleshooting, \code {print} statement\comma {} omitting commas}
+\entry{BEGIN pattern, headings,{} adding}{82}{\code {BEGIN} pattern, 
headings\comma {} adding}
+\entry{printf statement, columns,{} aligning}{82}{\code {printf} statement, 
columns\comma {} aligning}
+\entry{columns, aligning}{82}{columns, aligning}
+\entry{line continuations, in print statement}{82}{line continuations, in 
\code {print} statement}
+\entry{print statement, line continuations and}{82}{\code {print} statement, 
line continuations and}
+\entry{OFS variable}{83}{\code {OFS} variable}
+\entry{output, records}{83}{output, records}
+\entry{output record separator, See ORS variable}{83}{output record separator, 
See \code {ORS} variable}
+\entry{ORS variable}{83}{\code {ORS} variable}
+\entry{BEGIN pattern, OFS/ORS variables, assigning values to}{83}{\code 
{BEGIN} pattern, \code {OFS}/\code {ORS} variables, assigning values to}
+\entry{numeric, output format}{84}{numeric, output format}
+\entry{formats,{} numeric output}{84}{formats\comma {} numeric output}
+\entry{sprintf() function}{84}{\code {sprintf()} function}
+\entry{OFMT variable}{84}{\code {OFMT} variable}
+\entry{output, format specifier,{} OFMT}{84}{output, format specifier\comma {} 
\code {OFMT}}
+\entry{dark corner, OFMT variable}{84}{dark corner, \code {OFMT} variable}
+\entry{POSIX awk, OFMT variable and}{84}{POSIX \command {awk}, \code {OFMT} 
variable and}
+\entry{OFMT variable, POSIX awk and}{84}{\code {OFMT} variable, POSIX \command 
{awk} and}
+\entry{printf statement}{84}{\code {printf} statement}
+\entry{output, formatted}{84}{output, formatted}
+\entry{formatting output}{84}{formatting output}
+\entry{printf statement, syntax of}{84}{\code {printf} statement, syntax of}
+\entry{format specifiers}{84}{format specifiers}
+\entry{printf statement, format-control characters}{85}{\code {printf} 
statement, format-control characters}
+\entry{format specifiers, printf statement}{85}{format specifiers, \code 
{printf} statement}
+\entry{dark corner, format-control characters}{85}{dark corner, format-control 
characters}
+\entry{gawk, format-control characters}{85}{\command {gawk}, format-control 
characters}
+\entry{dark corner, format-control characters}{86}{dark corner, format-control 
characters}
+\entry{gawk, format-control characters}{86}{\command {gawk}, format-control 
characters}
+\entry{printf statement, modifiers}{86}{\code {printf} statement, modifiers}
+\entry{modifiers,{} in format specifiers}{86}{modifiers\comma {} in format 
specifiers}
+\entry{differences in awk and gawk, print/printf statements}{86}{differences 
in \command {awk} and \command {gawk}, \code {print}/\code {printf} statements}
+\entry{printf statement, positional specifiers}{86}{\code {printf} statement, 
positional specifiers}
+\entry{positional specifiers, printf statement}{86}{positional specifiers, 
\code {printf} statement}
+\entry{troubleshooting, fatal errors, printf format 
strings}{88}{troubleshooting, fatal errors, \code {printf} format strings}
+\entry{POSIX awk, printf format strings and}{88}{POSIX \command {awk}, \code 
{printf} format strings and}
+\entry{output redirection}{90}{output redirection}
+\entry{redirection of output}{90}{redirection of output}
+\entry{--sandbox option, output redirection with print, printf}{90}{\option 
{--sandbox} option, output redirection with \code {print}, \code {printf}}
+\entry{print statement, See Also redirection,{} of output}{90}{\code {print} 
statement, See Also redirection\comma {} of output}
+\entry{printf statement, See Also redirection,{} of output}{90}{\code {printf} 
statement, See Also redirection\comma {} of output}
+\entry{> (right angle bracket), > operator (I/O)}{90}{\code {>} (right angle 
bracket), \code {>} operator (I/O)}
+\entry{right angle bracket (>), > operator (I/O)}{90}{right angle bracket 
(\code {>}), \code {>} operator (I/O)}
+\entry{operators, input/output}{90}{operators, input/output}
+\entry{> (right angle bracket), >> operator (I/O)}{90}{\code {>} (right angle 
bracket), \code {>>} operator (I/O)}
+\entry{right angle bracket (>), >> operator (I/O)}{90}{right angle bracket 
(\code {>}), \code {>>} operator (I/O)}
+\entry{| (vertical bar), | operator (I/O)}{90}{\code {|} (vertical bar), \code 
{|} operator (I/O)}
+\entry{pipe, output}{90}{pipe, output}
+\entry{output, pipes}{90}{output, pipes}
+\entry{coprocesses}{91}{coprocesses}
+\entry{| (vertical bar), |& operator (I/O)}{91}{\code {|} (vertical bar), 
\code {|&} operator (I/O)}
+\entry{operators, input/output}{91}{operators, input/output}
+\entry{differences in awk and gawk, input/output operators}{91}{differences in 
\command {awk} and \command {gawk}, input/output operators}
+\entry{troubleshooting, printing}{91}{troubleshooting, printing}
+\entry{differences in awk and gawk, implementation 
limitations}{92}{differences in \command {awk} and \command {gawk}, 
implementation limitations}
+\entry{implementation issues, gawk, limits}{92}{implementation issues, 
\command {gawk}, limits}
+\entry{awk, implementation issues, pipes}{92}{\command {awk}, implementation 
issues, pipes}
+\entry{gawk, implementation issues, pipes}{92}{\command {gawk}, implementation 
issues, pipes}
+\entry{sidebar, Piping into sh}{92}{sidebar, Piping into \command {sh}}
+\entry{shells, piping commands into}{92}{shells, piping commands into}
+\entry{gawk, file names in}{92}{\command {gawk}, file names in}
+\entry{standard input}{92}{standard input}
+\entry{input, standard}{92}{input, standard}
+\entry{standard output}{92}{standard output}
+\entry{output, standard}{92}{output, standard}
+\entry{error output}{92}{error output}
+\entry{standard error}{92}{standard error}
+\entry{file descriptors}{92}{file descriptors}
+\entry{files, descriptors, See file descriptors}{92}{files, descriptors, See 
file descriptors}
+\entry{differences in awk and gawk, error messages}{92}{differences in 
\command {awk} and \command {gawk}, error messages}
+\entry{error handling}{92}{error handling}
+\entry{common extensions, /dev/stdin special file}{93}{common extensions, 
\code {/dev/stdin} special file}
+\entry{common extensions, /dev/stdout special file}{93}{common extensions, 
\code {/dev/stdout} special file}
+\entry{common extensions, /dev/stderr special file}{93}{common extensions, 
\code {/dev/stderr} special file}
+\entry{extensions, common,{} /dev/stdin special file}{93}{extensions, 
common\comma {} \code {/dev/stdin} special file}
+\entry{extensions, common,{} /dev/stdout special file}{93}{extensions, 
common\comma {} \code {/dev/stdout} special file}
+\entry{extensions, common,{} /dev/stderr special file}{93}{extensions, 
common\comma {} \code {/dev/stderr} special file}
+\entry{file names, standard streams in gawk}{93}{file names, standard streams 
in \command {gawk}}
+\entry{/dev/...{} special files}{93}{\code {/dev/\dots {}} special files}
+\entry{files, /dev/...{} special files}{93}{files, \code {/dev/\dots {}} 
special files}
+\entry{/dev/fd/N special files (gawk)}{93}{\code {/dev/fd/\var {N}} special 
files (\command {gawk})}
+\entry{troubleshooting, quotes with file names}{93}{troubleshooting, quotes 
with file names}
+\entry{networks, support for}{93}{networks, support for}
+\entry{TCP/IP, support for}{93}{TCP/IP, support for}
+\entry{compatibility mode (gawk), file names}{94}{compatibility mode (\command 
{gawk}), file names}
+\entry{file names, in compatibility mode}{94}{file names, in compatibility 
mode}
+\entry{files, output, See output files}{94}{files, output, See output files}
+\entry{input files, closing}{94}{input files, closing}
+\entry{output, files,{} closing}{94}{output, files\comma {} closing}
+\entry{pipe, closing}{94}{pipe, closing}
+\entry{coprocesses, closing}{94}{coprocesses, closing}
+\entry{getline command, coprocesses,{} using from}{94}{\code {getline} 
command, coprocesses\comma {} using from}
+\entry{close() function}{94}{\code {close()} function}
+\entry{differences in awk and gawk, close() function}{95}{differences in 
\command {awk} and \command {gawk}, \code {close()} function}
+\entry{portability, close() function and}{95}{portability, \code {close()} 
function and}
+\entry{close() function, portability}{95}{\code {close()} function, 
portability}
+\entry{| (vertical bar), |& operator (I/O), pipes,{} closing}{96}{\code {|} 
(vertical bar), \code {|&} operator (I/O), pipes\comma {} closing}
+\entry{sidebar, Using close()'s Return Value}{96}{sidebar, Using \code 
{close()}'s Return Value}
+\entry{dark corner, close() function}{96}{dark corner, \code {close()} 
function}
+\entry{close() function, return value}{96}{\code {close()} function, return 
value}
+\entry{return value,{} close() function}{96}{return value\comma {} \code 
{close()} function}
+\entry{differences in awk and gawk, close() function}{96}{differences in 
\command {awk} and \command {gawk}, \code {close()} function}
+\entry{Unix awk, close() function and}{96}{Unix \command {awk}, \code 
{close()} function and}
+\entry{gawk, ERRNO variable in}{96}{\command {gawk}, \code {ERRNO} variable in}
+\entry{ERRNO variable, with close() function}{96}{\code {ERRNO} variable, with 
\command {close()} function}
+\entry{expressions}{97}{expressions}
+\entry{constants, types of}{97}{constants, types of}
+\entry{constants, numeric}{97}{constants, numeric}
+\entry{numeric constants}{97}{numeric constants}
+\entry{string constants}{97}{string constants}
+\entry{differences in awk and gawk, strings}{97}{differences in \command {awk} 
and \command {gawk}, strings}
+\entry{strings, length limitations}{97}{strings, length limitations}
+\entry{octal numbers}{97}{octal numbers}
+\entry{hexadecimal numbers}{97}{hexadecimal numbers}
+\entry{numbers, octal}{97}{numbers, octal}
+\entry{numbers, hexadecimal}{97}{numbers, hexadecimal}
+\entry{gawk, octal numbers and}{98}{\command {gawk}, octal numbers and}
+\entry{gawk, hexadecimal numbers and}{98}{\command {gawk}, hexadecimal numbers 
and}
+\entry{compatibility mode (gawk), octal numbers}{98}{compatibility mode 
(\command {gawk}), octal numbers}
+\entry{compatibility mode (gawk), hexadecimal numbers}{98}{compatibility mode 
(\command {gawk}), hexadecimal numbers}
+\entry{sidebar, A Constant's Base Does Not Affect Its Value}{98}{sidebar, A 
Constant's Base Does Not Affect Its Value}
+\entry{regexp constants}{98}{regexp constants}
+\entry{~ (tilde), ~ operator}{98}{\code {~} (tilde), \code {~} operator}
+\entry{tilde (~), ~ operator}{98}{tilde (\code {~}), \code {~} operator}
+\entry{! (exclamation point), !~ operator}{98}{\code {!} (exclamation point), 
\code {!~} operator}
+\entry{exclamation point (!), !~ operator}{98}{exclamation point (\code {!}), 
\code {!~} operator}
+\entry{dark corner, regexp constants}{99}{dark corner, regexp constants}
+\entry{gawk, regexp constants and}{99}{\command {gawk}, regexp constants and}
+\entry{regexp constants, in gawk}{99}{regexp constants, in \command {gawk}}
+\entry{differences in awk and gawk, regexp constants}{99}{differences in 
\command {awk} and \command {gawk}, regexp constants}
+\entry{dark corner, regexp constants, as arguments to user-defined 
functions}{99}{dark corner, regexp constants, as arguments to user-defined 
functions}
+\entry{gensub() function (gawk)}{99}{\code {gensub()} function (\command 
{gawk})}
+\entry{sub() function}{99}{\code {sub()} function}
+\entry{gsub() function}{99}{\code {gsub()} function}
+\entry{variables, user-defined}{100}{variables, user-defined}
+\entry{user-defined, variables}{100}{user-defined, variables}
+\entry{variables, built-in}{100}{variables, built-in}
+\entry{variables, initializing}{100}{variables, initializing}
+\entry{variables, assigning on command line}{100}{variables, assigning on 
command line}
+\entry{command line, variables,{} assigning on}{100}{command line, 
variables\comma {} assigning on}
+\entry{-v option}{100}{\option {-v} option}
+\entry{dark corner, command-line arguments}{101}{dark corner, command-line 
arguments}
+\entry{converting, strings to numbers}{101}{converting, strings to numbers}
+\entry{strings, converting}{101}{strings, converting}
+\entry{numbers, converting}{101}{numbers, converting}
+\entry{converting, numbers to strings}{101}{converting, numbers to strings}
+\entry{null strings, converting numbers to strings}{101}{null strings, 
converting numbers to strings}
+\entry{type conversion}{101}{type conversion}
+\entry{CONVFMT variable}{101}{\code {CONVFMT} variable}
+\entry{dark corner, CONVFMT variable}{102}{dark corner, \code {CONVFMT} 
variable}
+\entry{POSIX awk, OFMT variable and}{102}{POSIX \command {awk}, \code {OFMT} 
variable and}
+\entry{OFMT variable}{102}{\code {OFMT} variable}
+\entry{portability, new awk vs. old awk}{102}{portability, new \command {awk} 
vs.\: old \command {awk}}
+\entry{awk, new vs. old, OFMT variable}{102}{\command {awk}, new vs.\: old, 
\code {OFMT} variable}
+\entry{dark corner, locale's decimal point character}{102}{dark corner, 
locale's decimal point character}
+\entry{arithmetic operators}{103}{arithmetic operators}
+\entry{operators, arithmetic}{103}{operators, arithmetic}
+\entry{common extensions, ** operator}{104}{common extensions, \code {**} 
operator}
+\entry{extensions, common,{} ** operator}{104}{extensions, common\comma {} 
\code {**} operator}
+\entry{POSIX awk, arithmetic operators and}{104}{POSIX \command {awk}, 
arithmetic operators and}
+\entry{troubleshooting, division}{104}{troubleshooting, division}
+\entry{division}{104}{division}
+\entry{differences in awk and gawk, trunc-mod operation}{104}{differences in 
\command {awk} and \command {gawk}, trunc-mod operation}
+\entry{trunc-mod operation}{104}{trunc-mod operation}
+\entry{portability, ** operator and}{104}{portability, \code {**} operator and}
+\entry{* (asterisk), ** operator}{104}{\code {*} (asterisk), \code {**} 
operator}
+\entry{asterisk (*), ** operator}{104}{asterisk (\code {*}), \code {**} 
operator}
+\entry{Kernighan, Brian}{104}{Kernighan, Brian}
+\entry{string operators}{104}{string operators}
+\entry{operators, string}{104}{operators, string}
+\entry{concatenating}{104}{concatenating}
+\entry{troubleshooting, string concatenation}{105}{troubleshooting, string 
concatenation}
+\entry{Brian Kernighan's awk}{105}{Brian Kernighan's \command {awk}}
+\entry{mawk utility}{105}{\command {mawk} utility}
+\entry{order of evaluation, concatenation}{105}{order of evaluation, 
concatenation}
+\entry{evaluation order, concatenation}{105}{evaluation order, concatenation}
+\entry{side effects}{105}{side effects}
+\entry{assignment operators}{106}{assignment operators}
+\entry{operators, assignment}{106}{operators, assignment}
+\entry{expressions, assignment}{106}{expressions, assignment}
+\entry{= (equals sign), = operator}{106}{\code {=} (equals sign), \code {=} 
operator}
+\entry{equals sign (=), = operator}{106}{equals sign (\code {=}), \code {=} 
operator}
+\entry{side effects, assignment expressions}{106}{side effects, assignment 
expressions}
+\entry{lvalues/rvalues}{106}{lvalues/rvalues}
+\entry{rvalues/lvalues}{106}{rvalues/lvalues}
+\entry{assignment operators, lvalues/rvalues}{106}{assignment operators, 
lvalues/rvalues}
+\entry{operators, assignment}{106}{operators, assignment}
+\entry{variables, types of}{106}{variables, types of}
+\entry{+ (plus sign), += operator}{107}{\code {+} (plus sign), \code {+=} 
operator}
+\entry{plus sign (+), += operator}{107}{plus sign (\code {+}), \code {+=} 
operator}
+\entry{Rankin, Pat}{107}{Rankin, Pat}
+\entry{operators, assignment, evaluation order}{107}{operators, assignment, 
evaluation order}
+\entry{assignment operators, evaluation order}{107}{assignment operators, 
evaluation order}
+\entry{- (hyphen), -= operator}{107}{\code {-} (hyphen), \code {-=} operator}
+\entry{hyphen (-), -= operator}{107}{hyphen (\code {-}), \code {-=} operator}
+\entry{* (asterisk), *= operator}{107}{\code {*} (asterisk), \code {*=} 
operator}
+\entry{asterisk (*), *= operator}{107}{asterisk (\code {*}), \code {*=} 
operator}
+\entry{/ (forward slash), /= operator}{107}{\code {/} (forward slash), \code 
{/=} operator}
+\entry{forward slash (/), /= operator}{107}{forward slash (\code {/}), \code 
{/=} operator}
+\entry{% (percent sign), %= operator}{107}{\code {%} (percent sign), \code 
{%=} operator}
+\entry{percent sign (%), %= operator}{107}{percent sign (\code {%}), \code 
{%=} operator}
+\entry{^ (caret), ^= operator}{107}{\code {^} (caret), \code {^=} operator}
+\entry{caret (^), ^= operator}{107}{caret (\code {^}), \code {^=} operator}
+\entry{* (asterisk), **= operator}{107}{\code {*} (asterisk), \code {**=} 
operator}
+\entry{asterisk (*), **= operator}{107}{asterisk (\code {*}), \code {**=} 
operator}
+\entry{common extensions, **= operator}{108}{common extensions, \code {**=} 
operator}
+\entry{extensions, common,{} **= operator}{108}{extensions, common\comma {} 
\code {**=} operator}
+\entry{awk language, POSIX version}{108}{\command {awk} language, POSIX 
version}
+\entry{POSIX awk}{108}{POSIX \command {awk}}
+\entry{POSIX awk, **= operator and}{108}{POSIX \command {awk}, \code {**=} 
operator and}
+\entry{portability, **= operator and}{108}{portability, \code {**=} operator 
and}
+\entry{sidebar, Syntactic Ambiguities Between /= and Regular 
Expressions}{108}{sidebar, Syntactic Ambiguities Between \samp {/=} and Regular 
Expressions}
+\entry{dark corner, regexp constants, /= operator and}{108}{dark corner, 
regexp constants, \code {/=} operator and}
+\entry{/ (forward slash), /= operator, vs. /=...{}/ regexp 
constant}{108}{\code {/} (forward slash), \code {/=} operator, vs. \code 
{/=\dots {}/} regexp constant}
+\entry{forward slash (/), /= operator, vs. /=...{}/ regexp 
constant}{108}{forward slash (\code {/}), \code {/=} operator, vs. \code 
{/=\dots {}/} regexp constant}
+\entry{regexp constants, /=...{}/, /= operator and}{108}{regexp constants, 
\code {/=\dots {}/}, \code {/=} operator and}
+\entry{dark corner, /= operator vs. /=...{}/ regexp constant}{108}{dark 
corner, \code {/=} operator vs. \code {/=\dots {}/} regexp constant}
+\entry{ambiguity, syntactic: /= operator vs. /=...{}/ regexp 
constant}{108}{ambiguity, syntactic: \code {/=} operator vs. \code {/=\dots 
{}/} regexp constant}
+\entry{syntactic ambiguity: /= operator vs. /=...{}/ regexp 
constant}{108}{syntactic ambiguity: \code {/=} operator vs. \code {/=\dots {}/} 
regexp constant}
+\entry{/= operator vs. /=...{}/ regexp constant}{108}{\code {/=} operator vs. 
\code {/=\dots {}/} regexp constant}
+\entry{increment operators}{108}{increment operators}
+\entry{operators, decrement/increment}{108}{operators, decrement/increment}
+\entry{side effects}{108}{side effects}
+\entry{+ (plus sign), ++ operator}{108}{\code {+} (plus sign), \code {++} 
operator}
+\entry{plus sign (+), ++ operator}{108}{plus sign (\code {+}), \code {++} 
operator}
+\entry{side effects, decrement/increment operators}{108}{side effects, 
decrement/increment operators}
+\entry{$ (dollar sign), incrementing fields and arrays}{109}{\code {$} (dollar 
sign), incrementing fields and arrays}
+\entry{dollar sign ($), incrementing fields and arrays}{109}{dollar sign 
(\code {$}), incrementing fields and arrays}
+\entry{decrement operators}{109}{decrement operators}
+\entry{+ (plus sign), ++ operator}{109}{\code {+} (plus sign), \code {++} 
operator}
+\entry{plus sign (+), ++ operator}{109}{plus sign (\code {+}), \code {++} 
operator}
+\entry{- (hyphen), -- operator}{109}{\code {-} (hyphen), \code {--} operator}
+\entry{hyphen (-), -- operator}{109}{hyphen (\code {-}), \code {--} operator}
+\entry{sidebar, Operator Evaluation Order}{109}{sidebar, Operator Evaluation 
Order}
+\entry{precedence}{109}{precedence}
+\entry{operators, precedence}{109}{operators, precedence}
+\entry{portability, operators}{109}{portability, operators}
+\entry{evaluation order}{109}{evaluation order}
+\entry{Marx, Groucho}{109}{Marx, Groucho}
+\entry{side effects}{109}{side effects}
+\entry{truth values}{109}{truth values}
+\entry{logical false/true}{109}{logical false/true}
+\entry{false, logical}{109}{false, logical}
+\entry{true, logical}{109}{true, logical}
+\entry{null strings}{109}{null strings}
+\entry{dark corner, "0" is actually true}{110}{dark corner, \code {"0"} is 
actually true}
+\entry{comparison expressions}{110}{comparison expressions}
+\entry{expressions, comparison}{110}{expressions, comparison}
+\entry{expressions, matching, See comparison expressions}{110}{expressions, 
matching, See comparison expressions}
+\entry{matching, expressions, See comparison expressions}{110}{matching, 
expressions, See comparison expressions}
+\entry{relational operators, See comparison operators}{110}{relational 
operators, See comparison operators}
+\entry{operators, relational, See operators,{} comparison}{110}{operators, 
relational, See operators\comma {} comparison}
+\entry{variable typing}{110}{variable typing}
+\entry{variables, types of, comparison expressions and}{110}{variables, types 
of, comparison expressions and}
+\entry{numeric, strings}{110}{numeric, strings}
+\entry{strings, numeric}{110}{strings, numeric}
+\entry{POSIX awk, numeric strings and}{110}{POSIX \command {awk}, numeric 
strings and}
+\entry{< (left angle bracket), < operator}{111}{\code {<} (left angle 
bracket), \code {<} operator}
+\entry{left angle bracket (<), < operator}{111}{left angle bracket (\code 
{<}), \code {<} operator}
+\entry{< (left angle bracket), <= operator}{111}{\code {<} (left angle 
bracket), \code {<=} operator}
+\entry{left angle bracket (<), <= operator}{111}{left angle bracket (\code 
{<}), \code {<=} operator}
+\entry{> (right angle bracket), >= operator}{111}{\code {>} (right angle 
bracket), \code {>=} operator}
+\entry{right angle bracket (>), >= operator}{111}{right angle bracket (\code 
{>}), \code {>=} operator}
+\entry{> (right angle bracket), > operator}{111}{\code {>} (right angle 
bracket), \code {>} operator}
+\entry{right angle bracket (>), > operator}{111}{right angle bracket (\code 
{>}), \code {>} operator}
+\entry{= (equals sign), == operator}{111}{\code {=} (equals sign), \code {==} 
operator}
+\entry{equals sign (=), == operator}{111}{equals sign (\code {=}), \code {==} 
operator}
+\entry{! (exclamation point), != operator}{111}{\code {!} (exclamation point), 
\code {!=} operator}
+\entry{exclamation point (!), != operator}{111}{exclamation point (\code {!}), 
\code {!=} operator}
+\entry{~ (tilde), ~ operator}{111}{\code {~} (tilde), \code {~} operator}
+\entry{tilde (~), ~ operator}{111}{tilde (\code {~}), \code {~} operator}
+\entry{! (exclamation point), !~ operator}{111}{\code {!} (exclamation point), 
\code {!~} operator}
+\entry{exclamation point (!), !~ operator}{111}{exclamation point (\code {!}), 
\code {!~} operator}
+\entry{in operator}{111}{\code {in} operator}
+\entry{troubleshooting, == operator}{112}{troubleshooting, \code {==} operator}
+\entry{gawk, comparison operators and}{112}{\command {gawk}, comparison 
operators and}
+\entry{comparison expressions, string vs. regexp}{113}{comparison expressions, 
string vs.\: regexp}
+\entry{~ (tilde), ~ operator}{113}{\code {~} (tilde), \code {~} operator}
+\entry{tilde (~), ~ operator}{113}{tilde (\code {~}), \code {~} operator}
+\entry{! (exclamation point), !~ operator}{113}{\code {!} (exclamation point), 
\code {!~} operator}
+\entry{exclamation point (!), !~ operator}{113}{exclamation point (\code {!}), 
\code {!~} operator}
+\entry{awk, regexp constants and}{113}{\command {awk}, regexp constants and}
+\entry{regexp constants}{113}{regexp constants}
+\entry{and Boolean-logic operator}{113}{and Boolean-logic operator}
+\entry{or Boolean-logic operator}{113}{or Boolean-logic operator}
+\entry{not Boolean-logic operator}{113}{not Boolean-logic operator}
+\entry{expressions, Boolean}{113}{expressions, Boolean}
+\entry{Boolean expressions}{113}{Boolean expressions}
+\entry{operators, Boolean, See Boolean expressions}{113}{operators, Boolean, 
See Boolean expressions}
+\entry{Boolean operators, See Boolean expressions}{113}{Boolean operators, See 
Boolean expressions}
+\entry{logical operators, See Boolean expressions}{113}{logical operators, See 
Boolean expressions}
+\entry{operators, logical, See Boolean expressions}{113}{operators, logical, 
See Boolean expressions}
+\entry{side effects, Boolean operators}{114}{side effects, Boolean operators}
+\entry{short-circuit operators}{114}{short-circuit operators}
+\entry{operators, short-circuit}{114}{operators, short-circuit}
+\entry{& (ampersand), && operator}{114}{\code {&} (ampersand), \code {&&} 
operator}
+\entry{ampersand (&), && operator}{114}{ampersand (\code {&}), \code {&&} 
operator}
+\entry{| (vertical bar), || operator}{114}{\code {|} (vertical bar), \code 
{||} operator}
+\entry{vertical bar (|), || operator}{114}{vertical bar (\code {|}), \code 
{||} operator}
+\entry{line continuations}{114}{line continuations}
+\entry{! (exclamation point), ! operator}{114}{\code {!} (exclamation point), 
\code {!} operator}
+\entry{exclamation point (!), ! operator}{114}{exclamation point (\code {!}), 
\code {!} operator}
+\entry{newlines}{114}{newlines}
+\entry{variables, flag}{114}{variables, flag}
+\entry{flag variables}{114}{flag variables}
+\entry{next statement}{115}{\code {next} statement}
+\entry{conditional expressions}{115}{conditional expressions}
+\entry{expressions, conditional}{115}{expressions, conditional}
+\entry{expressions, selecting}{115}{expressions, selecting}
+\entry{side effects, conditional expressions}{115}{side effects, conditional 
expressions}
+\entry{differences in awk and gawk, line continuations}{115}{differences in 
\command {awk} and \command {gawk}, line continuations}
+\entry{line continuations, gawk}{115}{line continuations, \command {gawk}}
+\entry{gawk, line continuation in}{115}{\command {gawk}, line continuation in}
+\entry{function calls}{115}{function calls}
+\entry{functions, built-in}{115}{functions, built-in}
+\entry{arguments, in function calls}{116}{arguments, in function calls}
+\entry{troubleshooting, function call syntax}{116}{troubleshooting, function 
call syntax}
+\entry{side effects, function calls}{116}{side effects, function calls}
+\entry{precedence}{117}{precedence}
+\entry{operators, precedence}{117}{operators, precedence}
+\entry{$ (dollar sign), $ field operator}{117}{\code {$} (dollar sign), \code 
{$} field operator}
+\entry{dollar sign ($), $ field operator}{117}{dollar sign (\code {$}), \code 
{$} field operator}
+\entry{+ (plus sign), ++ operator}{117}{\code {+} (plus sign), \code {++} 
operator}
+\entry{plus sign (+), ++ operator}{117}{plus sign (\code {+}), \code {++} 
operator}
+\entry{- (hyphen), -- operator}{117}{\code {-} (hyphen), \code {--} operator}
+\entry{hyphen (-), -- operator}{117}{hyphen (\code {-}), \code {--} operator}
+\entry{^ (caret), ^ operator}{117}{\code {^} (caret), \code {^} operator}
+\entry{caret (^), ^ operator}{117}{caret (\code {^}), \code {^} operator}
+\entry{* (asterisk), ** operator}{117}{\code {*} (asterisk), \code {**} 
operator}
+\entry{asterisk (*), ** operator}{117}{asterisk (\code {*}), \code {**} 
operator}
+\entry{+ (plus sign), + operator}{117}{\code {+} (plus sign), \code {+} 
operator}
+\entry{plus sign (+), + operator}{117}{plus sign (\code {+}), \code {+} 
operator}
+\entry{- (hyphen), - operator}{117}{\code {-} (hyphen), \code {-} operator}
+\entry{hyphen (-), - operator}{117}{hyphen (\code {-}), \code {-} operator}
+\entry{! (exclamation point), ! operator}{117}{\code {!} (exclamation point), 
\code {!} operator}
+\entry{exclamation point (!), ! operator}{117}{exclamation point (\code {!}), 
\code {!} operator}
+\entry{* (asterisk), * operator, as multiplication operator}{117}{\code {*} 
(asterisk), \code {*} operator, as multiplication operator}
+\entry{asterisk (*), * operator, as multiplication operator}{117}{asterisk 
(\code {*}), \code {*} operator, as multiplication operator}
+\entry{/ (forward slash), / operator}{117}{\code {/} (forward slash), \code 
{/} operator}
+\entry{forward slash (/), / operator}{117}{forward slash (\code {/}), \code 
{/} operator}
+\entry{% (percent sign), % operator}{117}{\code {%} (percent sign), \code {%} 
operator}
+\entry{percent sign (%), % operator}{117}{percent sign (\code {%}), \code {%} 
operator}
+\entry{+ (plus sign), + operator}{118}{\code {+} (plus sign), \code {+} 
operator}
+\entry{plus sign (+), + operator}{118}{plus sign (\code {+}), \code {+} 
operator}
+\entry{- (hyphen), - operator}{118}{\code {-} (hyphen), \code {-} operator}
+\entry{hyphen (-), - operator}{118}{hyphen (\code {-}), \code {-} operator}
+\entry{< (left angle bracket), < operator}{118}{\code {<} (left angle 
bracket), \code {<} operator}
+\entry{left angle bracket (<), < operator}{118}{left angle bracket (\code 
{<}), \code {<} operator}
+\entry{< (left angle bracket), <= operator}{118}{\code {<} (left angle 
bracket), \code {<=} operator}
+\entry{left angle bracket (<), <= operator}{118}{left angle bracket (\code 
{<}), \code {<=} operator}
+\entry{> (right angle bracket), >= operator}{118}{\code {>} (right angle 
bracket), \code {>=} operator}
+\entry{right angle bracket (>), >= operator}{118}{right angle bracket (\code 
{>}), \code {>=} operator}
+\entry{> (right angle bracket), > operator}{118}{\code {>} (right angle 
bracket), \code {>} operator}
+\entry{right angle bracket (>), > operator}{118}{right angle bracket (\code 
{>}), \code {>} operator}
+\entry{= (equals sign), == operator}{118}{\code {=} (equals sign), \code {==} 
operator}
+\entry{equals sign (=), == operator}{118}{equals sign (\code {=}), \code {==} 
operator}
+\entry{! (exclamation point), != operator}{118}{\code {!} (exclamation point), 
\code {!=} operator}
+\entry{exclamation point (!), != operator}{118}{exclamation point (\code {!}), 
\code {!=} operator}
+\entry{> (right angle bracket), >> operator (I/O)}{118}{\code {>} (right angle 
bracket), \code {>>} operator (I/O)}
+\entry{right angle bracket (>), >> operator (I/O)}{118}{right angle bracket 
(\code {>}), \code {>>} operator (I/O)}
+\entry{operators, input/output}{118}{operators, input/output}
+\entry{| (vertical bar), | operator (I/O)}{118}{\code {|} (vertical bar), 
\code {|} operator (I/O)}
+\entry{vertical bar (|), | operator (I/O)}{118}{vertical bar (\code {|}), 
\code {|} operator (I/O)}
+\entry{operators, input/output}{118}{operators, input/output}
+\entry{| (vertical bar), |& operator (I/O)}{118}{\code {|} (vertical bar), 
\code {|&} operator (I/O)}
+\entry{vertical bar (|), |& operator (I/O)}{118}{vertical bar (\code {|}), 
\code {|&} operator (I/O)}
+\entry{operators, input/output}{118}{operators, input/output}
+\entry{print statement, I/O operators in}{118}{\code {print} statement, I/O 
operators in}
+\entry{printf statement, I/O operators in}{118}{\code {printf} statement, I/O 
operators in}
+\entry{~ (tilde), ~ operator}{118}{\code {~} (tilde), \code {~} operator}
+\entry{tilde (~), ~ operator}{118}{tilde (\code {~}), \code {~} operator}
+\entry{! (exclamation point), !~ operator}{118}{\code {!} (exclamation point), 
\code {!~} operator}
+\entry{exclamation point (!), !~ operator}{118}{exclamation point (\code {!}), 
\code {!~} operator}
+\entry{in operator}{118}{\code {in} operator}
+\entry{& (ampersand), && operator}{118}{\code {&} (ampersand), \code {&&} 
operator}
+\entry{ampersand (&), && operator}{118}{ampersand (\code {&}), \code {&&} 
operator}
+\entry{| (vertical bar), || operator}{118}{\code {|} (vertical bar), \code 
{||} operator}
+\entry{vertical bar (|), || operator}{118}{vertical bar (\code {|}), \code 
{||} operator}
+\entry{? (question mark), ?: operator}{118}{\code {?} (question mark), \code 
{?:} operator}
+\entry{question mark (?), ?: operator}{118}{question mark (\code {?}), \code 
{?:} operator}
+\entry{+ (plus sign), += operator}{118}{\code {+} (plus sign), \code {+=} 
operator}
+\entry{plus sign (+), += operator}{118}{plus sign (\code {+}), \code {+=} 
operator}
+\entry{- (hyphen), -= operator}{118}{\code {-} (hyphen), \code {-=} operator}
+\entry{hyphen (-), -= operator}{118}{hyphen (\code {-}), \code {-=} operator}
+\entry{* (asterisk), *= operator}{118}{\code {*} (asterisk), \code {*=} 
operator}
+\entry{asterisk (*), *= operator}{118}{asterisk (\code {*}), \code {*=} 
operator}
+\entry{* (asterisk), **= operator}{118}{\code {*} (asterisk), \code {**=} 
operator}
+\entry{asterisk (*), **= operator}{118}{asterisk (\code {*}), \code {**=} 
operator}
+\entry{/ (forward slash), /= operator}{118}{\code {/} (forward slash), \code 
{/=} operator}
+\entry{forward slash (/), /= operator}{118}{forward slash (\code {/}), \code 
{/=} operator}
+\entry{% (percent sign), %= operator}{118}{\code {%} (percent sign), \code 
{%=} operator}
+\entry{percent sign (%), %= operator}{118}{percent sign (\code {%}), \code 
{%=} operator}
+\entry{^ (caret), ^= operator}{118}{\code {^} (caret), \code {^=} operator}
+\entry{caret (^), ^= operator}{118}{caret (\code {^}), \code {^=} operator}
+\entry{POSIX awk, ** operator and}{118}{POSIX \command {awk}, \code {**} 
operator and}
+\entry{portability, operators, not in POSIX awk}{118}{portability, operators, 
not in POSIX \command {awk}}
+\entry{locale, definition of}{118}{locale, definition of}
+\entry{patterns}{119}{patterns}
+\entry{patterns, types of}{119}{patterns, types of}
+\entry{patterns, expressions as}{119}{patterns, expressions as}
+\entry{regular expressions, as patterns}{119}{regular expressions, as patterns}
+\entry{expressions, as patterns}{119}{expressions, as patterns}
+\entry{comparison expressions, as patterns}{120}{comparison expressions, as 
patterns}
+\entry{patterns, comparison expressions as}{120}{patterns, comparison 
expressions as}
+\entry{/ (forward slash), patterns and}{120}{\code {/} (forward slash), 
patterns and}
+\entry{forward slash (/), patterns and}{120}{forward slash (\code {/}), 
patterns and}
+\entry{~ (tilde), ~ operator}{120}{\code {~} (tilde), \code {~} operator}
+\entry{tilde (~), ~ operator}{120}{tilde (\code {~}), \code {~} operator}
+\entry{! (exclamation point), !~ operator}{120}{\code {!} (exclamation point), 
\code {!~} operator}
+\entry{exclamation point (!), !~ operator}{120}{exclamation point (\code {!}), 
\code {!~} operator}
+\entry{regexp constants, as patterns}{120}{regexp constants, as patterns}
+\entry{patterns, regexp constants as}{120}{patterns, regexp constants as}
+\entry{Boolean expressions, as patterns}{120}{Boolean expressions, as patterns}
+\entry{BEGIN pattern, Boolean patterns and}{121}{\code {BEGIN} pattern, 
Boolean patterns and}
+\entry{END pattern, Boolean patterns and}{121}{\code {END} pattern, Boolean 
patterns and}
+\entry{BEGINFILE pattern, Boolean patterns and}{121}{\code {BEGINFILE} 
pattern, Boolean patterns and}
+\entry{ENDFILE pattern, Boolean patterns and}{121}{\code {ENDFILE} pattern, 
Boolean patterns and}
+\entry{range patterns}{121}{range patterns}
+\entry{patterns, ranges in}{121}{patterns, ranges in}
+\entry{lines, matching ranges of}{121}{lines, matching ranges of}
+\entry{, (comma), in range patterns}{121}{\code {,} (comma), in range patterns}
+\entry{comma (,), in range patterns}{121}{comma (\code {,}), in range patterns}
+\entry{if statement, actions,{} changing}{121}{\code {if} statement, 
actions\comma {} changing}
+\entry{lines, skipping between markers}{121}{lines, skipping between markers}
+\entry{! (exclamation point), ! operator}{121}{\code {!} (exclamation point), 
\code {!} operator}
+\entry{range patterns, line continuation and}{122}{range patterns, line 
continuation and}
+\entry{BEGIN pattern}{122}{\code {BEGIN} pattern}
+\entry{END pattern}{122}{\code {END} pattern}
+\entry{BEGIN pattern}{122}{\code {BEGIN} pattern}
+\entry{END pattern}{122}{\code {END} pattern}
+\entry{BEGIN pattern, operators and}{122}{\code {BEGIN} pattern, operators and}
+\entry{END pattern, operators and}{122}{\code {END} pattern, operators and}
+\entry{input/output, from BEGIN and END}{123}{input/output, from \code {BEGIN} 
and \code {END}}
+\entry{Brian Kernighan's awk}{123}{Brian Kernighan's \command {awk}}
+\entry{differences in awk and gawk, BEGIN/END patterns}{123}{differences in 
\command {awk} and \command {gawk}, \code {BEGIN}/\code {END} patterns}
+\entry{POSIX awk, BEGIN/END patterns}{123}{POSIX \command {awk}, \code 
{BEGIN}/\code {END} patterns}
+\entry{print statement, BEGIN/END patterns and}{123}{\code {print} statement, 
\code {BEGIN}/\code {END} patterns and}
+\entry{BEGIN pattern, print statement and}{123}{\code {BEGIN} pattern, \code 
{print} statement and}
+\entry{END pattern, print statement and}{123}{\code {END} pattern, \code 
{print} statement and}
+\entry{next statement, BEGIN/END patterns and}{123}{\code {next} statement, 
\code {BEGIN}/\code {END} patterns and}
+\entry{nextfile statement, BEGIN/END patterns and}{123}{\code {nextfile} 
statement, \code {BEGIN}/\code {END} patterns and}
+\entry{BEGIN pattern, next/nextfile statements and}{123}{\code {BEGIN} 
pattern, \code {next}/\code {nextfile} statements and}
+\entry{END pattern, next/nextfile statements and}{123}{\code {END} pattern, 
\code {next}/\code {nextfile} statements and}
+\entry{BEGINFILE pattern}{123}{\code {BEGINFILE} pattern}
+\entry{ENDFILE pattern}{123}{\code {ENDFILE} pattern}
+\entry{differences in awk and gawk, BEGINFILE/ENDFILE 
patterns}{123}{differences in \command {awk} and \command {gawk}, \code 
{BEGINFILE}/\code {ENDFILE} patterns}
+\entry{gawk, ERRNO variable in}{124}{\command {gawk}, \code {ERRNO} variable 
in}
+\entry{ERRNO variable, with BEGINFILE pattern}{124}{\code {ERRNO} variable, 
with \code {BEGINFILE} pattern}
+\entry{nextfile statement, BEGINFILE/ENDFILE patterns and}{124}{\code 
{nextfile} statement, \code {BEGINFILE}/\code {ENDFILE} patterns and}
+\entry{next statement, BEGINFILE/ENDFILE patterns and}{124}{\code {next} 
statement, \code {BEGINFILE}/\code {ENDFILE} patterns and}
+\entry{getline statement, BEGINFILE/ENDFILE patterns and}{124}{\code {getline} 
statement, \code {BEGINFILE}/\code {ENDFILE} patterns and}
+\entry{empty pattern}{124}{empty pattern}
+\entry{patterns, empty}{124}{patterns, empty}
+\entry{shells, variables}{124}{shells, variables}
+\entry{awk programs, shell variables in}{124}{\command {awk} programs, shell 
variables in}
+\entry{shells, quoting}{124}{shells, quoting}
+\entry{actions}{125}{actions}
+\entry{|a|b (braces), actions and}{125}{\code {{\tt \char 123}{\tt \char 125}} 
(braces), actions and}
+\entry{braces (|a|b), actions and}{125}{braces (\code {{\tt \char 123}{\tt 
\char 125}}), actions and}
+\entry{separators, for statements in actions}{125}{separators, for statements 
in actions}
+\entry{newlines, separating statements in actions}{125}{newlines, separating 
statements in actions}
+\entry{; (semicolon), separating statements in actions}{125}{\code {;} 
(semicolon), separating statements in actions}
+\entry{semicolon (;), separating statements in actions}{125}{semicolon (\code 
{;}), separating statements in actions}
+\entry{side effects, statements}{126}{side effects, statements}
+\entry{control statements}{126}{control statements}
+\entry{statements, control, in actions}{126}{statements, control, in actions}
+\entry{actions, control statements in}{126}{actions, control statements in}
+\entry{compound statements,{} control statements and}{126}{compound 
statements\comma {} control statements and}
+\entry{statements, compound,{} control statements and}{126}{statements, 
compound\comma {} control statements and}
+\entry{body, in actions}{126}{body, in actions}
+\entry{|a|b (braces), statements, grouping}{126}{\code {{\tt \char 123}{\tt 
\char 125}} (braces), statements, grouping}
+\entry{braces (|a|b), statements, grouping}{126}{braces (\code {{\tt \char 
123}{\tt \char 125}}), statements, grouping}
+\entry{newlines, separating statements in actions}{126}{newlines, separating 
statements in actions}
+\entry{; (semicolon), separating statements in actions}{126}{\code {;} 
(semicolon), separating statements in actions}
+\entry{semicolon (;), separating statements in actions}{126}{semicolon (\code 
{;}), separating statements in actions}
+\entry{if statement}{126}{\code {if} statement}
+\entry{while statement}{127}{\code {while} statement}
+\entry{loops}{127}{loops}
+\entry{loops, while}{127}{loops, \code {while}}
+\entry{loops, See Also while statement}{127}{loops, See Also \code {while} 
statement}
+\entry{body, in loops}{127}{body, in loops}
+\entry{do-while statement}{128}{\code {do}-\code {while} statement}
+\entry{loops, do-while}{128}{loops, \code {do}-\code {while}}
+\entry{for statement}{128}{\code {for} statement}
+\entry{loops, for, iterative}{128}{loops, \code {for}, iterative}
+\entry{loops, continue statements and}{129}{loops, \code {continue} statements 
and}
+\entry{in operator}{129}{\code {in} operator}
+\entry{switch statement}{129}{\code {switch} statement}
+\entry{case keyword}{129}{\code {case} keyword}
+\entry{default keyword}{129}{\code {default} keyword}
+\entry{break statement}{130}{\code {break} statement}
+\entry{loops, exiting}{130}{loops, exiting}
+\entry{loops, break statement and}{130}{loops, \code {break} statement and}
+\entry{POSIX awk, break statement and}{131}{POSIX \command {awk}, \code 
{break} statement and}
+\entry{dark corner, break statement}{131}{dark corner, \code {break} statement}
+\entry{gawk, break statement in}{131}{\command {gawk}, \code {break} statement 
in}
+\entry{Brian Kernighan's awk}{131}{Brian Kernighan's \command {awk}}
+\entry{continue statement}{131}{\code {continue} statement}
+\entry{POSIX awk, continue statement and}{132}{POSIX \command {awk}, \code 
{continue} statement and}
+\entry{dark corner, continue statement}{132}{dark corner, \code {continue} 
statement}
+\entry{gawk, continue statement in}{132}{\command {gawk}, \code {continue} 
statement in}
+\entry{Brian Kernighan's awk}{132}{Brian Kernighan's \command {awk}}
+\entry{next statement}{132}{\code {next} statement}
+\entry{awk programs, execution of}{132}{\command {awk} programs, execution of}
+\entry{BEGIN pattern, next/nextfile statements and}{133}{\code {BEGIN} 
pattern, \code {next}/\code {nextfile} statements and}
+\entry{END pattern, next/nextfile statements and}{133}{\code {END} pattern, 
\code {next}/\code {nextfile} statements and}
+\entry{POSIX awk, next/nextfile statements and}{133}{POSIX \command {awk}, 
\code {next}/\code {nextfile} statements and}
+\entry{next statement, user-defined functions and}{133}{\code {next} 
statement, user-defined functions and}
+\entry{functions, user-defined, next/nextfile statements and}{133}{functions, 
user-defined, \code {next}/\code {nextfile} statements and}
+\entry{nextfile statement}{133}{\code {nextfile} statement}
+\entry{functions, user-defined, next/nextfile statements and}{133}{functions, 
user-defined, \code {next}/\code {nextfile} statements and}
+\entry{nextfile statement, user-defined functions and}{133}{\code {nextfile} 
statement, user-defined functions and}
+\entry{Brian Kernighan's awk}{133}{Brian Kernighan's \command {awk}}
+\entry{mawk utility}{133}{\command {mawk} utility}
+\entry{exit statement}{134}{\code {exit} statement}
+\entry{BEGIN pattern, exit statement and}{134}{\code {BEGIN} pattern, \code 
{exit} statement and}
+\entry{END pattern, exit statement and}{134}{\code {END} pattern, \code {exit} 
statement and}
+\entry{dark corner, exit statement}{134}{dark corner, \code {exit} statement}
+\entry{programming conventions, exit statement}{134}{programming conventions, 
\code {exit} statement}
+\entry{built-in variables}{134}{built-in variables}
+\entry{variables, built-in}{134}{variables, built-in}
+\entry{gawk, built-in variables and}{135}{\command {gawk}, built-in variables 
and}
+\entry{built-in variables, user-modifiable}{135}{built-in variables, 
user-modifiable}
+\entry{user-modifiable variables}{135}{user-modifiable variables}
+\entry{BINMODE variable}{135}{\code {BINMODE} variable}
+\entry{binary input/output}{135}{binary input/output}
+\entry{input/output, binary}{135}{input/output, binary}
+\entry{differences in awk and gawk, BINMODE variable}{135}{differences in 
\command {awk} and \command {gawk}, \code {BINMODE} variable}
+\entry{CONVFMT variable}{135}{\code {CONVFMT} variable}
+\entry{POSIX awk, CONVFMT variable and}{135}{POSIX \command {awk}, \code 
{CONVFMT} variable and}
+\entry{numbers, converting, to strings}{135}{numbers, converting, to strings}
+\entry{strings, converting, numbers to}{135}{strings, converting, numbers to}
+\entry{gawk, FIELDWIDTHS variable in}{135}{\command {gawk}, \code 
{FIELDWIDTHS} variable in}
+\entry{FIELDWIDTHS variable}{135}{\code {FIELDWIDTHS} variable}
+\entry{differences in awk and gawk, FIELDWIDTHS variable}{135}{differences in 
\command {awk} and \command {gawk}, \code {FIELDWIDTHS} variable}
+\entry{field separators, FIELDWIDTHS variable and}{135}{field separators, 
\code {FIELDWIDTHS} variable and}
+\entry{separators, field, FIELDWIDTHS variable and}{135}{separators, field, 
\code {FIELDWIDTHS} variable and}
+\entry{gawk, FPAT variable in}{135}{\command {gawk}, \code {FPAT} variable in}
+\entry{FPAT variable}{135}{\code {FPAT} variable}
+\entry{differences in awk and gawk, FPAT variable}{135}{differences in 
\command {awk} and \command {gawk}, \code {FPAT} variable}
+\entry{field separators, FPAT variable and}{135}{field separators, \code 
{FPAT} variable and}
+\entry{separators, field, FPAT variable and}{135}{separators, field, \code 
{FPAT} variable and}
+\entry{FS variable}{135}{\code {FS} variable}
+\entry{separators, field}{135}{separators, field}
+\entry{field separators}{135}{field separators}
+\entry{POSIX awk, FS variable and}{136}{POSIX \command {awk}, \code {FS} 
variable and}
+\entry{gawk, field separators and}{136}{\command {gawk}, field separators and}
+\entry{gawk, IGNORECASE variable in}{136}{\command {gawk}, \code {IGNORECASE} 
variable in}
+\entry{IGNORECASE variable}{136}{\code {IGNORECASE} variable}
+\entry{differences in awk and gawk, IGNORECASE variable}{136}{differences in 
\command {awk} and \command {gawk}, \code {IGNORECASE} variable}
+\entry{case sensitivity, and string comparisons}{136}{case sensitivity, and 
string comparisons}
+\entry{case sensitivity, and regexps}{136}{case sensitivity, and regexps}
+\entry{regular expressions, case sensitivity}{136}{regular expressions, case 
sensitivity}
+\entry{gawk, LINT variable in}{136}{\command {gawk}, \code {LINT} variable in}
+\entry{LINT variable}{136}{\code {LINT} variable}
+\entry{differences in awk and gawk, LINT variable}{136}{differences in 
\command {awk} and \command {gawk}, \code {LINT} variable}
+\entry{lint checking}{136}{lint checking}
+\entry{OFMT variable}{136}{\code {OFMT} variable}
+\entry{numbers, converting, to strings}{136}{numbers, converting, to strings}
+\entry{strings, converting, numbers to}{136}{strings, converting, numbers to}
+\entry{sprintf() function, OFMT variable and}{137}{\code {sprintf()} function, 
\code {OFMT} variable and}
+\entry{print statement, OFMT variable and}{137}{\code {print} statement, \code 
{OFMT} variable and}
+\entry{OFS variable}{137}{\code {OFS} variable}
+\entry{separators, field}{137}{separators, field}
+\entry{field separators}{137}{field separators}
+\entry{ORS variable}{137}{\code {ORS} variable}
+\entry{PREC variable}{137}{\code {PREC} variable}
+\entry{ROUNDMODE variable}{137}{\code {ROUNDMODE} variable}
+\entry{RS variable}{137}{\code {RS} variable}
+\entry{separators, for records}{137}{separators, for records}
+\entry{record separators}{137}{record separators}
+\entry{SUBSEP variable}{137}{\code {SUBSEP} variable}
+\entry{separators, subscript}{137}{separators, subscript}
+\entry{subscript separators}{137}{subscript separators}
+\entry{gawk, TEXTDOMAIN variable in}{137}{\command {gawk}, \code {TEXTDOMAIN} 
variable in}
+\entry{TEXTDOMAIN variable}{137}{\code {TEXTDOMAIN} variable}
+\entry{differences in awk and gawk, TEXTDOMAIN variable}{137}{differences in 
\command {awk} and \command {gawk}, \code {TEXTDOMAIN} variable}
+\entry{internationalization, localization}{137}{internationalization, 
localization}
+\entry{built-in variables, conveying information}{137}{built-in variables, 
conveying information}
+\entry{variables, built-in, conveying information}{137}{variables, built-in, 
conveying information}
+\entry{ARGC/ARGV variables}{137}{\code {ARGC}/\code {ARGV} variables}
+\entry{arguments, command-line}{137}{arguments, command-line}
+\entry{command line, arguments}{137}{command line, arguments}
+\entry{programming conventions, ARGC/ARGV variables}{138}{programming 
conventions, \code {ARGC}/\code {ARGV} variables}
+\entry{dark corner, value of ARGV[0]}{138}{dark corner, value of \code 
{ARGV[0]}}
+\entry{ARGIND variable}{138}{\code {ARGIND} variable}
+\entry{differences in awk and gawk, ARGIND variable}{138}{differences in 
\command {awk} and \command {gawk}, \code {ARGIND} variable}
+\entry{files, processing,{} ARGIND variable and}{138}{files, processing\comma 
{} \code {ARGIND} variable and}
+\entry{file names, distinguishing}{138}{file names, distinguishing}
+\entry{ENVIRON array}{138}{\code {ENVIRON} array}
+\entry{environment variables, in ENVIRON array}{138}{environment variables, in 
\code {ENVIRON} array}
+\entry{gawk, ERRNO variable in}{138}{\command {gawk}, \code {ERRNO} variable 
in}
+\entry{ERRNO variable}{138}{\code {ERRNO} variable}
+\entry{differences in awk and gawk, ERRNO variable}{138}{differences in 
\command {awk} and \command {gawk}, \code {ERRNO} variable}
+\entry{error handling, ERRNO variable and}{138}{error handling, \code {ERRNO} 
variable and}
+\entry{FILENAME variable}{139}{\code {FILENAME} variable}
+\entry{dark corner, FILENAME variable}{139}{dark corner, \code {FILENAME} 
variable}
+\entry{FNR variable}{139}{\code {FNR} variable}
+\entry{NF variable}{139}{\code {NF} variable}
+\entry{FUNCTAB array}{139}{\code {FUNCTAB} array}
+\entry{gawk, FUNCTAB array in}{139}{\command {gawk}, \code {FUNCTAB} array in}
+\entry{differences in awk and gawk, FUNCTAB variable}{139}{differences in 
\command {awk} and \command {gawk}, \code {FUNCTAB} variable}
+\entry{NR variable}{139}{\code {NR} variable}
+\entry{gawk, PROCINFO array in}{139}{\command {gawk}, \code {PROCINFO} array 
in}
+\entry{PROCINFO array}{139}{\code {PROCINFO} array}
+\entry{differences in awk and gawk, PROCINFO array}{139}{differences in 
\command {awk} and \command {gawk}, \code {PROCINFO} array}
+\entry{effective group ID of gawk user}{140}{effective group ID of \command 
{gawk} user}
+\entry{effective user ID of gawk user}{140}{effective user ID of \command 
{gawk} user}
+\entry{program identifiers}{140}{program identifiers}
+\entry{group ID of gawk user}{140}{group ID of \command {gawk} user}
+\entry{process group idIDof gawk process}{140}{process group idIDof \command 
{gawk} process}
+\entry{process ID of gawk process}{140}{process ID of \command {gawk} process}
+\entry{parent process ID of gawk process}{140}{parent process ID of \command 
{gawk} process}
+\entry{version of gawk}{141}{version of \command {gawk}}
+\entry{gawk version}{141}{\command {gawk} version}
+\entry{version of GNU MPFR library}{141}{version of GNU MPFR library}
+\entry{version of GNU MP library}{141}{version of GNU MP library}
+\entry{maximum precision supported by MPFR library}{141}{maximum precision 
supported by MPFR library}
+\entry{minimum precision supported by MPFR library}{141}{minimum precision 
supported by MPFR library}
+\entry{version of gawk extension API}{141}{version of \command {gawk} 
extension API}
+\entry{extension API, version number}{141}{extension API, version number}
+\entry{supplementary groups of gawk process}{141}{supplementary groups of 
\command {gawk} process}
+\entry{gawk, PROCINFO array in}{141}{\command {gawk}, \code {PROCINFO} array 
in}
+\entry{PROCINFO array, uses}{141}{\code {PROCINFO} array, uses}
+\entry{RLENGTH variable}{141}{\code {RLENGTH} variable}
+\entry{RSTART variable}{141}{\code {RSTART} variable}
+\entry{gawk, RT variable in}{142}{\command {gawk}, \code {RT} variable in}
+\entry{RT variable}{142}{\code {RT} variable}
+\entry{differences in awk and gawk, RT variable}{142}{differences in \command 
{awk} and \command {gawk}, \code {RT} variable}
+\entry{gawk, SYMTAB array in}{142}{\command {gawk}, \code {SYMTAB} array in}
+\entry{SYMTAB array}{142}{\code {SYMTAB} array}
+\entry{differences in awk and gawk, SYMTAB variable}{142}{differences in 
\command {awk} and \command {gawk}, \code {SYMTAB} variable}
+\entry{sidebar, Changing NR and FNR}{143}{sidebar, Changing \code {NR} and 
\code {FNR}}
+\entry{NR variable, changing}{143}{\code {NR} variable, changing}
+\entry{FNR variable, changing}{143}{\code {FNR} variable, changing}
+\entry{dark corner, FNR/NR variables}{143}{dark corner, \code {FNR}/\code {NR} 
variables}
+\entry{ARGC/ARGV variables, how to use}{143}{\code {ARGC}/\code {ARGV} 
variables, how to use}
+\entry{arguments, command-line}{143}{arguments, command-line}
+\entry{command line, arguments}{143}{command line, arguments}
+\entry{differences in awk and gawk, ARGC/ARGV variables}{144}{differences in 
\command {awk} and \command {gawk}, \code {ARGC}/\code {ARGV} variables}
+\entry{arrays}{145}{arrays}
+\entry{variables, names of}{145}{variables, names of}
+\entry{functions, names of}{145}{functions, names of}
+\entry{arrays, names of, and names of functions/variables}{145}{arrays, names 
of, and names of functions/variables}
+\entry{names, arrays/variables}{145}{names, arrays/variables}
+\entry{namespace issues}{145}{namespace issues}
+\entry{Wall, Larry}{145}{Wall, Larry}
+\entry{arrays, indexing}{146}{arrays, indexing}
+\entry{indexing arrays}{146}{indexing arrays}
+\entry{associative arrays}{146}{associative arrays}
+\entry{arrays, associative}{146}{arrays, associative}
+\entry{sparse arrays}{146}{sparse arrays}
+\entry{arrays, sparse}{146}{arrays, sparse}
+\entry{gawk, IGNORECASE variable in}{146}{\command {gawk}, \code {IGNORECASE} 
variable in}
+\entry{case sensitivity, array indices and}{146}{case sensitivity, array 
indices and}
+\entry{arrays, and IGNORECASE variable}{146}{arrays, and \code {IGNORECASE} 
variable}
+\entry{IGNORECASE variable, and array indices}{146}{\code {IGNORECASE} 
variable, and array indices}
+\entry{arrays, referencing elements}{146}{arrays, referencing elements}
+\entry{array members}{146}{array members}
+\entry{elements of arrays}{146}{elements of arrays}
+\entry{arrays, unassigned elements}{147}{arrays, unassigned elements}
+\entry{unassigned array elements}{147}{unassigned array elements}
+\entry{empty array elements}{147}{empty array elements}
+\entry{non-existent array elements}{147}{non-existent array elements}
+\entry{arrays, elements that don't exist}{147}{arrays, elements that don't 
exist}
+\entry{in operator, testing if array element exists}{147}{\code {in} operator, 
testing if array element exists}
+\entry{side effects, array indexing}{147}{side effects, array indexing}
+\entry{arrays, elements, assigning values}{147}{arrays, elements, assigning 
values}
+\entry{elements in arrays, assigning values}{147}{elements in arrays, 
assigning values}
+\entry{arrays, an example of using}{147}{arrays, an example of using}
+\entry{elements in arrays, scanning}{148}{elements in arrays, scanning}
+\entry{scanning arrays}{148}{scanning arrays}
+\entry{arrays, scanning}{148}{arrays, scanning}
+\entry{loops, for, array scanning}{148}{loops, \code {for}, array scanning}
+\entry{in operator, use in loops}{148}{\code {in} operator, use in loops}
+\entry{arrays, for statement and}{148}{arrays, \code {for} statement and}
+\entry{for statement, looping over arrays}{148}{\code {for} statement, looping 
over arrays}
+\entry{arrays, elements, order of access by in operator}{149}{arrays, 
elements, order of access by \code {in} operator}
+\entry{elements in arrays, order of access by in operator}{149}{elements in 
arrays, order of access by \code {in} operator}
+\entry{in operator, order of array access}{149}{\code {in} operator, order of 
array access}
+\entry{array scanning order, controlling}{149}{array scanning order, 
controlling}
+\entry{controlling array scanning order}{149}{controlling array scanning order}
+\entry{PROCINFO, values of sorted_in}{150}{\code {PROCINFO}, values of \code 
{sorted_in}}
+\entry{delete statement}{151}{\code {delete} statement}
+\entry{deleting elements in arrays}{151}{deleting elements in arrays}
+\entry{arrays, elements, deleting}{151}{arrays, elements, deleting}
+\entry{elements in arrays, deleting}{151}{elements in arrays, deleting}
+\entry{null strings, and deleting array elements}{152}{null strings, and 
deleting array elements}
+\entry{lint checking, array elements}{152}{lint checking, array elements}
+\entry{common extensions, delete to delete entire arrays}{152}{common 
extensions, \code {delete} to delete entire arrays}
+\entry{extensions, common,{} delete to delete entire arrays}{152}{extensions, 
common\comma {} \code {delete} to delete entire arrays}
+\entry{arrays, deleting entire contents}{152}{arrays, deleting entire contents}
+\entry{deleting entire arrays}{152}{deleting entire arrays}
+\entry{delete array}{152}{\code {delete} \var {array}}
+\entry{differences in awk and gawk, array elements, deleting}{152}{differences 
in \command {awk} and \command {gawk}, array elements, deleting}
+\entry{Brian Kernighan's awk}{152}{Brian Kernighan's \command {awk}}
+\entry{portability, deleting array elements}{152}{portability, deleting array 
elements}
+\entry{Brennan, Michael}{152}{Brennan, Michael}
+\entry{split() function, array elements,{} deleting}{152}{\code {split()} 
function, array elements\comma {} deleting}
+\entry{numbers, as array subscripts}{153}{numbers, as array subscripts}
+\entry{arrays, numeric subscripts}{153}{arrays, numeric subscripts}
+\entry{subscripts in arrays, numbers as}{153}{subscripts in arrays, numbers as}
+\entry{CONVFMT variable, and array subscripts}{153}{\code {CONVFMT} variable, 
and array subscripts}
+\entry{converting integer array subscripts}{153}{converting integer array 
subscripts}
+\entry{integer array indices}{153}{integer array indices}
+\entry{variables, uninitialized,{} as array subscripts}{153}{variables, 
uninitialized\comma {} as array subscripts}
+\entry{uninitialized variables, as array subscripts}{153}{uninitialized 
variables, as array subscripts}
+\entry{subscripts in arrays, uninitialized variables as}{153}{subscripts in 
arrays, uninitialized variables as}
+\entry{arrays, subscripts, uninitialized variables as}{153}{arrays, 
subscripts, uninitialized variables as}
+\entry{null strings, as array subscripts}{154}{null strings, as array 
subscripts}
+\entry{dark corner, array subscripts}{154}{dark corner, array subscripts}
+\entry{lint checking, array subscripts}{154}{lint checking, array subscripts}
+\entry{subscripts in arrays, multidimensional}{154}{subscripts in arrays, 
multidimensional}
+\entry{arrays, multidimensional}{154}{arrays, multidimensional}
+\entry{SUBSEP variable, and multidimensional arrays}{154}{\code {SUBSEP} 
variable, and multidimensional arrays}
+\entry{in operator, index existence in multidimensional arrays}{154}{\code 
{in} operator, index existence in multidimensional arrays}
+\entry{subscripts in arrays, multidimensional, scanning}{155}{subscripts in 
arrays, multidimensional, scanning}
+\entry{arrays, multidimensional, scanning}{155}{arrays, multidimensional, 
scanning}
+\entry{scanning multidimensional arrays}{155}{scanning multidimensional arrays}
+\entry{arrays of arrays}{156}{arrays of arrays}
+\entry{functions, built-in}{159}{functions, built-in}
+\entry{built-in functions}{159}{built-in functions}
+\entry{programming conventions, functions, calling}{159}{programming 
conventions, functions, calling}
+\entry{whitespace, functions,{} calling}{159}{whitespace, functions\comma {} 
calling}
+\entry{troubleshooting, gawk, fatal errors,{} function 
arguments}{159}{troubleshooting, \command {gawk}, fatal errors\comma {} 
function arguments}
+\entry{gawk, function arguments and}{159}{\command {gawk}, function arguments 
and}
+\entry{differences in awk and gawk, function arguments 
(gawk)}{159}{differences in \command {awk} and \command {gawk}, function 
arguments (\command {gawk})}
+\entry{evaluation order, functions}{159}{evaluation order, functions}
+\entry{functions, built-in, evaluation order}{159}{functions, built-in, 
evaluation order}
+\entry{built-in functions, evaluation order}{159}{built-in functions, 
evaluation order}
+\entry{numeric functions}{159}{numeric functions}
+\entry{atan2() function}{160}{\code {atan2()} function}
+\entry{arctangent}{160}{arctangent}
+\entry{cos() function}{160}{\code {cos()} function}
+\entry{cosine}{160}{cosine}
+\entry{exp() function}{160}{\code {exp()} function}
+\entry{exponent}{160}{exponent}
+\entry{int() function}{160}{\code {int()} function}
+\entry{round to nearest integer}{160}{round to nearest integer}
+\entry{log() function}{160}{\code {log()} function}
+\entry{logarithm}{160}{logarithm}
+\entry{rand() function}{160}{\code {rand()} function}
+\entry{random numbers, rand()/srand() functions}{160}{random numbers, \code 
{rand()}/\code {srand()} functions}
+\entry{seeding random number generator}{160}{seeding random number generator}
+\entry{random numbers, seed of}{160}{random numbers, seed of}
+\entry{sin() function}{161}{\code {sin()} function}
+\entry{sine}{161}{sine}
+\entry{sqrt() function}{161}{\code {sqrt()} function}
+\entry{square root}{161}{square root}
+\entry{srand() function}{161}{\code {srand()} function}
+\entry{string-manipulation functions}{161}{string-manipulation functions}
+\entry{asorti() function (gawk)}{161}{\code {asorti()} function (\command 
{gawk})}
+\entry{sort array}{161}{sort array}
+\entry{arrays, elements, retrieving number of}{161}{arrays, elements, 
retrieving number of}
+\entry{asort() function (gawk)}{161}{\code {asort()} function (\command 
{gawk})}
+\entry{sort array indices}{161}{sort array indices}
+\entry{gawk, IGNORECASE variable in}{162}{\command {gawk}, \code {IGNORECASE} 
variable in}
+\entry{gensub() function (gawk)}{162}{\code {gensub()} function (\command 
{gawk})}
+\entry{search and replace in strings}{162}{search and replace in strings}
+\entry{substitute in string}{162}{substitute in string}
+\entry{gsub() function}{163}{\code {gsub()} function}
+\entry{index() function}{163}{\code {index()} function}
+\entry{search in string}{163}{search in string}
+\entry{find substring in string}{163}{find substring in string}
+\entry{length() function}{164}{\code {length()} function}
+\entry{string length}{164}{string length}
+\entry{length of string}{164}{length of string}
+\entry{length of input record}{164}{length of input record}
+\entry{input record, length of}{164}{input record, length of}
+\entry{portability, length() function}{164}{portability, \code {length()} 
function}
+\entry{POSIX awk, functions and, length()}{164}{POSIX \command {awk}, 
functions and, \code {length()}}
+\entry{dark corner, length() function}{164}{dark corner, \code {length()} 
function}
+\entry{common extensions, length() applied to an array}{164}{common 
extensions, \code {length()} applied to an array}
+\entry{extensions, common,{} length() applied to an array}{164}{extensions, 
common\comma {} \code {length()} applied to an array}
+\entry{differences between gawk and awk}{164}{differences between \command 
{gawk} and \command {awk}}
+\entry{number of array elements}{164}{number of array elements}
+\entry{array, number of elements}{164}{array, number of elements}
+\entry{match() function}{164}{\code {match()} function}
+\entry{string, regular expression match}{164}{string, regular expression match}
+\entry{match regexp in string}{164}{match regexp in string}
+\entry{RSTART variable, match() function and}{164}{\code {RSTART} variable, 
\code {match()} function and}
+\entry{RLENGTH variable, match() function and}{164}{\code {RLENGTH} variable, 
\code {match()} function and}
+\entry{match() function, RSTART/RLENGTH variables}{164}{\code {match()} 
function, \code {RSTART}/\code {RLENGTH} variables}
+\entry{differences in awk and gawk, match() function}{165}{differences in 
\command {awk} and \command {gawk}, \code {match()} function}
+\entry{troubleshooting, match() function}{166}{troubleshooting, \code 
{match()} function}
+\entry{patsplit() function (gawk)}{166}{\code {patsplit()} function (\command 
{gawk})}
+\entry{split string into array}{166}{split string into array}
+\entry{troubleshooting, patsplit() function}{166}{troubleshooting, \code 
{patsplit()} function}
+\entry{split() function}{166}{\code {split()} function}
+\entry{strings splitting, example}{166}{strings splitting, example}
+\entry{differences in awk and gawk, split() function}{167}{differences in 
\command {awk} and \command {gawk}, \code {split()} function}
+\entry{dark corner, split() function}{167}{dark corner, \code {split()} 
function}
+\entry{sprintf() function}{167}{\code {sprintf()} function}
+\entry{formatting strings}{167}{formatting strings}
+\entry{strtonum() function (gawk)}{167}{\code {strtonum()} function (\command 
{gawk})}
+\entry{convert string to number}{167}{convert string to number}
+\entry{sub() function}{168}{\code {sub()} function}
+\entry{replace in string}{168}{replace in string}
+\entry{sub() function, arguments of}{169}{\code {sub()} function, arguments of}
+\entry{gsub() function, arguments of}{169}{\code {gsub()} function, arguments 
of}
+\entry{troubleshooting, gsub()/sub() functions}{169}{troubleshooting, \code 
{gsub()}/\code {sub()} functions}
+\entry{substr() function}{169}{\code {substr()} function}
+\entry{substring}{169}{substring}
+\entry{Brian Kernighan's awk}{169}{Brian Kernighan's \command {awk}}
+\entry{troubleshooting, substr() function}{169}{troubleshooting, \code 
{substr()} function}
+\entry{portability, substr() function}{169}{portability, \code {substr()} 
function}
+\entry{case sensitivity, converting case}{169}{case sensitivity, converting 
case}
+\entry{strings, converting letter case}{169}{strings, converting letter case}
+\entry{tolower() function}{170}{\code {tolower()} function}
+\entry{convert string to lower case}{170}{convert string to lower case}
+\entry{toupper() function}{170}{\code {toupper()} function}
+\entry{convert string to upper case}{170}{convert string to upper case}
+\entry{escape processing, gsub()/gensub()/sub() functions}{170}{escape 
processing, \code {gsub()}/\code {gensub()}/\code {sub()} functions}
+\entry{sub() function, escape processing}{170}{\code {sub()} function, escape 
processing}
+\entry{gsub() function, escape processing}{170}{\code {gsub()} function, 
escape processing}
+\entry{gensub() function (gawk), escape processing}{170}{\code {gensub()} 
function (\command {gawk}), escape processing}
+\entry{{\tt \indexbackslash } (backslash), gsub()/gensub()/sub() functions 
and}{170}{\code {{\tt \backslashcurfont }} (backslash), \code {gsub()}/\code 
{gensub()}/\code {sub()} functions and}
+\entry{backslash ({\tt \indexbackslash }), gsub()/gensub()/sub() functions 
and}{170}{backslash (\code {{\tt \backslashcurfont }}), \code {gsub()}/\code 
{gensub()}/\code {sub()} functions and}
+\entry{& (ampersand), gsub()/gensub()/sub() functions and}{170}{\code {&} 
(ampersand), \code {gsub()}/\code {gensub()}/\code {sub()} functions and}
+\entry{ampersand (&), gsub()/gensub()/sub() functions and}{170}{ampersand 
(\code {&}), \code {gsub()}/\code {gensub()}/\code {sub()} functions and}
+\entry{Brian Kernighan's awk}{170}{Brian Kernighan's \command {awk}}
+\entry{POSIX awk, functions and, gsub()/sub()}{171}{POSIX \command {awk}, 
functions and, \code {gsub()}/\code {sub()}}
+\entry{sidebar, Matching the Null String}{173}{sidebar, Matching the Null 
String}
+\entry{matching, null strings}{173}{matching, null strings}
+\entry{null strings, matching}{173}{null strings, matching}
+\entry{* (asterisk), * operator, null strings,{} matching}{173}{\code {*} 
(asterisk), \code {*} operator, null strings\comma {} matching}
+\entry{asterisk (*), * operator, null strings,{} matching}{173}{asterisk 
(\code {*}), \code {*} operator, null strings\comma {} matching}
+\entry{input/output functions}{173}{input/output functions}
+\entry{close() function}{173}{\code {close()} function}
+\entry{files, closing}{173}{files, closing}
+\entry{close file or coprocess}{173}{close file or coprocess}
+\entry{fflush() function}{173}{\code {fflush()} function}
+\entry{flush buffered output}{173}{flush buffered output}
+\entry{buffers, flushing}{173}{buffers, flushing}
+\entry{output, buffering}{173}{output, buffering}
+\entry{extensions, common,{} fflush() function}{174}{extensions, common\comma 
{} \code {fflush()} function}
+\entry{Brian Kernighan's awk}{174}{Brian Kernighan's \command {awk}}
+\entry{troubleshooting, fflush() function}{174}{troubleshooting, \code 
{fflush()} function}
+\entry{system() function}{174}{\code {system()} function}
+\entry{invoke shell command}{174}{invoke shell command}
+\entry{interacting with other programs}{174}{interacting with other programs}
+\entry{troubleshooting, system() function}{174}{troubleshooting, \code 
{system()} function}
+\entry{--sandbox option, disabling system() function}{174}{\option {--sandbox} 
option, disabling \code {system()} function}
+\entry{sidebar, Interactive Versus Noninteractive Buffering}{175}{sidebar, 
Interactive Versus Noninteractive Buffering}
+\entry{buffering, interactive vs. noninteractive}{175}{buffering, interactive 
vs.\: noninteractive}
+\entry{sidebar, Controlling Output Buffering with system()}{175}{sidebar, 
Controlling Output Buffering with \code {system()}}
+\entry{buffers, flushing}{176}{buffers, flushing}
+\entry{buffering, input/output}{176}{buffering, input/output}
+\entry{output, buffering}{176}{output, buffering}
+\entry{time functions}{176}{time functions}
+\entry{timestamps}{176}{timestamps}
+\entry{log files, timestamps in}{176}{log files, timestamps in}
+\entry{files, log,{} timestamps in}{176}{files, log\comma {} timestamps in}
+\entry{gawk, timestamps}{176}{\command {gawk}, timestamps}
+\entry{POSIX awk, timestamps and}{176}{POSIX \command {awk}, timestamps and}
+\entry{date utility, GNU}{176}{\command {date} utility, GNU}
+\entry{time, retrieving}{176}{time, retrieving}
+\entry{mktime() function (gawk)}{177}{\code {mktime()} function (\command 
{gawk})}
+\entry{generate time values}{177}{generate time values}
+\entry{gawk, PROCINFO array in}{177}{\command {gawk}, \code {PROCINFO} array 
in}
+\entry{PROCINFO array}{177}{\code {PROCINFO} array}
+\entry{strftime() function (gawk)}{177}{\code {strftime()} function (\command 
{gawk})}
+\entry{format time string}{177}{format time string}
+\entry{systime() function (gawk)}{177}{\code {systime()} function (\command 
{gawk})}
+\entry{timestamps}{177}{timestamps}
+\entry{current system time}{177}{current system time}
+\entry{converting, dates to timestamps}{177}{converting, dates to timestamps}
+\entry{dates, converting to timestamps}{177}{dates, converting to timestamps}
+\entry{timestamps, converting dates to}{177}{timestamps, converting dates to}
+\entry{format specifiers, strftime() function (gawk)}{178}{format specifiers, 
\code {strftime()} function (\command {gawk})}
+\entry{date utility, POSIX}{180}{\code {date} utility, POSIX}
+\entry{POSIX awk, date utility and}{180}{POSIX \command {awk}, \code {date} 
utility and}
+\entry{bit-manipulation functions}{181}{bit-manipulation functions}
+\entry{bitwise, operations}{181}{bitwise, operations}
+\entry{AND bitwise operation}{181}{AND bitwise operation}
+\entry{OR bitwise operation}{181}{OR bitwise operation}
+\entry{XOR bitwise operation}{181}{XOR bitwise operation}
+\entry{operations, bitwise}{181}{operations, bitwise}
+\entry{bitwise, complement}{181}{bitwise, complement}
+\entry{complement, bitwise}{181}{complement, bitwise}
+\entry{bitwise, shift}{181}{bitwise, shift}
+\entry{left shift, bitwise}{181}{left shift, bitwise}
+\entry{right shift, bitwise}{181}{right shift, bitwise}
+\entry{shift, bitwise}{181}{shift, bitwise}
+\entry{gawk, bitwise operations in}{181}{\command {gawk}, bitwise operations 
in}
+\entry{and() function (gawk)}{181}{\code {and()} function (\command {gawk})}
+\entry{bitwise AND}{181}{bitwise AND}
+\entry{compl() function (gawk)}{181}{\code {compl()} function (\command 
{gawk})}
+\entry{bitwise complement}{181}{bitwise complement}
+\entry{lshift() function (gawk)}{181}{\code {lshift()} function (\command 
{gawk})}
+\entry{left shift}{181}{left shift}
+\entry{or() function (gawk)}{181}{\code {or()} function (\command {gawk})}
+\entry{bitwise OR}{181}{bitwise OR}
+\entry{rshift() function (gawk)}{182}{\code {rshift()} function (\command 
{gawk})}
+\entry{right shift}{182}{right shift}
+\entry{xor() function (gawk)}{182}{\code {xor()} function (\command {gawk})}
+\entry{bitwise XOR}{182}{bitwise XOR}
+\entry{bits2str() user-defined function}{182}{\code {bits2str()} user-defined 
function}
+\entry{testbits.awk program}{182}{\code {testbits.awk} program}
+\entry{converting, strings to numbers}{183}{converting, strings to numbers}
+\entry{strings, converting}{183}{strings, converting}
+\entry{numbers, converting}{183}{numbers, converting}
+\entry{converting, numbers to strings}{183}{converting, numbers to strings}
+\entry{number as string of bits}{183}{number as string of bits}
+\entry{isarray() function (gawk)}{183}{\code {isarray()} function (\command 
{gawk})}
+\entry{scalar or array}{183}{scalar or array}
+\entry{gawk, string-translation functions}{183}{\command {gawk}, 
string-translation functions}
+\entry{functions, string-translation}{183}{functions, string-translation}
+\entry{string-translation functions}{183}{string-translation functions}
+\entry{internationalization}{183}{internationalization}
+\entry{awk programs, internationalizing}{183}{\command {awk} programs, 
internationalizing}
+\entry{bindtextdomain() function (gawk)}{183}{\code {bindtextdomain()} 
function (\command {gawk})}
+\entry{set directory of message catalogs}{183}{set directory of message 
catalogs}
+\entry{dcgettext() function (gawk)}{183}{\code {dcgettext()} function 
(\command {gawk})}
+\entry{translate string}{183}{translate string}
+\entry{dcngettext() function (gawk)}{184}{\code {dcngettext()} function 
(\command {gawk})}
+\entry{user-defined functions}{184}{user-defined functions}
+\entry{functions, user-defined}{184}{functions, user-defined}
+\entry{functions, defining}{184}{functions, defining}
+\entry{names, functions}{184}{names, functions}
+\entry{functions, names of}{184}{functions, names of}
+\entry{namespace issues, functions}{184}{namespace issues, functions}
+\entry{programming conventions, functions, writing}{185}{programming 
conventions, functions, writing}
+\entry{variables, shadowing}{185}{variables, shadowing}
+\entry{shadowing of variable values}{185}{shadowing of variable values}
+\entry{recursive functions}{185}{recursive functions}
+\entry{functions, recursive}{185}{functions, recursive}
+\entry{common extensions, func keyword}{185}{common extensions, \code {func} 
keyword}
+\entry{extensions, common,{} func keyword}{185}{extensions, common\comma {} 
\code {func} keyword}
+\entry{POSIX awk, function keyword in}{185}{POSIX \command {awk}, \code 
{function} keyword in}
+\entry{portability, functions,{} defining}{185}{portability, functions\comma 
{} defining}
+\entry{function definition example}{185}{function definition example}
+\entry{rev() user-defined function}{186}{\code {rev()} user-defined function}
+\entry{ctime() user-defined function}{186}{\code {ctime()} user-defined 
function}
+\entry{functions, user-defined, calling}{187}{functions, user-defined, calling}
+\entry{local variables, in a function}{187}{local variables, in a function}
+\entry{variables, local to a function}{187}{variables, local to a function}
+\entry{call by value}{189}{call by value}
+\entry{call by reference}{190}{call by reference}
+\entry{arrays, as parameters to functions}{190}{arrays, as parameters to 
functions}
+\entry{functions, arrays as parameters to}{190}{functions, arrays as 
parameters to}
+\entry{undefined functions}{190}{undefined functions}
+\entry{functions, undefined}{190}{functions, undefined}
+\entry{lint checking, undefined functions}{191}{lint checking, undefined 
functions}
+\entry{portability, next statement in user-defined 
functions}{191}{portability, \code {next} statement in user-defined functions}
+\entry{return statement,{} user-defined functions}{191}{\code {return} 
statement\comma {} user-defined functions}
+\entry{programming conventions, function parameters}{191}{programming 
conventions, function parameters}
+\entry{indirect function calls}{193}{indirect function calls}
+\entry{function calls, indirect}{193}{function calls, indirect}
+\entry{function pointers}{193}{function pointers}
+\entry{pointers to functions}{193}{pointers to functions}
+\entry{differences in awk and gawk, indirect function calls}{193}{differences 
in \command {awk} and \command {gawk}, indirect function calls}
+\entry{libraries of awk functions}{201}{libraries of \command {awk} functions}
+\entry{functions, library}{201}{functions, library}
+\entry{functions, user-defined, library of}{201}{functions, user-defined, 
library of}
+\entry{Kernighan, Brian}{201}{Kernighan, Brian}
+\entry{Plauger, P.J.}{201}{Plauger, P.J.\:}
+\entry{Texinfo}{201}{Texinfo}
+\entry{portability, example programs}{201}{portability, example programs}
+\entry{case sensitivity, example programs}{201}{case sensitivity, example 
programs}
+\entry{IGNORECASE variable, in example programs}{201}{\code {IGNORECASE} 
variable, in example programs}
+\entry{names, arrays/variables}{202}{names, arrays/variables}
+\entry{names, functions}{202}{names, functions}
+\entry{namespace issues}{202}{namespace issues}
+\entry{awk programs, documenting}{202}{\command {awk} programs, documenting}
+\entry{documentation, of awk programs}{202}{documentation, of \command {awk} 
programs}
+\entry{variables, global, for library functions}{202}{variables, global, for 
library functions}
+\entry{private variables}{202}{private variables}
+\entry{variables, private}{202}{variables, private}
+\entry{programming conventions, private variable names}{202}{programming 
conventions, private variable names}
+\entry{_ (underscore), in names of private variables}{202}{\code {_} 
(underscore), in names of private variables}
+\entry{underscore (_), in names of private variables}{202}{underscore (\code 
{_}), in names of private variables}
+\entry{--dump-variables option, using for library functions}{202}{\option 
{--dump-variables} option, using for library functions}
+\entry{arrays, associative, library functions and}{202}{arrays, associative, 
library functions and}
+\entry{libraries of awk functions, associative arrays and}{202}{libraries of 
\command {awk} functions, associative arrays and}
+\entry{functions, library, associative arrays and}{202}{functions, library, 
associative arrays and}
+\entry{Tcl}{202}{Tcl}
+\entry{assertions}{204}{assertions}
+\entry{assert() function (C library)}{204}{\code {assert()} function (C 
library)}
+\entry{libraries of awk functions, assertions}{204}{libraries of \command 
{awk} functions, assertions}
+\entry{functions, library, assertions}{204}{functions, library, assertions}
+\entry{awk programs, lengthy, assertions}{204}{\command {awk} programs, 
lengthy, assertions}
+\entry{assert() user-defined function}{205}{\code {assert()} user-defined 
function}
+\entry{END pattern, assert() user-defined function and}{205}{\code {END} 
pattern, \code {assert()} user-defined function and}
+\entry{BEGIN pattern, assert() user-defined function and}{205}{\code {BEGIN} 
pattern, \code {assert()} user-defined function and}
+\entry{rounding numbers}{206}{rounding numbers}
+\entry{numbers, rounding}{206}{numbers, rounding}
+\entry{libraries of awk functions, rounding numbers}{206}{libraries of 
\command {awk} functions, rounding numbers}
+\entry{functions, library, rounding numbers}{206}{functions, library, rounding 
numbers}
+\entry{print statement, sprintf() function and}{206}{\code {print} statement, 
\code {sprintf()} function and}
+\entry{printf statement, sprintf() function and}{206}{\code {printf} 
statement, \code {sprintf()} function and}
+\entry{sprintf() function, print/printf statements and}{206}{\code {sprintf()} 
function, \code {print}/\code {printf} statements and}
+\entry{round() user-defined function}{206}{\code {round()} user-defined 
function}
+\entry{random numbers, Cliff}{206}{random numbers, Cliff}
+\entry{Cliff random numbers}{206}{Cliff random numbers}
+\entry{numbers, Cliff random}{206}{numbers, Cliff random}
+\entry{functions, library, Cliff random numbers}{206}{functions, library, 
Cliff random numbers}
+\entry{cliff_rand() user-defined function}{206}{\code {cliff_rand()} 
user-defined function}
+\entry{libraries of awk functions, character values as numbers}{207}{libraries 
of \command {awk} functions, character values as numbers}
+\entry{functions, library, character values as numbers}{207}{functions, 
library, character values as numbers}
+\entry{characters, values of as numbers}{207}{characters, values of as numbers}
+\entry{numbers, as values of characters}{207}{numbers, as values of characters}
+\entry{ord() user-defined function}{207}{\code {ord()} user-defined function}
+\entry{chr() user-defined function}{207}{\code {chr()} user-defined function}
+\entry{_ord_init() user-defined function}{207}{\code {_ord_init()} 
user-defined function}
+\entry{character sets (machine character encodings)}{208}{character sets 
(machine character encodings)}
+\entry{ASCII}{208}{ASCII}
+\entry{EBCDIC}{208}{EBCDIC}
+\entry{Unicode}{208}{Unicode}
+\entry{mark parity}{208}{mark parity}
+\entry{libraries of awk functions, merging arrays into strings}{209}{libraries 
of \command {awk} functions, merging arrays into strings}
+\entry{functions, library, merging arrays into strings}{209}{functions, 
library, merging arrays into strings}
+\entry{strings, merging arrays into}{209}{strings, merging arrays into}
+\entry{arrays, merging into strings}{209}{arrays, merging into strings}
+\entry{join() user-defined function}{209}{\code {join()} user-defined function}
+\entry{libraries of awk functions, managing, time}{209}{libraries of \command 
{awk} functions, managing, time}
+\entry{functions, library, managing time}{209}{functions, library, managing 
time}
+\entry{timestamps, formatted}{209}{timestamps, formatted}
+\entry{time, managing}{209}{time, managing}
+\entry{getlocaltime() user-defined function}{209}{\code {getlocaltime()} 
user-defined function}
+\entry{readfile() user-defined function}{211}{\code {readfile()} user-defined 
function}
+\entry{files, managing}{212}{files, managing}
+\entry{libraries of awk functions, managing, data files}{212}{libraries of 
\command {awk} functions, managing, data files}
+\entry{functions, library, managing data files}{212}{functions, library, 
managing data files}
+\entry{files, managing, data file boundaries}{212}{files, managing, data file 
boundaries}
+\entry{files, initialization and cleanup}{212}{files, initialization and 
cleanup}
+\entry{beginfile() user-defined function}{213}{\code {beginfile()} 
user-defined function}
+\entry{endfile() user-defined function}{213}{\code {endfile()} user-defined 
function}
+\entry{sidebar, So Why Does gawk have BEGINFILE and ENDFILE?}{213}{sidebar, So 
Why Does \command {gawk} have \code {BEGINFILE} and \code {ENDFILE}?}
+\entry{files, reading}{214}{files, reading}
+\entry{rewind() user-defined function}{214}{\code {rewind()} user-defined 
function}
+\entry{troubleshooting, readable data files}{214}{troubleshooting, readable 
data files}
+\entry{readable data files,{} checking}{214}{readable data files\comma {} 
checking}
+\entry{files, skipping}{214}{files, skipping}
+\entry{readable.awk program}{214}{\code {readable.awk} program}
+\entry{troubleshooting, getline function}{215}{troubleshooting, \code 
{getline} function}
+\entry{zerofile.awk program}{215}{\code {zerofile.awk} program}
+\entry{assignments as filenames}{216}{assignments as filenames}
+\entry{filenames, assignments as}{216}{filenames, assignments as}
+\entry{noassign.awk program}{216}{\code {noassign.awk} program}
+\entry{libraries of awk functions, command-line options}{216}{libraries of 
\command {awk} functions, command-line options}
+\entry{functions, library, command-line options}{216}{functions, library, 
command-line options}
+\entry{command-line options, processing}{216}{command-line options, processing}
+\entry{options, command-line, processing}{216}{options, command-line, 
processing}
+\entry{functions, library, C library}{216}{functions, library, C library}
+\entry{arguments, processing}{216}{arguments, processing}
+\entry{getopt() function (C library)}{216}{\code {getopt()} function (C 
library)}
+\entry{getopt() user-defined function}{218}{\code {getopt()} user-defined 
function}
+\entry{getopt() user-defined function}{218}{\code {getopt()} user-defined 
function}
+\entry{libraries of awk functions, user database, reading}{221}{libraries of 
\command {awk} functions, user database, reading}
+\entry{functions, library, user database,{} reading}{221}{functions, library, 
user database\comma {} reading}
+\entry{user database,{} reading}{221}{user database\comma {} reading}
+\entry{database, users,{} reading}{221}{database, users\comma {} reading}
+\entry{PROCINFO array}{221}{\code {PROCINFO} array}
+\entry{getpwent() function (C library)}{221}{\code {getpwent()} function (C 
library)}
+\entry{getpwent() user-defined function}{221}{\code {getpwent()} user-defined 
function}
+\entry{users, information about, retrieving}{221}{users, information about, 
retrieving}
+\entry{login information}{221}{login information}
+\entry{account information}{221}{account information}
+\entry{password file}{221}{password file}
+\entry{files, password}{221}{files, password}
+\entry{pwcat program}{221}{\command {pwcat} program}
+\entry{Jacobs, Andrew}{223}{Jacobs, Andrew}
+\entry{Robbins, Arnold}{223}{Robbins, Arnold}
+\entry{Robbins, Miriam}{223}{Robbins, Miriam}
+\entry{_pw_init() user-defined function}{223}{\code {_pw_init()} user-defined 
function}
+\entry{BEGIN pattern, pwcat program}{224}{\code {BEGIN} pattern, \code {pwcat} 
program}
+\entry{getline command, _pw_init() function}{224}{\code {getline} command, 
\code {_pw_init()} function}
+\entry{PROCINFO array, testing the field splitting}{224}{\code {PROCINFO} 
array, testing the field splitting}
+\entry{getpwnam() function (C library)}{224}{\code {getpwnam()} function (C 
library)}
+\entry{getpwnam() user-defined function}{224}{\code {getpwnam()} user-defined 
function}
+\entry{getpwuid() function (C library)}{224}{\code {getpwuid()} function (C 
library)}
+\entry{getpwuid() user-defined function}{224}{\code {getpwuid()} user-defined 
function}
+\entry{getpwent() function (C library)}{225}{\code {getpwent()} function (C 
library)}
+\entry{getpwent() user-defined function}{225}{\code {getpwent()} user-defined 
function}
+\entry{endpwent() function (C library)}{225}{\code {endpwent()} function (C 
library)}
+\entry{endpwent() user-defined function}{225}{\code {endpwent()} user-defined 
function}
+\entry{libraries of awk functions, group database, reading}{225}{libraries of 
\command {awk} functions, group database, reading}
+\entry{functions, library, group database,{} reading}{225}{functions, library, 
group database\comma {} reading}
+\entry{group database, reading}{225}{group database, reading}
+\entry{database, group, reading}{225}{database, group, reading}
+\entry{PROCINFO array, and group membership}{225}{\code {PROCINFO} array, and 
group membership}
+\entry{getgrent() function (C library)}{225}{\code {getgrent()} function (C 
library)}
+\entry{getgrent() user-defined function}{225}{\code {getgrent()} user-defined 
function}
+\entry{groups,{} information about}{225}{groups\comma {} information about}
+\entry{account information}{225}{account information}
+\entry{group file}{225}{group file}
+\entry{files, group}{225}{files, group}
+\entry{grcat program}{225}{\command {grcat} program}
+\entry{getline command, _gr_init() user-defined function}{227}{\code {getline} 
command, \code {_gr_init()} user-defined function}
+\entry{_gr_init() user-defined function}{227}{\code {_gr_init()} user-defined 
function}
+\entry{getgrnam() function (C library)}{228}{\code {getgrnam()} function (C 
library)}
+\entry{getgrnam() user-defined function}{228}{\code {getgrnam()} user-defined 
function}
+\entry{getgrgid() function (C library)}{229}{\code {getgrgid()} function (C 
library)}
+\entry{getgrgid() user-defined function}{229}{\code {getgrgid()} user-defined 
function}
+\entry{getgruser() function (C library)}{229}{\code {getgruser()} function (C 
library)}
+\entry{getgruser() function, user-defined}{229}{\code {getgruser()} function, 
user-defined}
+\entry{getgrent() function (C library)}{229}{\code {getgrent()} function (C 
library)}
+\entry{getgrent() user-defined function}{229}{\code {getgrent()} user-defined 
function}
+\entry{endgrent() function (C library)}{229}{\code {endgrent()} function (C 
library)}
+\entry{endgrent() user-defined function}{229}{\code {endgrent()} user-defined 
function}
+\entry{walk_array() user-defined function}{230}{\code {walk_array()} 
user-defined function}
+\entry{awk programs, examples of}{233}{\command {awk} programs, examples of}
+\entry{POSIX, programs,{} implementing in awk}{233}{POSIX, programs\comma {} 
implementing in \command {awk}}
+\entry{cut utility}{233}{\command {cut} utility}
+\entry{cut utility}{233}{\command {cut} utility}
+\entry{fields, cutting}{233}{fields, cutting}
+\entry{columns, cutting}{233}{columns, cutting}
+\entry{cut.awk program}{234}{\code {cut.awk} program}
+\entry{BEGIN pattern, running awk programs and}{234}{\code {BEGIN} pattern, 
running \command {awk} programs and}
+\entry{FS variable, running awk programs and}{234}{\code {FS} variable, 
running \command {awk} programs and}
+\entry{field separators, spaces as}{235}{field separators, spaces as}
+\entry{regular expressions, searching for}{238}{regular expressions, searching 
for}
+\entry{searching, files for regular expressions}{238}{searching, files for 
regular expressions}
+\entry{files, searching for regular expressions}{238}{files, searching for 
regular expressions}
+\entry{egrep utility}{238}{\command {egrep} utility}
+\entry{egrep.awk program}{239}{\code {egrep.awk} program}
+\entry{! (exclamation point), ! operator}{241}{\code {!} (exclamation point), 
\code {!} operator}
+\entry{exclamation point (!), ! operator}{241}{exclamation point (\code {!}), 
\code {!} operator}
+\entry{END pattern, backslash continuation and}{242}{\code {END} pattern, 
backslash continuation and}
+\entry{{\tt \indexbackslash } (backslash), continuing lines and}{242}{\code 
{{\tt \backslashcurfont }} (backslash), continuing lines and}
+\entry{backslash ({\tt \indexbackslash }), continuing lines 
and}{242}{backslash (\code {{\tt \backslashcurfont }}), continuing lines and}
+\entry{printing, user information}{242}{printing, user information}
+\entry{users, information about, printing}{242}{users, information about, 
printing}
+\entry{id utility}{242}{\command {id} utility}
+\entry{PROCINFO array, and user and group ID numbers}{242}{\code {PROCINFO} 
array, and user and group ID numbers}
+\entry{id.awk program}{242}{\code {id.awk} program}
+\entry{files, splitting}{244}{files, splitting}
+\entry{split utility}{244}{\code {split} utility}
+\entry{split.awk program}{244}{\code {split.awk} program}
+\entry{files, multiple,{} duplicating output into}{246}{files, multiple\comma 
{} duplicating output into}
+\entry{output, duplicating into files}{246}{output, duplicating into files}
+\entry{tee utility}{246}{\code {tee} utility}
+\entry{flag variables}{246}{flag variables}
+\entry{tee.awk program}{246}{\code {tee.awk} program}
+\entry{printing, unduplicated lines of text}{247}{printing, unduplicated lines 
of text}
+\entry{text,{} printing, unduplicated lines of}{247}{text\comma {} printing, 
unduplicated lines of}
+\entry{uniq utility}{247}{\command {uniq} utility}
+\entry{uniq.awk program}{248}{\code {uniq.awk} program}
+\entry{counting}{251}{counting}
+\entry{input files, counting elements in}{251}{input files, counting elements 
in}
+\entry{words, counting}{251}{words, counting}
+\entry{characters, counting}{251}{characters, counting}
+\entry{lines, counting}{251}{lines, counting}
+\entry{wc utility}{251}{\command {wc} utility}
+\entry{wc.awk program}{251}{\code {wc.awk} program}
+\entry{words, duplicate,{} searching for}{253}{words, duplicate\comma {} 
searching for}
+\entry{searching, for words}{253}{searching, for words}
+\entry{documents,{} searching}{253}{documents\comma {} searching}
+\entry{Texinfo}{253}{Texinfo}
+\entry{dupword.awk program}{254}{\code {dupword.awk} program}
+\entry{insomnia, cure for}{254}{insomnia, cure for}
+\entry{Robbins, Arnold}{254}{Robbins, Arnold}
+\entry{Quanstrom, Erik}{254}{Quanstrom, Erik}
+\entry{time, alarm clock example program}{254}{time, alarm clock example 
program}
+\entry{alarm clock example program}{254}{alarm clock example program}
+\entry{alarm.awk program}{254}{\code {alarm.awk} program}
+\entry{sleep utility}{256}{\command {sleep} utility}
+\entry{characters, transliterating}{257}{characters, transliterating}
+\entry{tr utility}{257}{\command {tr} utility}
+\entry{translate.awk program}{257}{\code {translate.awk} program}
+\entry{printing, mailing labels}{259}{printing, mailing labels}
+\entry{mailing labels,{} printing}{259}{mailing labels\comma {} printing}
+\entry{labels.awk program}{259}{\code {labels.awk} program}
+\entry{words, usage counts,{} generating}{261}{words, usage counts\comma {} 
generating}
+\entry{sort utility}{261}{\command {sort} utility}
+\entry{wordfreq.awk program}{261}{\code {wordfreq.awk} program}
+\entry{lines, duplicate,{} removing}{262}{lines, duplicate\comma {} removing}
+\entry{Rakitzis, Byron}{262}{Rakitzis, Byron}
+\entry{histsort.awk program}{262}{\code {histsort.awk} program}
+\entry{Texinfo, extracting programs from source files}{263}{Texinfo, 
extracting programs from source files}
+\entry{files, Texinfo,{} extracting programs from}{263}{files, Texinfo\comma 
{} extracting programs from}
+\entry{Texinfo}{263}{Texinfo}
+\entry{extract.awk program}{264}{\code {extract.awk} program}
+\entry{sed utility}{266}{\command {sed} utility}
+\entry{stream editors}{266}{stream editors}
+\entry{Brennan, Michael}{267}{Brennan, Michael}
+\entry{awksed.awk program}{267}{\command {awksed.awk} program}
+\entry{libraries of awk functions, example program for using}{268}{libraries 
of \command {awk} functions, example program for using}
+\entry{functions, library, example program for using}{268}{functions, library, 
example program for using}
+\entry{igawk.sh program}{269}{\code {igawk.sh} program}
+\entry{search paths}{274}{search paths}
+\entry{search paths, for source files}{274}{search paths, for source files}
+\entry{source files,{} search path for}{274}{source files\comma {} search path 
for}
+\entry{files, source,{} search path for}{274}{files, source\comma {} search 
path for}
+\entry{directories, searching}{274}{directories, searching}
+\entry{anagrams, finding}{274}{anagrams, finding}
+\entry{anagram.awk program}{274}{\code {anagram.awk} program}
+\entry{signature program}{276}{signature program}
+\entry{Brini, Davide}{276}{Brini, Davide}
+\entry{gawk, features, advanced}{279}{\command {gawk}, features, advanced}
+\entry{advanced features, gawk}{279}{advanced features, \command {gawk}}
+\entry{--non-decimal-data option}{279}{\option {--non-decimal-data} option}
+\entry{advanced features, nondecimal input data}{279}{advanced features, 
nondecimal input data}
+\entry{input, data,{} nondecimal}{279}{input, data\comma {} nondecimal}
+\entry{constants, nondecimal}{279}{constants, nondecimal}
+\entry{programming conventions, --non-decimal-data option}{279}{programming 
conventions, \code {--non-decimal-data} option}
+\entry{--non-decimal-data option, strtonum() function and}{279}{\option 
{--non-decimal-data} option, \code {strtonum()} function and}
+\entry{strtonum() function (gawk), --non-decimal-data option and}{279}{\code 
{strtonum()} function (\command {gawk}), \code {--non-decimal-data} option and}
+\entry{arrays, sorting}{284}{arrays, sorting}
+\entry{asort() function (gawk)}{284}{\code {asort()} function (\command 
{gawk})}
+\entry{asort() function (gawk), arrays,{} sorting}{284}{\code {asort()} 
function (\command {gawk}), arrays\comma {} sorting}
+\entry{asorti() function (gawk)}{284}{\code {asorti()} function (\command 
{gawk})}
+\entry{asorti() function (gawk), arrays,{} sorting}{284}{\code {asorti()} 
function (\command {gawk}), arrays\comma {} sorting}
+\entry{sort function, arrays, sorting}{284}{sort function, arrays, sorting}
+\entry{side effects, asort() function}{284}{side effects, \code {asort()} 
function}
+\entry{reference counting, sorting arrays}{285}{reference counting, sorting 
arrays}
+\entry{gawk, IGNORECASE variable in}{285}{\command {gawk}, \code {IGNORECASE} 
variable in}
+\entry{arrays, sorting, and IGNORECASE variable}{285}{arrays, sorting, and 
\code {IGNORECASE} variable}
+\entry{IGNORECASE variable, and array sorting functions}{285}{\code 
{IGNORECASE} variable, and array sorting functions}
+\entry{Brennan, Michael}{285}{Brennan, Michael}
+\entry{programmers, attractiveness of}{285}{programmers, attractiveness of}
+\entry{advanced features, processes,{} communicating with}{286}{advanced 
features, processes\comma {} communicating with}
+\entry{processes, two-way communications with}{286}{processes, two-way 
communications with}
+\entry{coprocesses}{286}{coprocesses}
+\entry{input/output, two-way}{286}{input/output, two-way}
+\entry{| (vertical bar), |& operator (I/O)}{286}{\code {|} (vertical bar), 
\code {|&} operator (I/O)}
+\entry{vertical bar (|), |& operator (I/O)}{286}{vertical bar (\code {|}), 
\code {|&} operator (I/O)}
+\entry{csh utility, |& operator, comparison with}{286}{\command {csh} utility, 
\code {|&} operator, comparison with}
+\entry{deadlocks}{286}{deadlocks}
+\entry{buffering, input/output}{286}{buffering, input/output}
+\entry{getline command, deadlock and}{286}{\code {getline} command, deadlock 
and}
+\entry{close() function, two-way pipes and}{286}{\code {close()} function, 
two-way pipes and}
+\entry{sort utility, coprocesses and}{287}{\command {sort} utility, 
coprocesses and}
+\entry{gawk, PROCINFO array in}{287}{\command {gawk}, \code {PROCINFO} array 
in}
+\entry{PROCINFO array, and communications via ptys}{287}{\code {PROCINFO} 
array, and communications via ptys}
+\entry{advanced features, network programming}{287}{advanced features, network 
programming}
+\entry{networks, programming}{287}{networks, programming}
+\entry{TCP/IP}{287}{TCP/IP}
+\entry{/inet/...{} special files (gawk)}{287}{\code {/inet/\dots {}} special 
files (\command {gawk})}
+\entry{files, /inet/...{} (gawk)}{287}{files, \code {/inet/\dots {}} (\command 
{gawk})}
+\entry{/inet4/...{} special files (gawk)}{287}{\code {/inet4/\dots {}} special 
files (\command {gawk})}
+\entry{files, /inet4/...{} (gawk)}{287}{files, \code {/inet4/\dots {}} 
(\command {gawk})}
+\entry{/inet6/...{} special files (gawk)}{287}{\code {/inet6/\dots {}} special 
files (\command {gawk})}
+\entry{files, /inet6/...{} (gawk)}{287}{files, \code {/inet6/\dots {}} 
(\command {gawk})}
+\entry{EMISTERED}{287}{\code {EMISTERED}}
+\entry{getaddrinfo() function (C library)}{288}{\code {getaddrinfo()} function 
(C library)}
+\entry{gawk, ERRNO variable in}{288}{\command {gawk}, \code {ERRNO} variable 
in}
+\entry{ERRNO variable}{288}{\code {ERRNO} variable}
+\entry{awk programs, profiling}{289}{\command {awk} programs, profiling}
+\entry{profiling awk programs}{289}{profiling \command {awk} programs}
+\entry{awkprof.out file}{289}{\code {awkprof.out} file}
+\entry{files, awkprof.out}{289}{files, \code {awkprof.out}}
+\entry{--profile option}{289}{\option {--profile} option}
+\entry{BEGIN pattern, and profiling}{289}{\code {BEGIN} pattern, and profiling}
+\entry{END pattern, and profiling}{289}{\code {END} pattern, and profiling}
+\entry{patterns, counts, in a profile}{291}{patterns, counts, in a profile}
+\entry{loops, count for header, in a profile}{291}{loops, count for header, in 
a profile}
+\entry{functions, user-defined, counts, in a profile}{291}{functions, 
user-defined, counts, in a profile}
+\entry{user-defined, functions, counts, in a profile}{291}{user-defined, 
functions, counts, in a profile}
+\entry{|a|b (braces)}{291}{\code {{\tt \char 123}{\tt \char 125}} (braces)}
+\entry{braces (|a|b)}{291}{braces (\code {{\tt \char 123}{\tt \char 125}})}
+\entry{() (parentheses), in a profile}{291}{\code {()} (parentheses), in a 
profile}
+\entry{parentheses (), in a profile}{291}{parentheses \code {()}, in a profile}
+\entry{profiling awk programs, dynamically}{291}{profiling \command {awk} 
programs, dynamically}
+\entry{gawk program, dynamic profiling}{291}{\command {gawk} program, dynamic 
profiling}
+\entry{dynamic profiling}{291}{dynamic profiling}
+\entry{kill command,{} dynamic profiling}{292}{\command {kill} command\comma 
{} dynamic profiling}
+\entry{USR1 signal, for dynamic profiling}{292}{\code {USR1} signal, for 
dynamic profiling}
+\entry{SIGUSR1 signal, for dynamic profiling}{292}{\code {SIGUSR1} signal, for 
dynamic profiling}
+\entry{signals, USR1/SIGUSR1, for profiling}{292}{signals, \code {USR1}/\code 
{SIGUSR1}, for profiling}
+\entry{HUP signal, for dynamic profiling}{292}{\code {HUP} signal, for dynamic 
profiling}
+\entry{SIGHUP signal, for dynamic profiling}{292}{\code {SIGHUP} signal, for 
dynamic profiling}
+\entry{signals, HUP/SIGHUP, for profiling}{292}{signals, \code {HUP}/\code 
{SIGHUP}, for profiling}
+\entry{INT signal (MS-Windows)}{292}{\code {INT} signal (MS-Windows)}
+\entry{SIGINT signal (MS-Windows)}{292}{\code {SIGINT} signal (MS-Windows)}
+\entry{signals, INT/SIGINT (MS-Windows)}{292}{signals, \code {INT}/\code 
{SIGINT} (MS-Windows)}
+\entry{QUIT signal (MS-Windows)}{292}{\code {QUIT} signal (MS-Windows)}
+\entry{SIGQUIT signal (MS-Windows)}{292}{\code {SIGQUIT} signal (MS-Windows)}
+\entry{signals, QUIT/SIGQUIT (MS-Windows)}{292}{signals, \code {QUIT}/\code 
{SIGQUIT} (MS-Windows)}
+\entry{internationalization, localization}{293}{internationalization, 
localization}
+\entry{gawk, internationalization and, See internationalization}{293}{\command 
{gawk}, internationalization and, See internationalization}
+\entry{internationalization, localization, gawk 
and}{293}{internationalization, localization, \command {gawk} and}
+\entry{internationalization}{293}{internationalization}
+\entry{localization, See internationalization,{} 
localization}{293}{localization, See internationalization\comma {} localization}
+\entry{localization}{293}{localization}
+\entry{internationalizing a program}{293}{internationalizing a program}
+\entry{gettext library}{293}{\code {gettext} library}
+\entry{portability, gettext library and}{293}{portability, \code {gettext} 
library and}
+\entry{textdomain() function (C library)}{293}{\code {textdomain()} function 
(C library)}
+\entry{.pot files}{293}{\code {.pot} files}
+\entry{files, .pot}{293}{files, \code {.pot}}
+\entry{portable object template files}{293}{portable object template files}
+\entry{files, portable object template}{293}{files, portable object template}
+\entry{.po files}{293}{\code {.po} files}
+\entry{files, .po}{293}{files, \code {.po}}
+\entry{portable object files}{293}{portable object files}
+\entry{files, portable object}{293}{files, portable object}
+\entry{.gmo files}{294}{\code {.gmo} files}
+\entry{files, .gmo}{294}{files, \code {.gmo}}
+\entry{message object files}{294}{message object files}
+\entry{files, message object}{294}{files, message object}
+\entry{bindtextdomain() function (C library)}{294}{\code {bindtextdomain()} 
function (C library)}
+\entry{.gmo files, specifying directory of}{294}{\code {.gmo} files, 
specifying directory of}
+\entry{files, .gmo, specifying directory of}{294}{files, \code {.gmo}, 
specifying directory of}
+\entry{message object files, specifying directory of}{294}{message object 
files, specifying directory of}
+\entry{files, message object, specifying directory of}{294}{files, message 
object, specifying directory of}
+\entry{gettext() function (C library)}{294}{\code {gettext()} function (C 
library)}
+\entry{_ (underscore), C macro}{294}{\code {_} (underscore), C macro}
+\entry{underscore (_), C macro}{294}{underscore (\code {_}), C macro}
+\entry{internationalization, localization, locale 
categories}{294}{internationalization, localization, locale categories}
+\entry{gettext library, locale categories}{294}{\code {gettext} library, 
locale categories}
+\entry{locale categories}{294}{locale categories}
+\entry{LC_MESSAGES locale category}{294}{\code {LC_MESSAGES} locale category}
+\entry{sorting characters in different languages}{294}{sorting characters in 
different languages}
+\entry{LC_COLLATE locale category}{294}{\code {LC_COLLATE} locale category}
+\entry{LC_CTYPE locale category}{294}{\code {LC_CTYPE} locale category}
+\entry{monetary information, localization}{294}{monetary information, 
localization}
+\entry{currency symbols, localization}{294}{currency symbols, localization}
+\entry{LC_MONETARY locale category}{294}{\code {LC_MONETARY} locale category}
+\entry{LC_NUMERIC locale category}{295}{\code {LC_NUMERIC} locale category}
+\entry{LC_RESPONSE locale category}{295}{\code {LC_RESPONSE} locale category}
+\entry{time, localization and}{295}{time, localization and}
+\entry{dates, information related to,{} localization}{295}{dates, information 
related to\comma {} localization}
+\entry{LC_TIME locale category}{295}{\code {LC_TIME} locale category}
+\entry{LC_ALL locale category}{295}{\code {LC_ALL} locale category}
+\entry{awk programs, internationalizing}{295}{\command {awk} programs, 
internationalizing}
+\entry{TEXTDOMAIN variable}{295}{\code {TEXTDOMAIN} variable}
+\entry{internationalization, localization, marked 
strings}{295}{internationalization, localization, marked strings}
+\entry{strings, for localization}{295}{strings, for localization}
+\entry{dcgettext() function (gawk)}{295}{\code {dcgettext()} function 
(\command {gawk})}
+\entry{dcngettext() function (gawk)}{295}{\code {dcngettext()} function 
(\command {gawk})}
+\entry{.gmo files, specifying directory of}{295}{\code {.gmo} files, 
specifying directory of}
+\entry{files, .gmo, specifying directory of}{295}{files, \code {.gmo}, 
specifying directory of}
+\entry{message object files, specifying directory of}{295}{message object 
files, specifying directory of}
+\entry{files, message object, specifying directory of}{295}{files, message 
object, specifying directory of}
+\entry{bindtextdomain() function (gawk)}{295}{\code {bindtextdomain()} 
function (\command {gawk})}
+\entry{BEGIN pattern, TEXTDOMAIN variable and}{296}{\code {BEGIN} pattern, 
\code {TEXTDOMAIN} variable and}
+\entry{TEXTDOMAIN variable, BEGIN pattern and}{296}{\code {TEXTDOMAIN} 
variable, \code {BEGIN} pattern and}
+\entry{_ (underscore), translatable string}{296}{\code {_} (underscore), 
translatable string}
+\entry{underscore (_), translatable string}{296}{underscore (\code {_}), 
translatable string}
+\entry{LC_MESSAGES locale category, bindtextdomain() function 
(gawk)}{296}{\code {LC_MESSAGES} locale category, \code {bindtextdomain()} 
function (\command {gawk})}
+\entry{.po files}{297}{\code {.po} files}
+\entry{files, .po}{297}{files, \code {.po}}
+\entry{portable object files}{297}{portable object files}
+\entry{files, portable object}{297}{files, portable object}
+\entry{strings, extracting}{297}{strings, extracting}
+\entry{marked strings,{} extracting}{297}{marked strings\comma {} extracting}
+\entry{--gen-pot option}{297}{\option {--gen-pot} option}
+\entry{command-line options, string extraction}{297}{command-line options, 
string extraction}
+\entry{string extraction (internationalization)}{297}{string extraction 
(internationalization)}
+\entry{marked string extraction (internationalization)}{297}{marked string 
extraction (internationalization)}
+\entry{extraction, of marked strings (internationalization)}{297}{extraction, 
of marked strings (internationalization)}
+\entry{--gen-pot option}{297}{\option {--gen-pot} option}
+\entry{xgettext utility}{297}{\code {xgettext} utility}
+\entry{printf statement, positional specifiers}{297}{\code {printf} statement, 
positional specifiers}
+\entry{positional specifiers, printf statement}{297}{positional specifiers, 
\code {printf} statement}
+\entry{printf statement, positional specifiers, mixing with regular 
formats}{298}{\code {printf} statement, positional specifiers, mixing with 
regular formats}
+\entry{positional specifiers, printf statement, mixing with regular 
formats}{298}{positional specifiers, \code {printf} statement, mixing with 
regular formats}
+\entry{format specifiers, mixing regular with positional 
specifiers}{298}{format specifiers, mixing regular with positional specifiers}
+\entry{portability, internationalization and}{298}{portability, 
internationalization and}
+\entry{internationalization, localization, portability 
and}{298}{internationalization, localization, portability and}
+\entry{TEXTDOMAIN variable, portability and}{298}{\code {TEXTDOMAIN} variable, 
portability and}
+\entry{bindtextdomain() function (gawk), portability and}{299}{\code 
{bindtextdomain()} function (\command {gawk}), portability and}
+\entry{dcgettext() function (gawk), portability and}{299}{\code {dcgettext()} 
function (\command {gawk}), portability and}
+\entry{dcngettext() function (gawk), portability and}{299}{\code 
{dcngettext()} function (\command {gawk}), portability and}
+\entry{Linux}{300}{Linux}
+\entry{GNU/Linux}{300}{GNU/Linux}
+\entry{.po files, converting to .gmo}{300}{\code {.po} files, converting to 
\code {.gmo}}
+\entry{files, .po, converting to .gmo}{300}{files, \code {.po}, converting to 
\code {.gmo}}
+\entry{.gmo files, converting from .po}{300}{\code {.gmo} files, converting 
from \code {.po}}
+\entry{files, .gmo, converting from .po}{300}{files, \code {.gmo}, converting 
from \code {.po}}
+\entry{portable object files, converting to message object 
files}{300}{portable object files, converting to message object files}
+\entry{files, portable object, converting to message object files}{300}{files, 
portable object, converting to message object files}
+\entry{message object files, converting from portable object 
files}{300}{message object files, converting from portable object files}
+\entry{files, message object, converting from portable object 
files}{300}{files, message object, converting from portable object files}
+\entry{msgfmt utility}{300}{\command {msgfmt} utility}
+\entry{debugging awk programs}{303}{debugging \command {awk} programs}
+\entry{stack frame}{303}{stack frame}
+\entry{breakpoint}{304}{breakpoint}
+\entry{watchpoint}{304}{watchpoint}
+\entry{sample debugging session}{304}{sample debugging session}
+\entry{starting the debugger}{305}{starting the debugger}
+\entry{debugger, how to start}{305}{debugger, how to start}
+\entry{debugger commands, b (break)}{308}{debugger commands, \code {b} (\code 
{break})}
+\entry{debugger commands, break}{308}{debugger commands, \code {break}}
+\entry{break debugger command}{308}{\code {break} debugger command}
+\entry{b debugger command (alias for break)}{308}{\code {b} debugger command 
(alias for \code {break})}
+\entry{set breakpoint}{308}{set breakpoint}
+\entry{breakpoint, setting}{308}{breakpoint, setting}
+\entry{debugger commands, clear}{309}{debugger commands, \code {clear}}
+\entry{clear debugger command}{309}{\code {clear} debugger command}
+\entry{delete breakpoint at location}{309}{delete breakpoint at location}
+\entry{breakpoint at location, how to delete}{309}{breakpoint at location, how 
to delete}
+\entry{debugger commands, condition}{309}{debugger commands, \code {condition}}
+\entry{condition debugger command}{309}{\code {condition} debugger command}
+\entry{breakpoint condition}{309}{breakpoint condition}
+\entry{debugger commands, d (delete)}{309}{debugger commands, \code {d} (\code 
{delete})}
+\entry{debugger commands, delete}{309}{debugger commands, \code {delete}}
+\entry{delete debugger command}{309}{\code {delete} debugger command}
+\entry{d debugger command (alias for delete)}{309}{\code {d} debugger command 
(alias for \code {delete})}
+\entry{delete breakpoint by number}{309}{delete breakpoint by number}
+\entry{breakpoint, delete by number}{309}{breakpoint, delete by number}
+\entry{debugger commands, disable}{309}{debugger commands, \code {disable}}
+\entry{disable debugger command}{309}{\code {disable} debugger command}
+\entry{disable breakpoint}{309}{disable breakpoint}
+\entry{breakpoint, how to disable or enable}{309}{breakpoint, how to disable 
or enable}
+\entry{debugger commands, e (enable)}{309}{debugger commands, \code {e} (\code 
{enable})}
+\entry{debugger commands, enable}{309}{debugger commands, \code {enable}}
+\entry{enable debugger command}{309}{\code {enable} debugger command}
+\entry{e debugger command (alias for enable)}{309}{\code {e} debugger command 
(alias for \code {enable})}
+\entry{enable breakpoint}{309}{enable breakpoint}
+\entry{debugger commands, ignore}{310}{debugger commands, \code {ignore}}
+\entry{ignore debugger command}{310}{\code {ignore} debugger command}
+\entry{ignore breakpoint}{310}{ignore breakpoint}
+\entry{debugger commands, t (tbreak)}{310}{debugger commands, \code {t} (\code 
{tbreak})}
+\entry{debugger commands, tbreak}{310}{debugger commands, \code {tbreak}}
+\entry{tbreak debugger command}{310}{\code {tbreak} debugger command}
+\entry{t debugger command (alias for tbreak)}{310}{\code {t} debugger command 
(alias for \code {tbreak})}
+\entry{temporary breakpoint}{310}{temporary breakpoint}
+\entry{debugger commands, commands}{310}{debugger commands, \code {commands}}
+\entry{commands debugger command}{310}{\code {commands} debugger command}
+\entry{debugger commands, silent}{310}{debugger commands, \code {silent}}
+\entry{silent debugger command}{310}{\code {silent} debugger command}
+\entry{debugger commands, end}{310}{debugger commands, \code {end}}
+\entry{end debugger command}{310}{\code {end} debugger command}
+\entry{breakpoint commands}{310}{breakpoint commands}
+\entry{commands to execute at breakpoint}{310}{commands to execute at 
breakpoint}
+\entry{debugger commands, c (continue)}{310}{debugger commands, \code {c} 
(\code {continue})}
+\entry{debugger commands, continue}{310}{debugger commands, \code {continue}}
+\entry{continue program, in debugger}{310}{continue program, in debugger}
+\entry{debugger commands, finish}{310}{debugger commands, \code {finish}}
+\entry{finish debugger command}{310}{\code {finish} debugger command}
+\entry{debugger commands, n (next)}{310}{debugger commands, \code {n} (\code 
{next})}
+\entry{debugger commands, next}{310}{debugger commands, \code {next}}
+\entry{next debugger command}{310}{\code {next} debugger command}
+\entry{n debugger command (alias for next)}{310}{\code {n} debugger command 
(alias for \code {next})}
+\entry{single-step execution, in the debugger}{310}{single-step execution, in 
the debugger}
+\entry{debugger commands, ni (nexti)}{310}{debugger commands, \code {ni} 
(\code {nexti})}
+\entry{debugger commands, nexti}{310}{debugger commands, \code {nexti}}
+\entry{nexti debugger command}{310}{\code {nexti} debugger command}
+\entry{ni debugger command (alias for nexti)}{310}{\code {ni} debugger command 
(alias for \code {nexti})}
+\entry{debugger commands, return}{310}{debugger commands, \code {return}}
+\entry{return debugger command}{310}{\code {return} debugger command}
+\entry{debugger commands, r (run)}{311}{debugger commands, \code {r} (\code 
{run})}
+\entry{debugger commands, run}{311}{debugger commands, \code {run}}
+\entry{run debugger command}{311}{\code {run} debugger command}
+\entry{r debugger command (alias for run)}{311}{\code {r} debugger command 
(alias for \code {run})}
+\entry{debugger commands, s (step)}{311}{debugger commands, \code {s} (\code 
{step})}
+\entry{debugger commands, step}{311}{debugger commands, \code {step}}
+\entry{step debugger command}{311}{\code {step} debugger command}
+\entry{s debugger command (alias for step)}{311}{\code {s} debugger command 
(alias for \code {step})}
+\entry{debugger commands, si (stepi)}{311}{debugger commands, \code {si} 
(\code {stepi})}
+\entry{debugger commands, stepi}{311}{debugger commands, \code {stepi}}
+\entry{stepi debugger command}{311}{\code {stepi} debugger command}
+\entry{si debugger command (alias for stepi)}{311}{\code {si} debugger command 
(alias for \code {stepi})}
+\entry{debugger commands, u (until)}{311}{debugger commands, \code {u} (\code 
{until})}
+\entry{debugger commands, until}{311}{debugger commands, \code {until}}
+\entry{until debugger command}{311}{\code {until} debugger command}
+\entry{u debugger command (alias for until)}{311}{\code {u} debugger command 
(alias for \code {until})}
+\entry{debugger commands, display}{311}{debugger commands, \code {display}}
+\entry{display debugger command}{311}{\code {display} debugger command}
+\entry{debugger commands, eval}{311}{debugger commands, \code {eval}}
+\entry{eval debugger command}{311}{\code {eval} debugger command}
+\entry{evaluate expressions, in debugger}{311}{evaluate expressions, in 
debugger}
+\entry{debugger commands, p (print)}{311}{debugger commands, \code {p} (\code 
{print})}
+\entry{debugger commands, print}{311}{debugger commands, \code {print}}
+\entry{print debugger command}{311}{\code {print} debugger command}
+\entry{p debugger command (alias for print)}{311}{\code {p} debugger command 
(alias for \code {print})}
+\entry{print variables, in debugger}{311}{print variables, in debugger}
+\entry{debugger commands, printf}{312}{debugger commands, \code {printf}}
+\entry{printf debugger command}{312}{\code {printf} debugger command}
+\entry{debugger commands, set}{312}{debugger commands, \code {set}}
+\entry{set debugger command}{312}{\code {set} debugger command}
+\entry{assign values to variables, in debugger}{312}{assign values to 
variables, in debugger}
+\entry{debugger commands, w (watch)}{312}{debugger commands, \code {w} (\code 
{watch})}
+\entry{debugger commands, watch}{312}{debugger commands, \code {watch}}
+\entry{watch debugger command}{312}{\code {watch} debugger command}
+\entry{w debugger command (alias for watch)}{312}{\code {w} debugger command 
(alias for \code {watch})}
+\entry{set watchpoint}{312}{set watchpoint}
+\entry{debugger commands, undisplay}{312}{debugger commands, \code {undisplay}}
+\entry{undisplay debugger command}{312}{\code {undisplay} debugger command}
+\entry{stop automatic display, in debugger}{312}{stop automatic display, in 
debugger}
+\entry{debugger commands, unwatch}{312}{debugger commands, \code {unwatch}}
+\entry{unwatch debugger command}{312}{\code {unwatch} debugger command}
+\entry{delete watchpoint}{312}{delete watchpoint}
+\entry{debugger commands, bt (backtrace)}{312}{debugger commands, \code {bt} 
(\code {backtrace})}
+\entry{debugger commands, backtrace}{312}{debugger commands, \code {backtrace}}
+\entry{backtrace debugger command}{312}{\code {backtrace} debugger command}
+\entry{bt debugger command (alias for backtrace)}{312}{\code {bt} debugger 
command (alias for \code {backtrace})}
+\entry{call stack, display in debugger}{312}{call stack, display in debugger}
+\entry{traceback, display in debugger}{312}{traceback, display in debugger}
+\entry{debugger commands, down}{313}{debugger commands, \code {down}}
+\entry{down debugger command}{313}{\code {down} debugger command}
+\entry{debugger commands, f (frame)}{313}{debugger commands, \code {f} (\code 
{frame})}
+\entry{debugger commands, frame}{313}{debugger commands, \code {frame}}
+\entry{frame debugger command}{313}{\code {frame} debugger command}
+\entry{f debugger command (alias for frame)}{313}{\code {f} debugger command 
(alias for \code {frame})}
+\entry{debugger commands, up}{313}{debugger commands, \code {up}}
+\entry{up debugger command}{313}{\code {up} debugger command}
+\entry{debugger commands, i (info)}{313}{debugger commands, \code {i} (\code 
{info})}
+\entry{debugger commands, info}{313}{debugger commands, \code {info}}
+\entry{info debugger command}{313}{\code {info} debugger command}
+\entry{i debugger command (alias for info)}{313}{\code {i} debugger command 
(alias for \code {info})}
+\entry{show function arguments, in debugger}{313}{show function arguments, in 
debugger}
+\entry{show breakpoints}{313}{show breakpoints}
+\entry{automatic displays, in debugger}{313}{automatic displays, in debugger}
+\entry{describe call stack frame, in debugger}{313}{describe call stack frame, 
in debugger}
+\entry{list function definitions, in debugger}{313}{list function definitions, 
in debugger}
+\entry{show local variables, in debugger}{313}{show local variables, in 
debugger}
+\entry{show name of current source file, in debugger}{313}{show name of 
current source file, in debugger}
+\entry{show all source files, in debugger}{313}{show all source files, in 
debugger}
+\entry{list all global variables, in debugger}{313}{list all global variables, 
in debugger}
+\entry{show watchpoints}{313}{show watchpoints}
+\entry{debugger commands, o (option)}{314}{debugger commands, \code {o} (\code 
{option})}
+\entry{debugger commands, option}{314}{debugger commands, \code {option}}
+\entry{option debugger command}{314}{\code {option} debugger command}
+\entry{o debugger command (alias for option)}{314}{\code {o} debugger command 
(alias for \code {option})}
+\entry{display debugger options}{314}{display debugger options}
+\entry{debugger options}{314}{debugger options}
+\entry{debugger history size}{314}{debugger history size}
+\entry{debugger default list amount}{314}{debugger default list amount}
+\entry{redirect gawk output, in debugger}{314}{redirect \command {gawk} 
output, in debugger}
+\entry{debugger prompt}{314}{debugger prompt}
+\entry{debugger history file}{314}{debugger history file}
+\entry{save debugger options}{314}{save debugger options}
+\entry{instruction tracing, in debugger}{314}{instruction tracing, in debugger}
+\entry{debugger, read commands from a file}{314}{debugger, read commands from 
a file}
+\entry{debugger commands, dump}{314}{debugger commands, \code {dump}}
+\entry{dump debugger command}{314}{\code {dump} debugger command}
+\entry{debugger commands, h (help)}{315}{debugger commands, \code {h} (\code 
{help})}
+\entry{debugger commands, help}{315}{debugger commands, \code {help}}
+\entry{help debugger command}{315}{\code {help} debugger command}
+\entry{h debugger command (alias for help)}{315}{\code {h} debugger command 
(alias for \code {help})}
+\entry{debugger commands, l (list)}{315}{debugger commands, \code {l} (\code 
{list})}
+\entry{debugger commands, list}{315}{debugger commands, \code {list}}
+\entry{list debugger command}{315}{\code {list} debugger command}
+\entry{l debugger command (alias for list)}{315}{\code {l} debugger command 
(alias for \code {list})}
+\entry{debugger commands, q (quit)}{316}{debugger commands, \code {q} (\code 
{quit})}
+\entry{debugger commands, quit}{316}{debugger commands, \code {quit}}
+\entry{quit debugger command}{316}{\code {quit} debugger command}
+\entry{q debugger command (alias for quit)}{316}{\code {q} debugger command 
(alias for \code {quit})}
+\entry{exit the debugger}{316}{exit the debugger}
+\entry{debugger commands, trace}{316}{debugger commands, \code {trace}}
+\entry{trace debugger command}{316}{\code {trace} debugger command}
+\entry{command completion, in debugger}{316}{command completion, in debugger}
+\entry{history expansion, in debugger}{316}{history expansion, in debugger}
+\entry{arbitrary precision}{319}{arbitrary precision}
+\entry{multiple precision}{319}{multiple precision}
+\entry{infinite precision}{319}{infinite precision}
+\entry{floating-point, numbers,{} arbitrary precision}{319}{floating-point, 
numbers\comma {} arbitrary precision}
+\entry{Knuth, Donald}{319}{Knuth, Donald}
+\entry{integers}{319}{integers}
+\entry{floating-point, numbers}{319}{floating-point, numbers}
+\entry{numbers, floating-point}{319}{numbers, floating-point}
+\entry{unsigned integers}{319}{unsigned integers}
+\entry{integers, unsigned}{319}{integers, unsigned}
+\entry{double precision floating-point}{319}{double precision floating-point}
+\entry{single precision floating-point}{319}{single precision floating-point}
+\entry{floating-point, numbers}{320}{floating-point, numbers}
+\entry{negative zero}{321}{negative zero}
+\entry{positive zero}{321}{positive zero}
+\entry{zero,{} negative vs. positive}{321}{zero\comma {} negative vs.\: 
positive}
+\entry{IEEE-754 format}{325}{IEEE-754 format}
+\entry{context, floating-point}{326}{context, floating-point}
+\entry{rounding mode, floating-point}{326}{rounding mode, floating-point}
+\entry{MPFR}{328}{MPFR}
+\entry{GMP}{328}{GMP}
+\entry{PREC variable}{329}{\code {PREC} variable}
+\entry{setting working precision}{329}{setting working precision}
+\entry{ROUNDMODE variable}{330}{\code {ROUNDMODE} variable}
+\entry{setting rounding mode}{330}{setting rounding mode}
+\entry{constants, floating-point}{330}{constants, floating-point}
+\entry{changing precision of a number}{331}{changing precision of a number}
+\entry{Laurie, Dirk}{331}{Laurie, Dirk}
+\entry{integers, arbitrary precision}{332}{integers, arbitrary precision}
+\entry{arbitrary precision integers}{332}{arbitrary precision integers}
+\entry{dynamically loaded extensions}{335}{dynamically loaded extensions}
+\entry{plug-in}{335}{plug-in}
+\entry{extension API}{337}{extension API}
+\entry{Robbins, Arnold}{339}{Robbins, Arnold}
+\entry{Ramey, Chet}{339}{Ramey, Chet}
+\entry{allocating memory for extensions}{342}{allocating memory for extensions}
+\entry{extensions, allocating memory}{342}{extensions, allocating memory}
+\entry{register extension}{344}{register extension}
+\entry{extension registration}{344}{extension registration}
+\entry{customized input parser}{345}{customized input parser}
+\entry{customized output wrapper}{349}{customized output wrapper}
+\entry{output wrapper}{349}{output wrapper}
+\entry{customized two-way processor}{350}{customized two-way processor}
+\entry{printing messages from extensions}{351}{printing messages from 
extensions}
+\entry{messages from extensions}{351}{messages from extensions}
+\entry{accessing global variables from extensions}{352}{accessing global 
variables from extensions}
+\entry{array manipulation in extensions}{356}{array manipulation in extensions}
+\entry{API version}{365}{API version}
+\entry{extension API version}{365}{extension API version}
+\entry{API informational variables}{365}{API informational variables}
+\entry{extension API informational variables}{365}{extension API informational 
variables}
+\entry{extension search path}{368}{extension search path}
+\entry{finding extensions}{368}{finding extensions}
+\entry{extension example}{368}{extension example}
+\entry{programming conventions, gawk extensions}{371}{programming conventions, 
\command {gawk} extensions}
+\entry{gawk, interpreter,{} adding code to}{376}{\command {gawk}, 
interpreter\comma {} adding code to}
+\entry{extensions distributed with gawk}{378}{extensions distributed with 
\command {gawk}}
+\entry{chdir() extension function}{378}{\code {chdir()} extension function}
+\entry{stat() extension function}{378}{\code {stat()} extension function}
+\entry{fts() extension function}{379}{\code {fts()} extension function}
+\entry{fnmatch() extension function}{381}{\code {fnmatch()} extension function}
+\entry{fork() extension function}{382}{\code {fork()} extension function}
+\entry{waitpid() extension function}{382}{\code {waitpid()} extension function}
+\entry{wait() extension function}{382}{\code {wait()} extension function}
+\entry{inplace extension}{383}{\code {inplace} extension}
+\entry{ord() extension function}{383}{\code {ord()} extension function}
+\entry{chr() extension function}{383}{\code {chr()} extension function}
+\entry{readdir extension}{384}{\code {readdir} extension}
+\entry{revoutput extension}{384}{\code {revoutput} extension}
+\entry{revtwoway extension}{385}{\code {revtwoway} extension}
+\entry{writea() extension function}{385}{\code {writea()} extension function}
+\entry{reada() extension function}{385}{\code {reada()} extension function}
+\entry{readfile() extension function}{386}{\code {readfile()} extension 
function}
+\entry{testext extension}{386}{\code {testext} extension}
+\entry{gettimeofday() extension function}{386}{\code {gettimeofday()} 
extension function}
+\entry{sleep() extension function}{386}{\code {sleep()} extension function}
+\entry{gawkextlib}{387}{\code {gawkextlib}}
+\entry{extensions, where to find}{387}{extensions, where to find}
+\entry{gawkextlib project}{387}{\code {gawkextlib} project}
+\entry{git utility}{387}{\command {git} utility}
+\entry{Expat XML parser library}{387}{Expat XML parser library}
+\entry{awk, versions of}{391}{\command {awk}, versions of}
+\entry{awk, versions of, changes between V7 and SVR3.1}{391}{\command {awk}, 
versions of, changes between V7 and SVR3.1}
+\entry{awk, versions of, changes between SVR3.1 and SVR4}{392}{\command {awk}, 
versions of, changes between SVR3.1 and SVR4}
+\entry{awk, versions of, changes between SVR4 and POSIX awk}{392}{\command 
{awk}, versions of, changes between SVR4 and POSIX \command {awk}}
+\entry{POSIX awk, changes in awk versions}{392}{POSIX \command {awk}, changes 
in \command {awk} versions}
+\entry{awk, versions of, See Also Brian Kernighan's awk}{393}{\command {awk}, 
versions of, See Also Brian Kernighan's \command {awk}}
+\entry{extensions, Brian Kernighan's awk}{393}{extensions, Brian Kernighan's 
\command {awk}}
+\entry{Brian Kernighan's awk, extensions}{393}{Brian Kernighan's \command 
{awk}, extensions}
+\entry{Kernighan, Brian}{393}{Kernighan, Brian}
+\entry{compatibility mode (gawk), extensions}{393}{compatibility mode 
(\command {gawk}), extensions}
+\entry{extensions, in gawk, not in POSIX awk}{393}{extensions, in \command 
{gawk}, not in POSIX \command {awk}}
+\entry{POSIX, gawk extensions not included in}{393}{POSIX, \command {gawk} 
extensions not included in}
+\entry{next file statement}{398}{\code {next file} statement}
+\entry{extensions, Brian Kernighan's awk}{401}{extensions, Brian Kernighan's 
\command {awk}}
+\entry{extensions, mawk}{401}{extensions, \command {mawk}}
+\entry{Unicode}{402}{Unicode}
+\entry{Berry, Karl}{403}{Berry, Karl}
+\entry{gawk, list of contributors to}{403}{\command {gawk}, list of 
contributors to}
+\entry{Aho, Alfred}{403}{Aho, Alfred}
+\entry{Weinberger, Peter}{403}{Weinberger, Peter}
+\entry{Kernighan, Brian}{403}{Kernighan, Brian}
+\entry{Rubin, Paul}{403}{Rubin, Paul}
+\entry{Fenlason, Jay}{403}{Fenlason, Jay}
+\entry{Close, Diane}{403}{Close, Diane}
+\entry{Stallman, Richard}{403}{Stallman, Richard}
+\entry{Woods, John}{403}{Woods, John}
+\entry{Trueman, David}{403}{Trueman, David}
+\entry{Kwok, Conrad}{404}{Kwok, Conrad}
+\entry{Garfinkle, Scott}{404}{Garfinkle, Scott}
+\entry{Williams, Kent}{404}{Williams, Kent}
+\entry{Rankin, Pat}{404}{Rankin, Pat}
+\entry{Peterson, Hal}{404}{Peterson, Hal}
+\entry{Rommel, Kai Uwe}{404}{Rommel, Kai Uwe}
+\entry{Jaegermann, Michal}{404}{Jaegermann, Michal}
+\entry{Fish, Fred}{404}{Fish, Fred}
+\entry{Deifik, Scott}{404}{Deifik, Scott}
+\entry{Zaretskii, Eli}{404}{Zaretskii, Eli}
+\entry{Grigera, Juan}{404}{Grigera, Juan}
+\entry{Hankerson, Darrel}{404}{Hankerson, Darrel}
+\entry{Zoulas, Christos}{404}{Zoulas, Christos}
+\entry{Kahrs, Jurgen}{404}{Kahrs, J\"urgen}
+\entry{Davies, Stephen}{404}{Davies, Stephen}
+\entry{Woehlke, Matthew}{404}{Woehlke, Matthew}
+\entry{Brown, Martin}{404}{Brown, Martin}
+\entry{Peters, Arno}{404}{Peters, Arno}
+\entry{Broder, Alan J.}{404}{Broder, Alan J.\:}
+\entry{Buening, Andreas}{404}{Buening, Andreas}
+\entry{Hasegawa, Isamu}{404}{Hasegawa, Isamu}
+\entry{Benzinger, Michael}{404}{Benzinger, Michael}
+\entry{McPhee, Patrick}{404}{McPhee, Patrick}
+\entry{Wallin, Anders}{404}{Wallin, Anders}
+\entry{Gordon, Assaf}{404}{Gordon, Assaf}
+\entry{Haque, John}{404}{Haque, John}
+\entry{Yawitz, Efraim}{405}{Yawitz, Efraim}
+\entry{Schorr, Andrew}{405}{Schorr, Andrew}
+\entry{Colombo, Antonio}{405}{Colombo, Antonio}
+\entry{Robbins, Arnold}{405}{Robbins, Arnold}
+\entry{operating systems, See Also GNU/Linux,{} PC operating systems,{} 
Unix}{407}{operating systems, See Also GNU/Linux\comma {} PC operating 
systems\comma {} Unix}
+\entry{gawk, installing}{407}{\command {gawk}, installing}
+\entry{installing gawk}{407}{installing \command {gawk}}
+\entry{source code, gawk}{407}{source code, \command {gawk}}
+\entry{gawk, source code,{} obtaining}{407}{\command {gawk}, source code\comma 
{} obtaining}
+\entry{FSF (Free Software Foundation)}{407}{FSF (Free Software Foundation)}
+\entry{Free Software Foundation (FSF)}{407}{Free Software Foundation (FSF)}
+\entry{gawk, distribution}{408}{\command {gawk}, distribution}
+\entry{artificial intelligence,{} gawk and}{408}{artificial intelligence\comma 
{} \command {gawk} and}
+\entry{Texinfo}{409}{Texinfo}
+\entry{gawk, configuring, options}{411}{\command {gawk}, configuring, options}
+\entry{configuration options,{} gawk}{411}{configuration options\comma {} 
\command {gawk}}
+\entry{--disable-extensions configuration option}{411}{\option 
{--disable-extensions} configuration option}
+\entry{configuration option, --disable-extensions}{411}{configuration option, 
\code {--disable-extensions}}
+\entry{--disable-lint configuration option}{411}{\option {--disable-lint} 
configuration option}
+\entry{configuration option, --disable-lint}{411}{configuration option, \code 
{--disable-lint}}
+\entry{--disable-nls configuration option}{412}{\option {--disable-nls} 
configuration option}
+\entry{configuration option, --disable-nls}{412}{configuration option, \code 
{--disable-nls}}
+\entry{--with-whiny-user-strftime configuration option}{412}{\option 
{--with-whiny-user-strftime} configuration option}
+\entry{configuration option, --with-whiny-user-strftime}{412}{configuration 
option, \code {--with-whiny-user-strftime}}
+\entry{gawk, configuring}{412}{\command {gawk}, configuring}
+\entry{custom.h file}{412}{\code {custom.h} file}
+\entry{PC operating systems,{} gawk on, installing}{413}{PC operating 
systems\comma {} \command {gawk} on, installing}
+\entry{operating systems, PC,{} gawk on, installing}{413}{operating systems, 
PC\comma {} \command {gawk} on, installing}
+\entry{compiling gawk for MS-DOS and MS-Windows}{413}{compiling \command 
{gawk} for MS-DOS and MS-Windows}
+\entry{compiling gawk with EMX for OS/2}{414}{compiling \command {gawk} with 
EMX for OS/2}
+\entry{operating systems, PC, gawk on}{415}{operating systems, PC, \command 
{gawk} on}
+\entry{PC operating systems, gawk on}{415}{PC operating systems, \command 
{gawk} on}
+\entry{search paths}{415}{search paths}
+\entry{search paths, for source files}{415}{search paths, for source files}
+\entry{gawk, OS/2 version of}{415}{\command {gawk}, OS/2 version of}
+\entry{gawk, MS-DOS version of}{415}{\command {gawk}, MS-DOS version of}
+\entry{gawk, MS-Windows version of}{415}{\command {gawk}, MS-Windows version 
of}
+\entry{; (semicolon), AWKPATH variable and}{415}{\code {;} (semicolon), \code 
{AWKPATH} variable and}
+\entry{semicolon (;), AWKPATH variable and}{415}{semicolon (\code {;}), \code 
{AWKPATH} variable and}
+\entry{AWKPATH environment variable}{415}{\env {AWKPATH} environment variable}
+\entry{UNIXROOT variable, on OS/2 systems}{415}{\code {UNIXROOT} variable, on 
OS/2 systems}
+\entry{common extensions, BINMODE variable}{415}{common extensions, \code 
{BINMODE} variable}
+\entry{extensions, common,{} BINMODE variable}{415}{extensions, common\comma 
{} \code {BINMODE} variable}
+\entry{differences in awk and gawk, BINMODE variable}{415}{differences in 
\command {awk} and \command {gawk}, \code {BINMODE} variable}
+\entry{BINMODE variable}{415}{\code {BINMODE} variable}
+\entry{compiling gawk for Cygwin}{416}{compiling \command {gawk} for Cygwin}
+\entry{gawk, VMS version of}{417}{\command {gawk}, VMS version of}
+\entry{installation, VMS}{417}{installation, VMS}
+\entry{compiling gawk for VMS}{417}{compiling \command {gawk} for VMS}
+\entry{exit status, of VMS}{419}{exit status, of VMS}
+\entry{floating-point, VAX/VMS}{419}{floating-point, VAX/VMS}
+\entry{search paths}{419}{search paths}
+\entry{search paths, for source files}{419}{search paths, for source files}
+\entry{archeologists}{420}{archeologists}
+\entry{debugging gawk, bug reports}{420}{debugging \command {gawk}, bug 
reports}
+\entry{troubleshooting, gawk, bug reports}{420}{troubleshooting, \command 
{gawk}, bug reports}
address@hidden bug reporting address}{420}{\code address@hidden bug reporting 
address}
+\entry{email address for bug reports, address@hidden address for bug reports, 
\code address@hidden
+\entry{bug reports, email address, address@hidden reports, email address, 
\code address@hidden
+\entry{Robbins, Arnold}{420}{Robbins, Arnold}
+\entry{comp.lang.awk newsgroup}{420}{\code {comp.lang.awk} newsgroup}
+\entry{Deifik, Scott}{421}{Deifik, Scott}
+\entry{Zaretskii, Eli}{421}{Zaretskii, Eli}
+\entry{Buening, Andreas}{421}{Buening, Andreas}
+\entry{Rankin, Pat}{421}{Rankin, Pat}
+\entry{Malmberg, John}{421}{Malmberg, John}
+\entry{Pitts, Dave}{421}{Pitts, Dave}
+\entry{awk, implementations}{421}{\command {awk}, implementations}
+\entry{Brennan, Michael}{421}{Brennan, Michael}
+\entry{Kernighan, Brian}{421}{Kernighan, Brian}
+\entry{source code, Brian Kernighan's awk}{421}{source code, Brian Kernighan's 
\command {awk}}
+\entry{awk, versions of, See Also Brian Kernighan's awk}{421}{\command {awk}, 
versions of, See Also Brian Kernighan's \command {awk}}
+\entry{Brian Kernighan's awk, source code}{421}{Brian Kernighan's \command 
{awk}, source code}
+\entry{git utility}{422}{\command {git} utility}
+\entry{Brennan, Michael}{422}{Brennan, Michael}
+\entry{mawk utility}{422}{\command {mawk} utility}
+\entry{source code, mawk}{422}{source code, \command {mawk}}
+\entry{Sumner, Andrew}{422}{Sumner, Andrew}
+\entry{awka compiler for awk}{422}{\command {awka} compiler for \command {awk}}
+\entry{source code, awka}{422}{source code, \command {awka}}
+\entry{Beebe, Nelson H.F.}{422}{Beebe, Nelson H.F.\:}
+\entry{pawk (profiling version of Brian Kernighan's awk)}{422}{\command {pawk} 
(profiling version of Brian Kernighan's \command {awk})}
+\entry{source code, pawk}{422}{source code, \command {pawk}}
+\entry{Busybox Awk}{422}{Busybox Awk}
+\entry{source code, Busybox Awk}{422}{source code, Busybox Awk}
+\entry{OpenSolaris}{422}{OpenSolaris}
+\entry{Solaris, POSIX-compliant awk}{422}{Solaris, POSIX-compliant \command 
{awk}}
+\entry{source code, Solaris awk}{422}{source code, Solaris \command {awk}}
+\entry{Illumos}{423}{Illumos}
+\entry{Illumos, POSIX-compliant awk}{423}{Illumos, POSIX-compliant \command 
{awk}}
+\entry{source code, Illumos awk}{423}{source code, Illumos \command {awk}}
+\entry{jawk}{423}{\command {jawk}}
+\entry{Java implementation of awk}{423}{Java implementation of \command {awk}}
+\entry{source code, jawk}{423}{source code, \command {jawk}}
+\entry{libmawk}{423}{libmawk}
+\entry{source code, libmawk}{423}{source code, libmawk}
+\entry{source code, pawk (Python version)}{423}{source code, \command {pawk} 
(Python version)}
+\entry{pawk, awk-like facilities for Python}{423}{\code {pawk}, \command 
{awk}-like facilities for Python}
+\entry{QSE Awk}{423}{QSE Awk}
+\entry{source code, QSE Awk}{423}{source code, QSE Awk}
+\entry{QuikTrim Awk}{423}{QuikTrim Awk}
+\entry{source code, QuikTrim Awk}{423}{source code, QuikTrim Awk}
+\entry{gawk, implementation issues}{425}{\command {gawk}, implementation 
issues}
+\entry{implementation issues, gawk}{425}{implementation issues, \command 
{gawk}}
+\entry{gawk, implementation issues, downward compatibility}{425}{\command 
{gawk}, implementation issues, downward compatibility}
+\entry{gawk, implementation issues, debugging}{425}{\command {gawk}, 
implementation issues, debugging}
+\entry{troubleshooting, gawk}{425}{troubleshooting, \command {gawk}}
+\entry{implementation issues,{} gawk, debugging}{425}{implementation 
issues\comma {} \command {gawk}, debugging}
+\entry{git utility}{425}{\command {git} utility}
+\entry{adding, features to gawk}{426}{adding, features to \command {gawk}}
+\entry{features, adding to gawk}{426}{features, adding to \command {gawk}}
+\entry{gawk, features, adding}{426}{\command {gawk}, features, adding}
+\entry{gawk, coding style in}{426}{\command {gawk}, coding style in}
+\entry{Texinfo}{427}{Texinfo}
+\entry{git utility}{427}{\command {git} utility}
+\entry{portability, gawk}{427}{portability, \command {gawk}}
+\entry{operating systems, porting gawk to}{427}{operating systems, porting 
\command {gawk} to}
+\entry{porting gawk}{427}{porting \command {gawk}}
+\entry{git, use of for gawk source code}{429}{\command {git}, use of for 
\command {gawk} source code}
+\entry{Perl}{430}{Perl}
+\entry{Wall, Larry}{430}{Wall, Larry}
+\entry{Robbins, Arnold}{430}{Robbins, Arnold}
+\entry{programming, concepts}{435}{programming, concepts}
+\entry{programming, concepts}{435}{programming, concepts}
+\entry{processing data}{435}{processing data}
+\entry{compiled programs}{435}{compiled programs}
+\entry{interpreted programs}{435}{interpreted programs}
+\entry{programming, basic steps}{435}{programming, basic steps}
+\entry{algorithms}{436}{algorithms}
+\entry{records}{436}{records}
+\entry{fields}{436}{fields}
+\entry{data-driven languages}{436}{data-driven languages}
+\entry{languages,{} data-driven}{436}{languages\comma {} data-driven}
+\entry{variables}{436}{variables}
+\entry{values, numeric}{436}{values, numeric}
+\entry{values, string}{436}{values, string}
+\entry{scalar values}{436}{scalar values}
+\entry{null strings}{437}{null strings}
+\entry{Kernighan, Brian}{437}{Kernighan, Brian}
+\entry{Ritchie, Dennis}{437}{Ritchie, Dennis}
+\entry{Spencer, Henry}{439}{Spencer, Henry}
+\entry{sed utility}{439}{\command {sed} utility}
+\entry{amazing awk assembler (aaa)}{439}{amazing \command {awk} assembler 
(\command {aaa})}
+\entry{Ada programming language}{439}{Ada programming language}
+\entry{programming languages, Ada}{439}{programming languages, Ada}
+\entry{amazingly workable formatter (awf)}{439}{amazingly workable formatter 
(\command {awf})}
+\entry{awf (amazingly workable formatter) program}{439}{\command {awf} 
(amazingly workable formatter) program}
+\entry{ANSI}{439}{ANSI}
+\entry{ASCII}{440}{ASCII}
+\entry{ISO 8859-1}{440}{ISO 8859-1}
+\entry{ISO Latin-1}{440}{ISO Latin-1}
+\entry{character sets (machine character encodings)}{440}{character sets 
(machine character encodings)}
+\entry{Unicode}{440}{Unicode}
+\entry{Kernighan, Brian}{441}{Kernighan, Brian}
+\entry{Bentley, Jon}{441}{Bentley, Jon}
+\entry{chem utility}{441}{\command {chem} utility}
+\entry{cookie}{441}{cookie}
+\entry{compiled programs}{441}{compiled programs}
+\entry{dark corner}{441}{dark corner}
+\entry{epoch, definition of}{442}{epoch, definition of}
+\entry{FSF (Free Software Foundation)}{443}{FSF (Free Software Foundation)}
+\entry{Free Software Foundation (FSF)}{443}{Free Software Foundation (FSF)}
+\entry{Stallman, Richard}{443}{Stallman, Richard}
+\entry{GPL (General Public License)}{443}{GPL (General Public License)}
+\entry{General Public License (GPL)}{443}{General Public License (GPL)}
+\entry{GNU General Public License}{443}{GNU General Public License}
+\entry{FSF (Free Software Foundation)}{443}{FSF (Free Software Foundation)}
+\entry{Free Software Foundation (FSF)}{443}{Free Software Foundation (FSF)}
+\entry{GNU Project}{443}{GNU Project}
+\entry{interpreted programs}{444}{interpreted programs}
+\entry{ISO}{444}{ISO}
+\entry{Java programming language}{444}{Java programming language}
+\entry{programming languages, Java}{444}{programming languages, Java}
+\entry{LGPL (Lesser General Public License)}{445}{LGPL (Lesser General Public 
License)}
+\entry{Lesser General Public License (LGPL)}{445}{Lesser General Public 
License (LGPL)}
+\entry{GNU Lesser General Public License}{445}{GNU Lesser General Public 
License}
+\entry{P1003.1 POSIX standard}{445}{P1003.1 POSIX standard}
+\entry{Linux}{448}{Linux}
+\entry{GNU/Linux}{448}{GNU/Linux}
+\entry{Unix}{448}{Unix}
+\entry{BSD-based operating systems}{448}{BSD-based operating systems}
+\entry{NetBSD}{448}{NetBSD}
+\entry{FreeBSD}{448}{FreeBSD}
+\entry{OpenBSD}{448}{OpenBSD}
+\entry{FDL (Free Documentation License)}{461}{FDL (Free Documentation License)}
+\entry{Free Documentation License (FDL)}{461}{Free Documentation License (FDL)}
+\entry{GNU Free Documentation License}{461}{GNU Free Documentation License}


Property changes on: trunk/texindex/tests/gawk.cp
___________________________________________________________________
Added: svn:eol-style
   + native

Added: trunk/texindex/tests/gawk.cps
===================================================================
--- trunk/texindex/tests/gawk.cps                               (rev 0)
+++ trunk/texindex/tests/gawk.cps       2014-12-03 00:57:15 UTC (rev 5946)
@@ -0,0 +1,2228 @@
+\initial {!}
+\entry {\code {!} (exclamation point), \code {!} operator}{114, 117, 121, 241}
+\entry {\code {!} (exclamation point), \code {!=} operator}{111, 118}
+\entry {\code {!} (exclamation point), \code {!~} operator}{41, 50, 51, 98, 
111, 113, 118, 120}
+\initial {"}
+\entry {\code {"} (double quote) in shell commands}{14}
+\entry {\code {"} (double quote), in regexp constants}{51}
+\entry {\code {"} (double quote), in shell commands}{17}
+\initial {#}
+\entry {\code {#} (number sign), \code {#!} (executable scripts)}{15}
+\entry {\code {#} (number sign), commenting}{16}
+\initial {$}
+\entry {\code {$} (dollar sign), \code {$} field operator}{57, 117}
+\entry {\code {$} (dollar sign), incrementing fields and arrays}{109}
+\entry {\code {$} (dollar sign), regexp operator}{44}
+\initial {%}
+\entry {\code {%} (percent sign), \code {%} operator}{117}
+\entry {\code {%} (percent sign), \code {%=} operator}{107, 118}
+\initial {&}
+\entry {\code {&} (ampersand), \code {&&} operator}{114, 118}
+\entry {\code {&} (ampersand), \code {gsub()}/\code {gensub()}/\code {sub()} 
functions and}{170}
+\initial {'}
+\entry {\code {'} (single quote)}{13}
+\entry {\code {'} (single quote) in \command {gawk} command lines}{15}
+\entry {\code {'} (single quote), in shell commands}{17}
+\entry {\code {'} (single quote), vs.\: apostrophe}{16}
+\entry {\code {'} (single quote), with double quotes}{17}
+\initial {(}
+\entry {\code {()} (parentheses), in a profile}{291}
+\entry {\code {()} (parentheses), regexp operator}{45}
+\initial {*}
+\entry {\code {*} (asterisk), \code {*} operator, as multiplication 
operator}{117}
+\entry {\code {*} (asterisk), \code {*} operator, as regexp operator}{45}
+\entry {\code {*} (asterisk), \code {*} operator, null strings\comma {} 
matching}{173}
+\entry {\code {*} (asterisk), \code {**} operator}{104, 117}
+\entry {\code {*} (asterisk), \code {**=} operator}{107, 118}
+\entry {\code {*} (asterisk), \code {*=} operator}{107, 118}
+\initial {+}
+\entry {\code {+} (plus sign), \code {+} operator}{117, 118}
+\entry {\code {+} (plus sign), \code {++} operator}{108, 109, 117}
+\entry {\code {+} (plus sign), \code {+=} operator}{107, 118}
+\entry {\code {+} (plus sign), regexp operator}{45}
+\initial {,}
+\entry {\code {,} (comma), in range patterns}{121}
+\initial {-}
+\entry {\code {-} (hyphen), \code {-} operator}{117, 118}
+\entry {\code {-} (hyphen), \code {--} operator}{109, 117}
+\entry {\code {-} (hyphen), \code {-=} operator}{107, 118}
+\entry {\code {-} (hyphen), filenames beginning with}{28}
+\entry {\code {-} (hyphen), in bracket expressions}{47}
+\entry {\option {--assign} option}{28}
+\entry {\option {--bignum} option}{30}
+\entry {\option {--characters-as-bytes} option}{28}
+\entry {\option {--copyright} option}{28}
+\entry {\option {--debug} option}{29}
+\entry {\option {--disable-extensions} configuration option}{411}
+\entry {\option {--disable-lint} configuration option}{411}
+\entry {\option {--disable-nls} configuration option}{412}
+\entry {\option {--dump-variables} option}{29}
+\entry {\option {--dump-variables} option, using for library functions}{202}
+\entry {\option {--exec} option}{29}
+\entry {\option {--field-separator} option}{27}
+\entry {\option {--file} option}{27}
+\entry {\option {--gen-pot} option}{29, 297}
+\entry {\option {--help} option}{30}
+\entry {\option {--include} option}{30}
+\entry {\option {--lint} option}{27, 30}
+\entry {\option {--lint-old} option}{32}
+\entry {\option {--load} option}{30}
+\entry {\option {--non-decimal-data} option}{30, 279}
+\entry {\option {--non-decimal-data} option, \code {strtonum()} function 
and}{279}
+\entry {\option {--optimize} option}{31}
+\entry {\option {--posix} option}{31}
+\entry {\option {--posix} option, \code {--traditional} option and}{31}
+\entry {\option {--pretty-print} option}{31}
+\entry {\option {--profile} option}{31, 289}
+\entry {\option {--re-interval} option}{32}
+\entry {\option {--sandbox} option}{32}
+\entry {\option {--sandbox} option, disabling \code {system()} function}{174}
+\entry {\option {--sandbox} option, input redirection with \code {getline}}{71}
+\entry {\option {--sandbox} option, output redirection with \code {print}, 
\code {printf}}{90}
+\entry {\option {--source} option}{29, 32}
+\entry {\option {--traditional} option}{28}
+\entry {\option {--traditional} option, \code {--posix} option and}{31}
+\entry {\option {--use-lc-numeric} option}{31}
+\entry {\option {--version} option}{32}
+\entry {\option {--with-whiny-user-strftime} configuration option}{412}
+\entry {\option {-b} option}{28}
+\entry {\option {-c} option}{28}
+\entry {\option {-C} option}{28}
+\entry {\option {-d} option}{29}
+\entry {\option {-D} option}{29}
+\entry {\option {-e} option}{29}
+\entry {\option {-E} option}{29}
+\entry {\option {-f} option}{14, 27}
+\entry {\option {-f} option, multiple uses}{32}
+\entry {\option {-F} option}{27}
+\entry {\option {-F} option, \option {-Ft} sets \code {FS} to TAB}{32}
+\entry {\option {-F} option, command line}{63}
+\entry {\option {-g} option}{29}
+\entry {\option {-h} option}{30}
+\entry {\option {-i} option}{30}
+\entry {\option {-l} option}{30}
+\entry {\option {-L} option}{32}
+\entry {\option {-M} option}{30}
+\entry {\option {-n} option}{30}
+\entry {\option {-N} option}{31}
+\entry {\option {-o} option}{31}
+\entry {\option {-O} option}{31}
+\entry {\option {-p} option}{31}
+\entry {\option {-P} option}{31}
+\entry {\option {-r} option}{32}
+\entry {\option {-S} option}{32}
+\entry {\option {-v} option}{28, 100}
+\entry {\option {-V} option}{32}
+\entry {\option {-W} option}{28}
+\initial {.}
+\entry {\code {.} (period), regexp operator}{45}
+\entry {\code {.gmo} files}{294}
+\entry {\code {.gmo} files, converting from \code {.po}}{300}
+\entry {\code {.gmo} files, specifying directory of}{294, 295}
+\entry {\code {.po} files}{293, 297}
+\entry {\code {.po} files, converting to \code {.gmo}}{300}
+\entry {\code {.pot} files}{293}
+\initial {/}
+\entry {\code {/} (forward slash) to enclose regular expressions}{41}
+\entry {\code {/} (forward slash), \code {/} operator}{117}
+\entry {\code {/} (forward slash), \code {/=} operator}{107, 118}
+\entry {\code {/} (forward slash), \code {/=} operator, vs. \code {/=\dots 
{}/} regexp constant}{108}
+\entry {\code {/} (forward slash), patterns and}{120}
+\entry {\code {/=} operator vs. \code {/=\dots {}/} regexp constant}{108}
+\entry {\code {/dev/\dots {}} special files}{93}
+\entry {\code {/dev/fd/\var {N}} special files (\command {gawk})}{93}
+\entry {\code {/inet/\dots {}} special files (\command {gawk})}{287}
+\entry {\code {/inet4/\dots {}} special files (\command {gawk})}{287}
+\entry {\code {/inet6/\dots {}} special files (\command {gawk})}{287}
+\initial {;}
+\entry {\code {;} (semicolon), \code {AWKPATH} variable and}{415}
+\entry {\code {;} (semicolon), separating statements in actions}{24, 125, 126}
+\initial {<}
+\entry {\code {<} (left angle bracket), \code {<} operator}{111, 118}
+\entry {\code {<} (left angle bracket), \code {<} operator (I/O)}{73}
+\entry {\code {<} (left angle bracket), \code {<=} operator}{111, 118}
+\initial {=}
+\entry {\code {=} (equals sign), \code {=} operator}{106}
+\entry {\code {=} (equals sign), \code {==} operator}{111, 118}
+\initial {>}
+\entry {\code {>} (right angle bracket), \code {>} operator}{111, 118}
+\entry {\code {>} (right angle bracket), \code {>} operator (I/O)}{90}
+\entry {\code {>} (right angle bracket), \code {>=} operator}{111, 118}
+\entry {\code {>} (right angle bracket), \code {>>} operator (I/O)}{90, 118}
+\initial {?}
+\entry {\code {?} (question mark), \code {?:} operator}{118}
+\entry {\code {?} (question mark), regexp operator}{46, 49}
+\initial {[}
+\entry {\code {[]} (square brackets), regexp operator}{45}
+\initial {^}
+\entry {\code {^} (caret), \code {^} operator}{117}
+\entry {\code {^} (caret), \code {^=} operator}{107, 118}
+\entry {\code {^} (caret), in bracket expressions}{47}
+\entry {\code {^} (caret), in \code {FS}}{62}
+\entry {\code {^} (caret), regexp operator}{44, 49}
+\initial {_}
+\entry {\code {_} (underscore), C macro}{294}
+\entry {\code {_} (underscore), in names of private variables}{202}
+\entry {\code {_} (underscore), translatable string}{296}
+\entry {\code {_gr_init()} user-defined function}{227}
+\entry {\code {_ord_init()} user-defined function}{207}
+\entry {\code {_pw_init()} user-defined function}{223}
+\initial {\\}
+\entry {\code {{\tt \backslashcurfont }} (backslash)}{16}
+\entry {\code {{\tt \backslashcurfont }} (backslash) in shell commands}{14}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }"} escape sequence}{43}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }'} operator (\command {gawk})}{49}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }/} escape sequence}{43}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }<} operator (\command {gawk})}{48}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }>} operator (\command {gawk})}{48}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }`} operator (\command {gawk})}{49}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }a} escape sequence}{42}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }b} escape sequence}{42}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }B} operator (\command {gawk})}{48}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }f} escape sequence}{42}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }n} escape sequence}{42}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }}\var {nnn} escape sequence}{42}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }r} escape sequence}{42}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }s} operator (\command {gawk})}{48}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }S} operator (\command {gawk})}{48}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }t} escape sequence}{42}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }v} escape sequence}{42}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }w} operator (\command {gawk})}{48}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }W} operator (\command {gawk})}{48}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }x} escape sequence}{42}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }y} operator (\command {gawk})}{48}
+\entry {\code {{\tt \backslashcurfont }} (backslash), as field separator}{63}
+\entry {\code {{\tt \backslashcurfont }} (backslash), continuing lines 
and}{23, 242}
+\entry {\code {{\tt \backslashcurfont }} (backslash), continuing lines and, 
comments and}{24}
+\entry {\code {{\tt \backslashcurfont }} (backslash), continuing lines and, in 
\command {csh}}{23}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {gsub()}/\code 
{gensub()}/\code {sub()} functions and}{170}
+\entry {\code {{\tt \backslashcurfont }} (backslash), in bracket 
expressions}{47}
+\entry {\code {{\tt \backslashcurfont }} (backslash), in escape sequences}{42, 
43}
+\entry {\code {{\tt \backslashcurfont }} (backslash), in escape sequences, 
POSIX and}{44}
+\entry {\code {{\tt \backslashcurfont }} (backslash), in regexp constants}{51}
+\entry {\code {{\tt \backslashcurfont }} (backslash), in shell commands}{17}
+\entry {\code {{\tt \backslashcurfont }} (backslash), regexp operator}{44}
+\initial {|}
+\entry {\code {|} (vertical bar)}{45}
+\entry {\code {|} (vertical bar), \code {|} operator (I/O)}{74, 90, 118}
+\entry {\code {|} (vertical bar), \code {|&} operator (I/O)}{75, 91, 118, 286}
+\entry {\code {|} (vertical bar), \code {|&} operator (I/O), pipes\comma {} 
closing}{96}
+\entry {\code {|} (vertical bar), \code {||} operator}{114, 118}
+\entry {\code {{\tt \char 123}{\tt \char 125}} (braces)}{291}
+\entry {\code {{\tt \char 123}{\tt \char 125}} (braces), actions and}{125}
+\entry {\code {{\tt \char 123}{\tt \char 125}} (braces), statements, 
grouping}{126}
+\initial {~}
+\entry {\code {~} (tilde), \code {~} operator}{41, 50, 51, 98, 111, 113, 118, 
120}
+\initial {A}
+\entry {accessing fields}{56}
+\entry {accessing global variables from extensions}{352}
+\entry {account information}{221, 225}
+\entry {actions}{125}
+\entry {actions, control statements in}{126}
+\entry {actions, default}{20}
+\entry {actions, empty}{20}
+\entry {Ada programming language}{439}
+\entry {adding, features to \command {gawk}}{426}
+\entry {adding, fields}{59}
+\entry {advanced features, fixed-width data}{66}
+\entry {advanced features, \command {gawk}}{279}
+\entry {advanced features, network programming}{287}
+\entry {advanced features, nondecimal input data}{279}
+\entry {advanced features, processes\comma {} communicating with}{286}
+\entry {advanced features, specifying field content}{67}
+\entry {Aho, Alfred}{4, 403}
+\entry {alarm clock example program}{254}
+\entry {\code {alarm.awk} program}{254}
+\entry {algorithms}{436}
+\entry {allocating memory for extensions}{342}
+\entry {Alpha (DEC)}{8}
+\entry {amazing \command {awk} assembler (\command {aaa})}{439}
+\entry {amazingly workable formatter (\command {awf})}{439}
+\entry {ambiguity, syntactic: \code {/=} operator vs. \code {/=\dots {}/} 
regexp constant}{108}
+\entry {ampersand (\code {&}), \code {&&} operator}{114, 118}
+\entry {ampersand (\code {&}), \code {gsub()}/\code {gensub()}/\code {sub()} 
functions and}{170}
+\entry {\code {anagram.awk} program}{274}
+\entry {anagrams, finding}{274}
+\entry {and Boolean-logic operator}{113}
+\entry {\code {and()} function (\command {gawk})}{181}
+\entry {AND bitwise operation}{181}
+\entry {ANSI}{439}
+\entry {API informational variables}{365}
+\entry {API version}{365}
+\entry {arbitrary precision}{319}
+\entry {arbitrary precision integers}{332}
+\entry {archeologists}{420}
+\entry {arctangent}{160}
+\entry {\code {ARGC}/\code {ARGV} variables}{137}
+\entry {\code {ARGC}/\code {ARGV} variables, command-line arguments}{33}
+\entry {\code {ARGC}/\code {ARGV} variables, how to use}{143}
+\entry {\code {ARGC}/\code {ARGV} variables, portability and}{16}
+\entry {\code {ARGIND} variable}{138}
+\entry {\code {ARGIND} variable, command-line arguments}{33}
+\entry {arguments, command-line}{33, 137, 143}
+\entry {arguments, command-line, invoking \command {awk}}{27}
+\entry {arguments, in function calls}{116}
+\entry {arguments, processing}{216}
+\entry {\code {ARGV} array, indexing into}{33}
+\entry {arithmetic operators}{103}
+\entry {array manipulation in extensions}{356}
+\entry {array members}{146}
+\entry {array scanning order, controlling}{149}
+\entry {array, number of elements}{164}
+\entry {arrays}{145}
+\entry {arrays of arrays}{156}
+\entry {arrays, an example of using}{147}
+\entry {arrays, and \code {IGNORECASE} variable}{146}
+\entry {arrays, as parameters to functions}{190}
+\entry {arrays, associative}{146}
+\entry {arrays, associative, library functions and}{202}
+\entry {arrays, deleting entire contents}{152}
+\entry {arrays, elements that don't exist}{147}
+\entry {arrays, elements, assigning values}{147}
+\entry {arrays, elements, deleting}{151}
+\entry {arrays, elements, order of access by \code {in} operator}{149}
+\entry {arrays, elements, retrieving number of}{161}
+\entry {arrays, \code {for} statement and}{148}
+\entry {arrays, indexing}{146}
+\entry {arrays, merging into strings}{209}
+\entry {arrays, multidimensional}{154}
+\entry {arrays, multidimensional, scanning}{155}
+\entry {arrays, names of, and names of functions/variables}{145}
+\entry {arrays, numeric subscripts}{153}
+\entry {arrays, referencing elements}{146}
+\entry {arrays, scanning}{148}
+\entry {arrays, sorting}{284}
+\entry {arrays, sorting, and \code {IGNORECASE} variable}{285}
+\entry {arrays, sparse}{146}
+\entry {arrays, subscripts, uninitialized variables as}{153}
+\entry {arrays, unassigned elements}{147}
+\entry {artificial intelligence\comma {} \command {gawk} and}{408}
+\entry {ASCII}{208, 440}
+\entry {\code {asort()} function (\command {gawk})}{161, 284}
+\entry {\code {asort()} function (\command {gawk}), arrays\comma {} 
sorting}{284}
+\entry {\code {asorti()} function (\command {gawk})}{161, 284}
+\entry {\code {asorti()} function (\command {gawk}), arrays\comma {} 
sorting}{284}
+\entry {\code {assert()} function (C library)}{204}
+\entry {\code {assert()} user-defined function}{205}
+\entry {assertions}{204}
+\entry {assign values to variables, in debugger}{312}
+\entry {assignment operators}{106}
+\entry {assignment operators, evaluation order}{107}
+\entry {assignment operators, lvalues/rvalues}{106}
+\entry {assignments as filenames}{216}
+\entry {associative arrays}{146}
+\entry {asterisk (\code {*}), \code {*} operator, as multiplication 
operator}{117}
+\entry {asterisk (\code {*}), \code {*} operator, as regexp operator}{45}
+\entry {asterisk (\code {*}), \code {*} operator, null strings\comma {} 
matching}{173}
+\entry {asterisk (\code {*}), \code {**} operator}{104, 117}
+\entry {asterisk (\code {*}), \code {**=} operator}{107, 118}
+\entry {asterisk (\code {*}), \code {*=} operator}{107, 118}
+\entry {\code {atan2()} function}{160}
+\entry {automatic displays, in debugger}{313}
+\entry {\command {awf} (amazingly workable formatter) program}{439}
+\entry {\command {awk} debugging, enabling}{29}
+\entry {\command {awk} language, POSIX version}{108}
+\entry {\command {awk} profiling, enabling}{31}
+\entry {\command {awk} programs}{13, 15, 21}
+\entry {\command {awk} programs, complex}{25}
+\entry {\command {awk} programs, documenting}{16, 202}
+\entry {\command {awk} programs, examples of}{233}
+\entry {\command {awk} programs, execution of}{132}
+\entry {\command {awk} programs, internationalizing}{183, 295}
+\entry {\command {awk} programs, lengthy}{14}
+\entry {\command {awk} programs, lengthy, assertions}{204}
+\entry {\command {awk} programs, location of}{27, 29, 30}
+\entry {\command {awk} programs, one-line examples}{20}
+\entry {\command {awk} programs, profiling}{289}
+\entry {\command {awk} programs, running}{13, 14}
+\entry {\command {awk} programs, running, from shell scripts}{13}
+\entry {\command {awk} programs, running, without input files}{14}
+\entry {\command {awk} programs, shell variables in}{124}
+\entry {\command {awk}, function of}{13}
+\entry {\command {awk}, \command {gawk} and}{3, 5}
+\entry {\command {awk}, history of}{4}
+\entry {\command {awk}, implementation issues, pipes}{92}
+\entry {\command {awk}, implementations}{421}
+\entry {\command {awk}, implementations, limits}{76}
+\entry {\command {awk}, invoking}{27}
+\entry {\command {awk}, new vs.\: old}{4}
+\entry {\command {awk}, new vs.\: old, \code {OFMT} variable}{102}
+\entry {\command {awk}, POSIX and}{3}
+\entry {\command {awk}, POSIX and, See Also POSIX \command {awk}}{3}
+\entry {\command {awk}, regexp constants and}{113}
+\entry {\command {awk}, See Also \command {gawk}}{3}
+\entry {\command {awk}, terms describing}{5}
+\entry {\command {awk}, uses for}{3, 13, 24}
+\entry {\command {awk}, versions of}{4, 391}
+\entry {\command {awk}, versions of, changes between SVR3.1 and SVR4}{392}
+\entry {\command {awk}, versions of, changes between SVR4 and POSIX \command 
{awk}}{392}
+\entry {\command {awk}, versions of, changes between V7 and SVR3.1}{391}
+\entry {\command {awk}, versions of, See Also Brian Kernighan's \command 
{awk}}{393, 421}
+\entry {\command {awka} compiler for \command {awk}}{422}
+\entry {\env {AWKLIBPATH} environment variable}{35}
+\entry {\env {AWKPATH} environment variable}{34, 415}
+\entry {\code {awkprof.out} file}{289}
+\entry {\command {awksed.awk} program}{267}
+\entry {\file {awkvars.out} file}{29}
+\initial {B}
+\entry {\code {b} debugger command (alias for \code {break})}{308}
+\entry {backslash (\code {{\tt \backslashcurfont }})}{16}
+\entry {backslash (\code {{\tt \backslashcurfont }}) in shell commands}{14}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }"} escape sequence}{43}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }'} operator (\command {gawk})}{49}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }/} escape sequence}{43}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }<} operator (\command {gawk})}{48}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }>} operator (\command {gawk})}{48}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }`} operator (\command {gawk})}{49}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }a} escape sequence}{42}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }b} escape sequence}{42}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }B} operator (\command {gawk})}{48}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }f} escape sequence}{42}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }n} escape sequence}{42}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }}\var {nnn} escape sequence}{42}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }r} escape sequence}{42}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }s} operator (\command {gawk})}{48}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }S} operator (\command {gawk})}{48}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }t} escape sequence}{42}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }v} escape sequence}{42}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }w} operator (\command {gawk})}{48}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }W} operator (\command {gawk})}{48}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }x} escape sequence}{42}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }y} operator (\command {gawk})}{48}
+\entry {backslash (\code {{\tt \backslashcurfont }}), as field separator}{63}
+\entry {backslash (\code {{\tt \backslashcurfont }}), continuing lines 
and}{23, 242}
+\entry {backslash (\code {{\tt \backslashcurfont }}), continuing lines and, 
comments and}{24}
+\entry {backslash (\code {{\tt \backslashcurfont }}), continuing lines and, in 
\command {csh}}{23}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {gsub()}/\code 
{gensub()}/\code {sub()} functions and}{170}
+\entry {backslash (\code {{\tt \backslashcurfont }}), in bracket 
expressions}{47}
+\entry {backslash (\code {{\tt \backslashcurfont }}), in escape sequences}{42, 
43}
+\entry {backslash (\code {{\tt \backslashcurfont }}), in escape sequences, 
POSIX and}{44}
+\entry {backslash (\code {{\tt \backslashcurfont }}), in regexp constants}{51}
+\entry {backslash (\code {{\tt \backslashcurfont }}), in shell commands}{17}
+\entry {backslash (\code {{\tt \backslashcurfont }}), regexp operator}{44}
+\entry {\code {backtrace} debugger command}{312}
+\entry {Beebe, Nelson H.F.\:}{10, 422}
+\entry {\code {BEGIN} pattern}{61, 122}
+\entry {\code {BEGIN} pattern, and profiling}{289}
+\entry {\code {BEGIN} pattern, \code {assert()} user-defined function and}{205}
+\entry {\code {BEGIN} pattern, Boolean patterns and}{121}
+\entry {\code {BEGIN} pattern, \code {exit} statement and}{134}
+\entry {\code {BEGIN} pattern, \code {getline} and}{76}
+\entry {\code {BEGIN} pattern, headings\comma {} adding}{82}
+\entry {\code {BEGIN} pattern, \code {next}/\code {nextfile} statements 
and}{123, 133}
+\entry {\code {BEGIN} pattern, \code {OFS}/\code {ORS} variables, assigning 
values to}{83}
+\entry {\code {BEGIN} pattern, operators and}{122}
+\entry {\code {BEGIN} pattern, \code {print} statement and}{123}
+\entry {\code {BEGIN} pattern, \code {pwcat} program}{224}
+\entry {\code {BEGIN} pattern, running \command {awk} programs and}{234}
+\entry {\code {BEGIN} pattern, \code {TEXTDOMAIN} variable and}{296}
+\entry {\code {beginfile()} user-defined function}{213}
+\entry {\code {BEGINFILE} pattern}{123}
+\entry {\code {BEGINFILE} pattern, Boolean patterns and}{121}
+\entry {Bentley, Jon}{441}
+\entry {Benzinger, Michael}{404}
+\entry {Berry, Karl}{10, 403}
+\entry {binary input/output}{135}
+\entry {\code {bindtextdomain()} function (C library)}{294}
+\entry {\code {bindtextdomain()} function (\command {gawk})}{183, 295}
+\entry {\code {bindtextdomain()} function (\command {gawk}), portability 
and}{299}
+\entry {\code {BINMODE} variable}{135, 415}
+\entry {bit-manipulation functions}{181}
+\entry {\code {bits2str()} user-defined function}{182}
+\entry {bitwise AND}{181}
+\entry {bitwise complement}{181}
+\entry {bitwise OR}{181}
+\entry {bitwise XOR}{182}
+\entry {bitwise, complement}{181}
+\entry {bitwise, operations}{181}
+\entry {bitwise, shift}{181}
+\entry {body, in actions}{126}
+\entry {body, in loops}{127}
+\entry {Boolean expressions}{113}
+\entry {Boolean expressions, as patterns}{120}
+\entry {Boolean operators, See Boolean expressions}{113}
+\entry {Bourne shell, quoting rules for}{17}
+\entry {braces (\code {{\tt \char 123}{\tt \char 125}})}{291}
+\entry {braces (\code {{\tt \char 123}{\tt \char 125}}), actions and}{125}
+\entry {braces (\code {{\tt \char 123}{\tt \char 125}}), statements, 
grouping}{126}
+\entry {bracket expressions}{45, 47}
+\entry {bracket expressions, character classes}{47}
+\entry {bracket expressions, collating elements}{48}
+\entry {bracket expressions, collating symbols}{48}
+\entry {bracket expressions, complemented}{45}
+\entry {bracket expressions, equivalence classes}{48}
+\entry {bracket expressions, non-ASCII}{48}
+\entry {bracket expressions, range expressions}{47}
+\entry {\code {break} debugger command}{308}
+\entry {\code {break} statement}{130}
+\entry {breakpoint}{304}
+\entry {breakpoint at location, how to delete}{309}
+\entry {breakpoint commands}{310}
+\entry {breakpoint condition}{309}
+\entry {breakpoint, delete by number}{309}
+\entry {breakpoint, how to disable or enable}{309}
+\entry {breakpoint, setting}{308}
+\entry {Brennan, Michael}{2, 152, 267, 285, 421, 422}
+\entry {Brian Kernighan's \command {awk}}{3, 25, 44, 49, 62, 75, 105, 123, 
131, 132, 133, 152, 169, 170, 174}
+\entry {Brian Kernighan's \command {awk}, extensions}{393}
+\entry {Brian Kernighan's \command {awk}, source code}{421}
+\entry {Brini, Davide}{276}
+\entry {Broder, Alan J.\:}{404}
+\entry {Brown, Martin}{404}
+\entry {BSD-based operating systems}{448}
+\entry {\code {bt} debugger command (alias for \code {backtrace})}{312}
+\entry {Buening, Andreas}{10, 404, 421}
+\entry {buffering, input/output}{176, 286}
+\entry {buffering, interactive vs.\: noninteractive}{175}
+\entry {buffers, flushing}{173, 176}
+\entry {buffers, operators for}{49}
+\entry {bug reports, email address, \code address@hidden
+\entry {\code address@hidden bug reporting address}{420}
+\entry {built-in functions}{159}
+\entry {built-in functions, evaluation order}{159}
+\entry {built-in variables}{134}
+\entry {built-in variables, \code {-v} option\comma {} setting with}{28}
+\entry {built-in variables, conveying information}{137}
+\entry {built-in variables, user-modifiable}{135}
+\entry {Busybox Awk}{422}
+\initial {C}
+\entry {call by reference}{190}
+\entry {call by value}{189}
+\entry {call stack, display in debugger}{312}
+\entry {caret (\code {^}), \code {^} operator}{117}
+\entry {caret (\code {^}), \code {^=} operator}{107, 118}
+\entry {caret (\code {^}), in bracket expressions}{47}
+\entry {caret (\code {^}), regexp operator}{44, 49}
+\entry {\code {case} keyword}{129}
+\entry {case sensitivity, and regexps}{136}
+\entry {case sensitivity, and string comparisons}{136}
+\entry {case sensitivity, array indices and}{146}
+\entry {case sensitivity, converting case}{169}
+\entry {case sensitivity, example programs}{201}
+\entry {case sensitivity, \command {gawk}}{50}
+\entry {case sensitivity, regexps and}{49}
+\entry {CGI, \command {awk} scripts for}{29}
+\entry {changing precision of a number}{331}
+\entry {character classes, See bracket expressions}{45}
+\entry {character lists in regular expression}{47}
+\entry {character lists, See bracket expressions}{45}
+\entry {character sets (machine character encodings)}{208, 440}
+\entry {character sets, See Also bracket expressions}{45}
+\entry {characters, counting}{251}
+\entry {characters, transliterating}{257}
+\entry {characters, values of as numbers}{207}
+\entry {Chassell, Robert J.\:}{10}
+\entry {\code {chdir()} extension function}{378}
+\entry {\command {chem} utility}{441}
+\entry {\code {chr()} extension function}{383}
+\entry {\code {chr()} user-defined function}{207}
+\entry {\code {clear} debugger command}{309}
+\entry {Cliff random numbers}{206}
+\entry {\code {cliff_rand()} user-defined function}{206}
+\entry {close file or coprocess}{173}
+\entry {\code {close()} function}{94, 173}
+\entry {\code {close()} function, portability}{95}
+\entry {\code {close()} function, return value}{96}
+\entry {\code {close()} function, two-way pipes and}{286}
+\entry {Close, Diane}{8, 403}
+\entry {Collado, Manuel}{10}
+\entry {collating elements}{48}
+\entry {collating symbols}{48}
+\entry {Colombo, Antonio}{10, 405}
+\entry {columns, aligning}{82}
+\entry {columns, cutting}{233}
+\entry {comma (\code {,}), in range patterns}{121}
+\entry {command completion, in debugger}{316}
+\entry {command line, arguments}{33, 137, 143}
+\entry {command line, directories on}{79}
+\entry {command line, formats}{13}
+\entry {command line, \code {FS} on\comma {} setting}{63}
+\entry {command line, invoking \command {awk} from}{27}
+\entry {command line, option \option {-f}}{14}
+\entry {command line, options}{27}
+\entry {command line, options, end of}{28}
+\entry {command line, variables\comma {} assigning on}{100}
+\entry {command-line options, processing}{216}
+\entry {command-line options, string extraction}{297}
+\entry {\code {commands} debugger command}{310}
+\entry {commands to execute at breakpoint}{310}
+\entry {commenting}{16}
+\entry {commenting, backslash continuation and}{24}
+\entry {common extensions, \code {**} operator}{104}
+\entry {common extensions, \code {**=} operator}{108}
+\entry {common extensions, \code {/dev/stderr} special file}{93}
+\entry {common extensions, \code {/dev/stdin} special file}{93}
+\entry {common extensions, \code {/dev/stdout} special file}{93}
+\entry {common extensions, \code {{\tt \backslashcurfont }x} escape 
sequence}{42}
+\entry {common extensions, \code {BINMODE} variable}{415}
+\entry {common extensions, \code {delete} to delete entire arrays}{152}
+\entry {common extensions, \code {func} keyword}{185}
+\entry {common extensions, \code {length()} applied to an array}{164}
+\entry {common extensions, \code {RS} as a regexp}{55}
+\entry {common extensions, single character fields}{63}
+\entry {\code {comp.lang.awk} newsgroup}{420}
+\entry {comparison expressions}{110}
+\entry {comparison expressions, as patterns}{120}
+\entry {comparison expressions, string vs.\: regexp}{113}
+\entry {compatibility mode (\command {gawk}), extensions}{393}
+\entry {compatibility mode (\command {gawk}), file names}{94}
+\entry {compatibility mode (\command {gawk}), hexadecimal numbers}{98}
+\entry {compatibility mode (\command {gawk}), octal numbers}{98}
+\entry {compatibility mode (\command {gawk}), specifying}{28}
+\entry {compiled programs}{435, 441}
+\entry {compiling \command {gawk} for Cygwin}{416}
+\entry {compiling \command {gawk} for MS-DOS and MS-Windows}{413}
+\entry {compiling \command {gawk} for VMS}{417}
+\entry {compiling \command {gawk} with EMX for OS/2}{414}
+\entry {\code {compl()} function (\command {gawk})}{181}
+\entry {complement, bitwise}{181}
+\entry {compound statements\comma {} control statements and}{126}
+\entry {concatenating}{104}
+\entry {\code {condition} debugger command}{309}
+\entry {conditional expressions}{115}
+\entry {configuration option, \code {--disable-extensions}}{411}
+\entry {configuration option, \code {--disable-lint}}{411}
+\entry {configuration option, \code {--disable-nls}}{412}
+\entry {configuration option, \code {--with-whiny-user-strftime}}{412}
+\entry {configuration options\comma {} \command {gawk}}{411}
+\entry {constant regexps}{42}
+\entry {constants, floating-point}{330}
+\entry {constants, nondecimal}{279}
+\entry {constants, numeric}{97}
+\entry {constants, types of}{97}
+\entry {context, floating-point}{326}
+\entry {continue program, in debugger}{310}
+\entry {\code {continue} statement}{131}
+\entry {control statements}{126}
+\entry {controlling array scanning order}{149}
+\entry {convert string to lower case}{170}
+\entry {convert string to number}{167}
+\entry {convert string to upper case}{170}
+\entry {converting integer array subscripts}{153}
+\entry {converting, dates to timestamps}{177}
+\entry {converting, numbers to strings}{101, 183}
+\entry {converting, strings to numbers}{101, 183}
+\entry {\code {CONVFMT} variable}{101, 135}
+\entry {\code {CONVFMT} variable, and array subscripts}{153}
+\entry {cookie}{441}
+\entry {coprocesses}{91, 286}
+\entry {coprocesses, closing}{94}
+\entry {coprocesses, \code {getline} from}{75}
+\entry {\code {cos()} function}{160}
+\entry {cosine}{160}
+\entry {counting}{251}
+\entry {\command {csh} utility}{23}
+\entry {\command {csh} utility, \code {|&} operator, comparison with}{286}
+\entry {\command {csh} utility, \env {POSIXLY_CORRECT} environment 
variable}{33}
+\entry {\code {ctime()} user-defined function}{186}
+\entry {currency symbols, localization}{294}
+\entry {current system time}{177}
+\entry {\code {custom.h} file}{412}
+\entry {customized input parser}{345}
+\entry {customized output wrapper}{349}
+\entry {customized two-way processor}{350}
+\entry {\command {cut} utility}{233}
+\entry {\code {cut.awk} program}{234}
+\initial {D}
+\entry {\code {d} debugger command (alias for \code {delete})}{309}
+\entry {d.c., See dark corner}{7}
+\entry {dark corner}{7, 441}
+\entry {dark corner, \code {"0"} is actually true}{110}
+\entry {dark corner, \code {/=} operator vs. \code {/=\dots {}/} regexp 
constant}{108}
+\entry {dark corner, \code {^}, in \code {FS}}{62}
+\entry {dark corner, array subscripts}{154}
+\entry {dark corner, \code {break} statement}{131}
+\entry {dark corner, \code {close()} function}{96}
+\entry {dark corner, command-line arguments}{101}
+\entry {dark corner, \code {continue} statement}{132}
+\entry {dark corner, \code {CONVFMT} variable}{102}
+\entry {dark corner, escape sequences}{33}
+\entry {dark corner, escape sequences, for metacharacters}{44}
+\entry {dark corner, \code {exit} statement}{134}
+\entry {dark corner, field separators}{65}
+\entry {dark corner, \code {FILENAME} variable}{76, 139}
+\entry {dark corner, \code {FNR}/\code {NR} variables}{143}
+\entry {dark corner, format-control characters}{85, 86}
+\entry {dark corner, \code {FS} as null string}{63}
+\entry {dark corner, input files}{55}
+\entry {dark corner, invoking \command {awk}}{27}
+\entry {dark corner, \code {length()} function}{164}
+\entry {dark corner, locale's decimal point character}{102}
+\entry {dark corner, multiline records}{69}
+\entry {dark corner, \code {NF} variable, decrementing}{60}
+\entry {dark corner, \code {OFMT} variable}{84}
+\entry {dark corner, regexp constants}{99}
+\entry {dark corner, regexp constants, \code {/=} operator and}{108}
+\entry {dark corner, regexp constants, as arguments to user-defined 
functions}{99}
+\entry {dark corner, \code {split()} function}{167}
+\entry {dark corner, strings, storing}{56}
+\entry {dark corner, value of \code {ARGV[0]}}{138}
+\entry {data, fixed-width}{66}
+\entry {data-driven languages}{436}
+\entry {database, group, reading}{225}
+\entry {database, users\comma {} reading}{221}
+\entry {\command {date} utility, GNU}{176}
+\entry {\code {date} utility, POSIX}{180}
+\entry {dates, converting to timestamps}{177}
+\entry {dates, information related to\comma {} localization}{295}
+\entry {Davies, Stephen}{10, 404}
+\entry {\code {dcgettext()} function (\command {gawk})}{183, 295}
+\entry {\code {dcgettext()} function (\command {gawk}), portability and}{299}
+\entry {\code {dcngettext()} function (\command {gawk})}{184, 295}
+\entry {\code {dcngettext()} function (\command {gawk}), portability and}{299}
+\entry {deadlocks}{286}
+\entry {debugger commands, \code {b} (\code {break})}{308}
+\entry {debugger commands, \code {backtrace}}{312}
+\entry {debugger commands, \code {break}}{308}
+\entry {debugger commands, \code {bt} (\code {backtrace})}{312}
+\entry {debugger commands, \code {c} (\code {continue})}{310}
+\entry {debugger commands, \code {clear}}{309}
+\entry {debugger commands, \code {commands}}{310}
+\entry {debugger commands, \code {condition}}{309}
+\entry {debugger commands, \code {continue}}{310}
+\entry {debugger commands, \code {d} (\code {delete})}{309}
+\entry {debugger commands, \code {delete}}{309}
+\entry {debugger commands, \code {disable}}{309}
+\entry {debugger commands, \code {display}}{311}
+\entry {debugger commands, \code {down}}{313}
+\entry {debugger commands, \code {dump}}{314}
+\entry {debugger commands, \code {e} (\code {enable})}{309}
+\entry {debugger commands, \code {enable}}{309}
+\entry {debugger commands, \code {end}}{310}
+\entry {debugger commands, \code {eval}}{311}
+\entry {debugger commands, \code {f} (\code {frame})}{313}
+\entry {debugger commands, \code {finish}}{310}
+\entry {debugger commands, \code {frame}}{313}
+\entry {debugger commands, \code {h} (\code {help})}{315}
+\entry {debugger commands, \code {help}}{315}
+\entry {debugger commands, \code {i} (\code {info})}{313}
+\entry {debugger commands, \code {ignore}}{310}
+\entry {debugger commands, \code {info}}{313}
+\entry {debugger commands, \code {l} (\code {list})}{315}
+\entry {debugger commands, \code {list}}{315}
+\entry {debugger commands, \code {n} (\code {next})}{310}
+\entry {debugger commands, \code {next}}{310}
+\entry {debugger commands, \code {nexti}}{310}
+\entry {debugger commands, \code {ni} (\code {nexti})}{310}
+\entry {debugger commands, \code {o} (\code {option})}{314}
+\entry {debugger commands, \code {option}}{314}
+\entry {debugger commands, \code {p} (\code {print})}{311}
+\entry {debugger commands, \code {print}}{311}
+\entry {debugger commands, \code {printf}}{312}
+\entry {debugger commands, \code {q} (\code {quit})}{316}
+\entry {debugger commands, \code {quit}}{316}
+\entry {debugger commands, \code {r} (\code {run})}{311}
+\entry {debugger commands, \code {return}}{310}
+\entry {debugger commands, \code {run}}{311}
+\entry {debugger commands, \code {s} (\code {step})}{311}
+\entry {debugger commands, \code {set}}{312}
+\entry {debugger commands, \code {si} (\code {stepi})}{311}
+\entry {debugger commands, \code {silent}}{310}
+\entry {debugger commands, \code {step}}{311}
+\entry {debugger commands, \code {stepi}}{311}
+\entry {debugger commands, \code {t} (\code {tbreak})}{310}
+\entry {debugger commands, \code {tbreak}}{310}
+\entry {debugger commands, \code {trace}}{316}
+\entry {debugger commands, \code {u} (\code {until})}{311}
+\entry {debugger commands, \code {undisplay}}{312}
+\entry {debugger commands, \code {until}}{311}
+\entry {debugger commands, \code {unwatch}}{312}
+\entry {debugger commands, \code {up}}{313}
+\entry {debugger commands, \code {w} (\code {watch})}{312}
+\entry {debugger commands, \code {watch}}{312}
+\entry {debugger default list amount}{314}
+\entry {debugger history file}{314}
+\entry {debugger history size}{314}
+\entry {debugger options}{314}
+\entry {debugger prompt}{314}
+\entry {debugger, how to start}{305}
+\entry {debugger, read commands from a file}{314}
+\entry {debugging \command {awk} programs}{303}
+\entry {debugging \command {gawk}, bug reports}{420}
+\entry {decimal point character, locale specific}{31}
+\entry {decrement operators}{109}
+\entry {\code {default} keyword}{129}
+\entry {Deifik, Scott}{10, 404, 421}
+\entry {\code {delete} \var {array}}{152}
+\entry {delete breakpoint at location}{309}
+\entry {delete breakpoint by number}{309}
+\entry {\code {delete} debugger command}{309}
+\entry {\code {delete} statement}{151}
+\entry {delete watchpoint}{312}
+\entry {deleting elements in arrays}{151}
+\entry {deleting entire arrays}{152}
+\entry {Demaille, Akim}{10}
+\entry {describe call stack frame, in debugger}{313}
+\entry {differences between \command {gawk} and \command {awk}}{164}
+\entry {differences in \command {awk} and \command {gawk}, \code {ARGC}/\code 
{ARGV} variables}{144}
+\entry {differences in \command {awk} and \command {gawk}, \code {ARGIND} 
variable}{138}
+\entry {differences in \command {awk} and \command {gawk}, array elements, 
deleting}{152}
+\entry {differences in \command {awk} and \command {gawk}, \code {AWKLIBPATH} 
environment variable}{35}
+\entry {differences in \command {awk} and \command {gawk}, \code {AWKPATH} 
environment variable}{34}
+\entry {differences in \command {awk} and \command {gawk}, \code {BEGIN}/\code 
{END} patterns}{123}
+\entry {differences in \command {awk} and \command {gawk}, \code 
{BEGINFILE}/\code {ENDFILE} patterns}{123}
+\entry {differences in \command {awk} and \command {gawk}, \code {BINMODE} 
variable}{135, 415}
+\entry {differences in \command {awk} and \command {gawk}, \code {close()} 
function}{95, 96}
+\entry {differences in \command {awk} and \command {gawk}, command line 
directories}{79}
+\entry {differences in \command {awk} and \command {gawk}, \code {ERRNO} 
variable}{138}
+\entry {differences in \command {awk} and \command {gawk}, error messages}{92}
+\entry {differences in \command {awk} and \command {gawk}, \code {FIELDWIDTHS} 
variable}{135}
+\entry {differences in \command {awk} and \command {gawk}, \code {FPAT} 
variable}{135}
+\entry {differences in \command {awk} and \command {gawk}, \code {FUNCTAB} 
variable}{139}
+\entry {differences in \command {awk} and \command {gawk}, function arguments 
(\command {gawk})}{159}
+\entry {differences in \command {awk} and \command {gawk}, \code {getline} 
command}{71}
+\entry {differences in \command {awk} and \command {gawk}, \code {IGNORECASE} 
variable}{136}
+\entry {differences in \command {awk} and \command {gawk}, implementation 
limitations}{76, 92}
+\entry {differences in \command {awk} and \command {gawk}, indirect function 
calls}{193}
+\entry {differences in \command {awk} and \command {gawk}, input/output 
operators}{75, 91}
+\entry {differences in \command {awk} and \command {gawk}, line 
continuations}{115}
+\entry {differences in \command {awk} and \command {gawk}, \code {LINT} 
variable}{136}
+\entry {differences in \command {awk} and \command {gawk}, \code {match()} 
function}{165}
+\entry {differences in \command {awk} and \command {gawk}, \code {print}/\code 
{printf} statements}{86}
+\entry {differences in \command {awk} and \command {gawk}, \code {PROCINFO} 
array}{139}
+\entry {differences in \command {awk} and \command {gawk}, record 
separators}{55}
+\entry {differences in \command {awk} and \command {gawk}, regexp 
constants}{99}
+\entry {differences in \command {awk} and \command {gawk}, regular 
expressions}{50}
+\entry {differences in \command {awk} and \command {gawk}, \code {RS}/\code 
{RT} variables}{56}
+\entry {differences in \command {awk} and \command {gawk}, \code {RT} 
variable}{142}
+\entry {differences in \command {awk} and \command {gawk}, single-character 
fields}{63}
+\entry {differences in \command {awk} and \command {gawk}, \code {split()} 
function}{167}
+\entry {differences in \command {awk} and \command {gawk}, strings}{97}
+\entry {differences in \command {awk} and \command {gawk}, strings, 
storing}{56}
+\entry {differences in \command {awk} and \command {gawk}, \code {SYMTAB} 
variable}{142}
+\entry {differences in \command {awk} and \command {gawk}, \code {TEXTDOMAIN} 
variable}{137}
+\entry {differences in \command {awk} and \command {gawk}, trunc-mod 
operation}{104}
+\entry {directories, command line}{79}
+\entry {directories, searching}{274}
+\entry {directories, searching for shared libraries}{35}
+\entry {directories, searching for source files}{34}
+\entry {disable breakpoint}{309}
+\entry {\code {disable} debugger command}{309}
+\entry {\code {display} debugger command}{311}
+\entry {display debugger options}{314}
+\entry {division}{104}
+\entry {\code {do}-\code {while} statement}{128}
+\entry {\code {do}-\code {while} statement, use of regexps in}{41}
+\entry {documentation, of \command {awk} programs}{202}
+\entry {documentation, online}{8}
+\entry {documents\comma {} searching}{253}
+\entry {dollar sign (\code {$}), \code {$} field operator}{57, 117}
+\entry {dollar sign (\code {$}), incrementing fields and arrays}{109}
+\entry {dollar sign (\code {$}), regexp operator}{44}
+\entry {double precision floating-point}{319}
+\entry {double quote (\code {"}) in shell commands}{14}
+\entry {double quote (\code {"}), in regexp constants}{51}
+\entry {double quote (\code {"}), in shell commands}{17}
+\entry {\code {down} debugger command}{313}
+\entry {Drepper, Ulrich}{10}
+\entry {dump all variables of a program}{29}
+\entry {\code {dump} debugger command}{314}
+\entry {\code {dupword.awk} program}{254}
+\entry {dynamic profiling}{291}
+\entry {dynamically loaded extensions}{335}
+\initial {E}
+\entry {\code {e} debugger command (alias for \code {enable})}{309}
+\entry {EBCDIC}{208}
+\entry {effective group ID of \command {gawk} user}{140}
+\entry {effective user ID of \command {gawk} user}{140}
+\entry {\command {egrep} utility}{47, 238}
+\entry {\code {egrep.awk} program}{239}
+\entry {elements in arrays, assigning values}{147}
+\entry {elements in arrays, deleting}{151}
+\entry {elements in arrays, order of access by \code {in} operator}{149}
+\entry {elements in arrays, scanning}{148}
+\entry {elements of arrays}{146}
+\entry {email address for bug reports, \code address@hidden
+\entry {\code {EMISTERED}}{287}
+\entry {empty array elements}{147}
+\entry {empty pattern}{124}
+\entry {empty strings}{55}
+\entry {empty strings, See null strings}{62}
+\entry {enable breakpoint}{309}
+\entry {\code {enable} debugger command}{309}
+\entry {\code {end} debugger command}{310}
+\entry {\code {END} pattern}{122}
+\entry {\code {END} pattern, and profiling}{289}
+\entry {\code {END} pattern, \code {assert()} user-defined function and}{205}
+\entry {\code {END} pattern, backslash continuation and}{242}
+\entry {\code {END} pattern, Boolean patterns and}{121}
+\entry {\code {END} pattern, \code {exit} statement and}{134}
+\entry {\code {END} pattern, \code {next}/\code {nextfile} statements 
and}{123, 133}
+\entry {\code {END} pattern, operators and}{122}
+\entry {\code {END} pattern, \code {print} statement and}{123}
+\entry {\code {endfile()} user-defined function}{213}
+\entry {\code {ENDFILE} pattern}{123}
+\entry {\code {ENDFILE} pattern, Boolean patterns and}{121}
+\entry {\code {endgrent()} function (C library)}{229}
+\entry {\code {endgrent()} user-defined function}{229}
+\entry {\code {endpwent()} function (C library)}{225}
+\entry {\code {endpwent()} user-defined function}{225}
+\entry {\code {ENVIRON} array}{138}
+\entry {environment variables used by \command {gawk}}{34}
+\entry {environment variables, in \code {ENVIRON} array}{138}
+\entry {epoch, definition of}{442}
+\entry {equals sign (\code {=}), \code {=} operator}{106}
+\entry {equals sign (\code {=}), \code {==} operator}{111, 118}
+\entry {EREs (Extended Regular Expressions)}{47}
+\entry {\code {ERRNO} variable}{138, 288}
+\entry {\code {ERRNO} variable, with \code {BEGINFILE} pattern}{124}
+\entry {\code {ERRNO} variable, with \command {close()} function}{96}
+\entry {\code {ERRNO} variable, with \command {getline} command}{71}
+\entry {error handling}{92}
+\entry {error handling, \code {ERRNO} variable and}{138}
+\entry {error output}{92}
+\entry {escape processing, \code {gsub()}/\code {gensub()}/\code {sub()} 
functions}{170}
+\entry {escape sequences, in strings}{42}
+\entry {\code {eval} debugger command}{311}
+\entry {evaluate expressions, in debugger}{311}
+\entry {evaluation order}{109}
+\entry {evaluation order, concatenation}{105}
+\entry {evaluation order, functions}{159}
+\entry {examining fields}{56}
+\entry {exclamation point (\code {!}), \code {!} operator}{114, 117, 241}
+\entry {exclamation point (\code {!}), \code {!=} operator}{111, 118}
+\entry {exclamation point (\code {!}), \code {!~} operator}{41, 50, 51, 98, 
111, 113, 118, 120}
+\entry {\code {exit} statement}{134}
+\entry {exit status, of \command {gawk}}{37}
+\entry {exit status, of VMS}{419}
+\entry {exit the debugger}{316}
+\entry {\code {exp()} function}{160}
+\entry {\command {expand} utility}{20}
+\entry {Expat XML parser library}{387}
+\entry {exponent}{160}
+\entry {expressions}{97}
+\entry {expressions, as patterns}{119}
+\entry {expressions, assignment}{106}
+\entry {expressions, Boolean}{113}
+\entry {expressions, comparison}{110}
+\entry {expressions, conditional}{115}
+\entry {expressions, matching, See comparison expressions}{110}
+\entry {expressions, selecting}{115}
+\entry {Extended Regular Expressions (EREs)}{47}
+\entry {extension API}{337}
+\entry {extension API informational variables}{365}
+\entry {extension API version}{365}
+\entry {extension API, version number}{141}
+\entry {extension example}{368}
+\entry {extension registration}{344}
+\entry {extension search path}{368}
+\entry {extensions distributed with \command {gawk}}{378}
+\entry {extensions, allocating memory}{342}
+\entry {extensions, Brian Kernighan's \command {awk}}{393, 401}
+\entry {extensions, common\comma {} \code {**} operator}{104}
+\entry {extensions, common\comma {} \code {**=} operator}{108}
+\entry {extensions, common\comma {} \code {/dev/stderr} special file}{93}
+\entry {extensions, common\comma {} \code {/dev/stdin} special file}{93}
+\entry {extensions, common\comma {} \code {/dev/stdout} special file}{93}
+\entry {extensions, common\comma {} \code {{\tt \backslashcurfont }x} escape 
sequence}{42}
+\entry {extensions, common\comma {} \code {BINMODE} variable}{415}
+\entry {extensions, common\comma {} \code {delete} to delete entire 
arrays}{152}
+\entry {extensions, common\comma {} \code {fflush()} function}{174}
+\entry {extensions, common\comma {} \code {func} keyword}{185}
+\entry {extensions, common\comma {} \code {length()} applied to an array}{164}
+\entry {extensions, common\comma {} \code {RS} as a regexp}{55}
+\entry {extensions, common\comma {} single character fields}{63}
+\entry {extensions, in \command {gawk}, not in POSIX \command {awk}}{393}
+\entry {extensions, \command {mawk}}{401}
+\entry {extensions, where to find}{387}
+\entry {\code {extract.awk} program}{264}
+\entry {extraction, of marked strings (internationalization)}{297}
+\initial {F}
+\entry {\code {f} debugger command (alias for \code {frame})}{313}
+\entry {false, logical}{109}
+\entry {FDL (Free Documentation License)}{461}
+\entry {features, adding to \command {gawk}}{426}
+\entry {features, advanced, See advanced features}{39}
+\entry {features, deprecated}{39}
+\entry {features, undocumented}{39}
+\entry {Fenlason, Jay}{4, 403}
+\entry {\code {fflush()} function}{173}
+\entry {field numbers}{57}
+\entry {field operator \code {$}}{57}
+\entry {field operators\comma {} dollar sign as}{57}
+\entry {field separator, in multiline records}{69}
+\entry {field separator, on command line}{63}
+\entry {field separator, POSIX and}{65}
+\entry {field separators}{60, 135, 137}
+\entry {field separators, choice of}{61}
+\entry {field separators, \code {FIELDWIDTHS} variable and}{135}
+\entry {field separators, \code {FPAT} variable and}{135}
+\entry {field separators, POSIX and}{56}
+\entry {field separators, regular expressions as}{61}
+\entry {field separators, See Also \code {OFS}}{59}
+\entry {field separators, spaces as}{235}
+\entry {fields}{53, 56, 436}
+\entry {fields, adding}{59}
+\entry {fields, changing contents of}{58}
+\entry {fields, cutting}{233}
+\entry {fields, examining}{56}
+\entry {fields, number of}{57}
+\entry {fields, numbers}{57}
+\entry {fields, printing}{81}
+\entry {fields, separating}{60}
+\entry {fields, single-character}{63}
+\entry {\code {FIELDWIDTHS} variable}{66, 135}
+\entry {file descriptors}{92}
+\entry {file names, distinguishing}{138}
+\entry {file names, in compatibility mode}{94}
+\entry {file names, standard streams in \command {gawk}}{93}
+\entry {\code {FILENAME} variable}{53, 139}
+\entry {\code {FILENAME} variable, \code {getline}\comma {} setting with}{76}
+\entry {filenames, assignments as}{216}
+\entry {files, \code {.gmo}}{294}
+\entry {files, \code {.gmo}, converting from \code {.po}}{300}
+\entry {files, \code {.gmo}, specifying directory of}{294, 295}
+\entry {files, \code {.po}}{293, 297}
+\entry {files, \code {.po}, converting to \code {.gmo}}{300}
+\entry {files, \code {.pot}}{293}
+\entry {files, \code {/dev/\dots {}} special files}{93}
+\entry {files, \code {/inet/\dots {}} (\command {gawk})}{287}
+\entry {files, \code {/inet4/\dots {}} (\command {gawk})}{287}
+\entry {files, \code {/inet6/\dots {}} (\command {gawk})}{287}
+\entry {files, \command {awk} programs in}{14}
+\entry {files, \code {awkprof.out}}{289}
+\entry {files, \file {awkvars.out}}{29}
+\entry {files, closing}{173}
+\entry {files, descriptors, See file descriptors}{92}
+\entry {files, group}{225}
+\entry {files, initialization and cleanup}{212}
+\entry {files, input, See input files}{14}
+\entry {files, log\comma {} timestamps in}{176}
+\entry {files, managing}{212}
+\entry {files, managing, data file boundaries}{212}
+\entry {files, message object}{294}
+\entry {files, message object, converting from portable object files}{300}
+\entry {files, message object, specifying directory of}{294, 295}
+\entry {files, multiple passes over}{34}
+\entry {files, multiple\comma {} duplicating output into}{246}
+\entry {files, output, See output files}{94}
+\entry {files, password}{221}
+\entry {files, portable object}{293, 297}
+\entry {files, portable object template}{293}
+\entry {files, portable object, converting to message object files}{300}
+\entry {files, portable object, generating}{29}
+\entry {files, processing\comma {} \code {ARGIND} variable and}{138}
+\entry {files, reading}{214}
+\entry {files, reading, multiline records}{69}
+\entry {files, searching for regular expressions}{238}
+\entry {files, skipping}{214}
+\entry {files, source\comma {} search path for}{274}
+\entry {files, splitting}{244}
+\entry {files, Texinfo\comma {} extracting programs from}{263}
+\entry {find substring in string}{163}
+\entry {finding extensions}{368}
+\entry {\code {finish} debugger command}{310}
+\entry {Fish, Fred}{404}
+\entry {fixed-width data}{66}
+\entry {flag variables}{114, 246}
+\entry {floating-point, numbers}{319, 320}
+\entry {floating-point, numbers\comma {} arbitrary precision}{319}
+\entry {floating-point, VAX/VMS}{419}
+\entry {flush buffered output}{173}
+\entry {\code {fnmatch()} extension function}{381}
+\entry {\code {FNR} variable}{53, 139}
+\entry {\code {FNR} variable, changing}{143}
+\entry {\code {for} statement}{128}
+\entry {\code {for} statement, looping over arrays}{148}
+\entry {\code {fork()} extension function}{382}
+\entry {format specifiers}{84}
+\entry {format specifiers, mixing regular with positional specifiers}{298}
+\entry {format specifiers, \code {printf} statement}{85}
+\entry {format specifiers, \code {strftime()} function (\command {gawk})}{178}
+\entry {format time string}{177}
+\entry {formats\comma {} numeric output}{84}
+\entry {formatting output}{84}
+\entry {formatting strings}{167}
+\entry {forward slash (\code {/}) to enclose regular expressions}{41}
+\entry {forward slash (\code {/}), \code {/} operator}{117}
+\entry {forward slash (\code {/}), \code {/=} operator}{107, 118}
+\entry {forward slash (\code {/}), \code {/=} operator, vs. \code {/=\dots 
{}/} regexp constant}{108}
+\entry {forward slash (\code {/}), patterns and}{120}
+\entry {\code {FPAT} variable}{68, 135}
+\entry {\code {frame} debugger command}{313}
+\entry {Free Documentation License (FDL)}{461}
+\entry {Free Software Foundation (FSF)}{8, 407, 443}
+\entry {FreeBSD}{448}
+\entry {\code {FS} variable}{60, 135}
+\entry {\code {FS} variable, \code {--field-separator} option and}{27}
+\entry {\code {FS} variable, as null string}{63}
+\entry {\code {FS} variable, as TAB character}{31}
+\entry {\code {FS} variable, changing value of}{61}
+\entry {\code {FS} variable, running \command {awk} programs and}{234}
+\entry {\code {FS} variable, setting from command line}{63}
+\entry {\code {FS}, containing \code {^}}{62}
+\entry {\code {FS}, in multiline records}{69}
+\entry {FSF (Free Software Foundation)}{8, 407, 443}
+\entry {\code {fts()} extension function}{379}
+\entry {\code {FUNCTAB} array}{139}
+\entry {function calls}{115}
+\entry {function calls, indirect}{193}
+\entry {function definition example}{185}
+\entry {function pointers}{193}
+\entry {functions, arrays as parameters to}{190}
+\entry {functions, built-in}{115, 159}
+\entry {functions, built-in, evaluation order}{159}
+\entry {functions, defining}{184}
+\entry {functions, library}{201}
+\entry {functions, library, assertions}{204}
+\entry {functions, library, associative arrays and}{202}
+\entry {functions, library, C library}{216}
+\entry {functions, library, character values as numbers}{207}
+\entry {functions, library, Cliff random numbers}{206}
+\entry {functions, library, command-line options}{216}
+\entry {functions, library, example program for using}{268}
+\entry {functions, library, group database\comma {} reading}{225}
+\entry {functions, library, managing data files}{212}
+\entry {functions, library, managing time}{209}
+\entry {functions, library, merging arrays into strings}{209}
+\entry {functions, library, rounding numbers}{206}
+\entry {functions, library, user database\comma {} reading}{221}
+\entry {functions, names of}{145, 184}
+\entry {functions, recursive}{185}
+\entry {functions, string-translation}{183}
+\entry {functions, undefined}{190}
+\entry {functions, user-defined}{184}
+\entry {functions, user-defined, calling}{187}
+\entry {functions, user-defined, counts, in a profile}{291}
+\entry {functions, user-defined, library of}{201}
+\entry {functions, user-defined, \code {next}/\code {nextfile} statements 
and}{133}
+\initial {G}
+\entry {G-d}{10}
+\entry {Garfinkle, Scott}{404}
+\entry {\command {gawk} program, dynamic profiling}{291}
+\entry {\command {gawk} version}{141}
+\entry {\command {gawk}, \code {ARGIND} variable in}{33}
+\entry {\command {gawk}, \command {awk} and}{3, 5}
+\entry {\command {gawk}, bitwise operations in}{181}
+\entry {\command {gawk}, \code {break} statement in}{131}
+\entry {\command {gawk}, built-in variables and}{135}
+\entry {\command {gawk}, character classes and}{48}
+\entry {\command {gawk}, coding style in}{426}
+\entry {\command {gawk}, command-line options, and regular expressions}{49}
+\entry {\command {gawk}, comparison operators and}{112}
+\entry {\command {gawk}, configuring}{412}
+\entry {\command {gawk}, configuring, options}{411}
+\entry {\command {gawk}, \code {continue} statement in}{132}
+\entry {\command {gawk}, distribution}{408}
+\entry {\command {gawk}, \code {ERRNO} variable in}{71, 96, 124, 138, 288}
+\entry {\command {gawk}, escape sequences}{44}
+\entry {\command {gawk}, extensions\comma {} disabling}{31}
+\entry {\command {gawk}, features, adding}{426}
+\entry {\command {gawk}, features, advanced}{279}
+\entry {\command {gawk}, field separators and}{136}
+\entry {\command {gawk}, \code {FIELDWIDTHS} variable in}{66, 135}
+\entry {\command {gawk}, file names in}{92}
+\entry {\command {gawk}, format-control characters}{85, 86}
+\entry {\command {gawk}, \code {FPAT} variable in}{68, 135}
+\entry {\command {gawk}, \code {FUNCTAB} array in}{139}
+\entry {\command {gawk}, function arguments and}{159}
+\entry {\command {gawk}, hexadecimal numbers and}{98}
+\entry {\command {gawk}, \code {IGNORECASE} variable in}{50, 136, 146, 162, 
285}
+\entry {\command {gawk}, implementation issues}{425}
+\entry {\command {gawk}, implementation issues, debugging}{425}
+\entry {\command {gawk}, implementation issues, downward compatibility}{425}
+\entry {\command {gawk}, implementation issues, limits}{76}
+\entry {\command {gawk}, implementation issues, pipes}{92}
+\entry {\command {gawk}, installing}{407}
+\entry {\command {gawk}, internationalization and, See 
internationalization}{293}
+\entry {\command {gawk}, interpreter\comma {} adding code to}{376}
+\entry {\command {gawk}, interval expressions and}{46}
+\entry {\command {gawk}, line continuation in}{115}
+\entry {\command {gawk}, \code {LINT} variable in}{136}
+\entry {\command {gawk}, list of contributors to}{403}
+\entry {\command {gawk}, MS-DOS version of}{415}
+\entry {\command {gawk}, MS-Windows version of}{415}
+\entry {\command {gawk}, newlines in}{23}
+\entry {\command {gawk}, octal numbers and}{98}
+\entry {\command {gawk}, OS/2 version of}{415}
+\entry {\command {gawk}, \code {PROCINFO} array in}{139, 141, 177, 287}
+\entry {\command {gawk}, regexp constants and}{99}
+\entry {\command {gawk}, regular expressions, case sensitivity}{50}
+\entry {\command {gawk}, regular expressions, operators}{48}
+\entry {\command {gawk}, regular expressions, precedence}{46}
+\entry {\command {gawk}, \code {RT} variable in}{55, 71, 142}
+\entry {\command {gawk}, See Also \command {awk}}{3}
+\entry {\command {gawk}, source code\comma {} obtaining}{407}
+\entry {\command {gawk}, splitting fields and}{67}
+\entry {\command {gawk}, string-translation functions}{183}
+\entry {\command {gawk}, \code {SYMTAB} array in}{142}
+\entry {\command {gawk}, \code {TEXTDOMAIN} variable in}{137}
+\entry {\command {gawk}, timestamps}{176}
+\entry {\command {gawk}, uses for}{3}
+\entry {\command {gawk}, versions of, information about\comma {} printing}{32}
+\entry {\command {gawk}, VMS version of}{417}
+\entry {\command {gawk}, word-boundary operator}{49}
+\entry {\code {gawkextlib}}{387}
+\entry {\code {gawkextlib} project}{387}
+\entry {General Public License (GPL)}{443}
+\entry {General Public License, See GPL}{8}
+\entry {generate time values}{177}
+\entry {\code {gensub()} function (\command {gawk})}{99, 162}
+\entry {\code {gensub()} function (\command {gawk}), escape processing}{170}
+\entry {\code {getaddrinfo()} function (C library)}{288}
+\entry {\code {getgrent()} function (C library)}{225, 229}
+\entry {\code {getgrent()} user-defined function}{225, 229}
+\entry {\code {getgrgid()} function (C library)}{229}
+\entry {\code {getgrgid()} user-defined function}{229}
+\entry {\code {getgrnam()} function (C library)}{228}
+\entry {\code {getgrnam()} user-defined function}{228}
+\entry {\code {getgruser()} function (C library)}{229}
+\entry {\code {getgruser()} function, user-defined}{229}
+\entry {\code {getline} command}{53}
+\entry {\code {getline} command, \code {_gr_init()} user-defined function}{227}
+\entry {\code {getline} command, \code {_pw_init()} function}{224}
+\entry {\code {getline} command, coprocesses\comma {} using from}{75, 94}
+\entry {\code {getline} command, deadlock and}{286}
+\entry {\code {getline} command, explicit input with}{71}
+\entry {\code {getline} command, \code {FILENAME} variable and}{76}
+\entry {\code {getline} command, return values}{71}
+\entry {\code {getline} command, variants}{77}
+\entry {\code {getline} from a file}{73}
+\entry {\code {getline} into a variable}{72}
+\entry {\code {getline} statement, \code {BEGINFILE}/\code {ENDFILE} patterns 
and}{124}
+\entry {\code {getlocaltime()} user-defined function}{209}
+\entry {\code {getopt()} function (C library)}{216}
+\entry {\code {getopt()} user-defined function}{218}
+\entry {\code {getpwent()} function (C library)}{221, 225}
+\entry {\code {getpwent()} user-defined function}{221, 225}
+\entry {\code {getpwnam()} function (C library)}{224}
+\entry {\code {getpwnam()} user-defined function}{224}
+\entry {\code {getpwuid()} function (C library)}{224}
+\entry {\code {getpwuid()} user-defined function}{224}
+\entry {\code {gettext} library}{293}
+\entry {\code {gettext} library, locale categories}{294}
+\entry {\code {gettext()} function (C library)}{294}
+\entry {\code {gettimeofday()} extension function}{386}
+\entry {\command {git} utility}{387, 422, 425, 427}
+\entry {\command {git}, use of for \command {gawk} source code}{429}
+\entry {GMP}{328}
+\entry {GNITS mailing list}{10}
+\entry {GNU \command {awk}, See \command {gawk}}{3}
+\entry {GNU Free Documentation License}{461}
+\entry {GNU General Public License}{443}
+\entry {GNU Lesser General Public License}{445}
+\entry {GNU long options}{27}
+\entry {GNU long options, printing list of}{30}
+\entry {GNU Project}{8, 443}
+\entry {GNU/Linux}{8, 300, 448}
+\entry {Gordon, Assaf}{404}
+\entry {GPL (General Public License)}{8, 443}
+\entry {GPL (General Public License), printing}{28}
+\entry {\command {grcat} program}{225}
+\entry {Grigera, Juan}{404}
+\entry {group database, reading}{225}
+\entry {group file}{225}
+\entry {group ID of \command {gawk} user}{140}
+\entry {groups\comma {} information about}{225}
+\entry {\code {gsub()} function}{99, 163}
+\entry {\code {gsub()} function, arguments of}{169}
+\entry {\code {gsub()} function, escape processing}{170}
+\initial {H}
+\entry {\code {h} debugger command (alias for \code {help})}{315}
+\entry {Hankerson, Darrel}{10, 404}
+\entry {Haque, John}{404}
+\entry {Hartholz, Elaine}{10}
+\entry {Hartholz, Marshall}{10}
+\entry {Hasegawa, Isamu}{404}
+\entry {\code {help} debugger command}{315}
+\entry {hexadecimal numbers}{97}
+\entry {hexadecimal values\comma {} enabling interpretation of}{30}
+\entry {history expansion, in debugger}{316}
+\entry {\code {histsort.awk} program}{262}
+\entry {Hughes, Phil}{10}
+\entry {\code {HUP} signal, for dynamic profiling}{292}
+\entry {hyphen (\code {-}), \code {-} operator}{117, 118}
+\entry {hyphen (\code {-}), \code {--} operator}{109, 117}
+\entry {hyphen (\code {-}), \code {-=} operator}{107, 118}
+\entry {hyphen (\code {-}), filenames beginning with}{28}
+\entry {hyphen (\code {-}), in bracket expressions}{47}
+\initial {I}
+\entry {\code {i} debugger command (alias for \code {info})}{313}
+\entry {\command {id} utility}{242}
+\entry {\code {id.awk} program}{242}
+\entry {IEEE-754 format}{325}
+\entry {\code {if} statement}{126}
+\entry {\code {if} statement, actions\comma {} changing}{121}
+\entry {\code {if} statement, use of regexps in}{41}
+\entry {\code {igawk.sh} program}{269}
+\entry {ignore breakpoint}{310}
+\entry {\code {ignore} debugger command}{310}
+\entry {\code {IGNORECASE} variable}{136}
+\entry {\code {IGNORECASE} variable, and array indices}{146}
+\entry {\code {IGNORECASE} variable, and array sorting functions}{285}
+\entry {\code {IGNORECASE} variable, in example programs}{201}
+\entry {\code {IGNORECASE} variable, with \code {~} and \code {!~} 
operators}{50}
+\entry {Illumos}{423}
+\entry {Illumos, POSIX-compliant \command {awk}}{423}
+\entry {implementation issues, \command {gawk}}{425}
+\entry {implementation issues, \command {gawk}, limits}{76, 92}
+\entry {implementation issues\comma {} \command {gawk}, debugging}{425}
+\entry {\code {in} operator}{111, 118, 129}
+\entry {\code {in} operator, index existence in multidimensional arrays}{154}
+\entry {\code {in} operator, order of array access}{149}
+\entry {\code {in} operator, testing if array element exists}{147}
+\entry {\code {in} operator, use in loops}{148}
+\entry {increment operators}{108}
+\entry {\code {index()} function}{163}
+\entry {indexing arrays}{146}
+\entry {indirect function calls}{193}
+\entry {infinite precision}{319}
+\entry {\code {info} debugger command}{313}
+\entry {initialization, automatic}{22}
+\entry {\code {inplace} extension}{383}
+\entry {input files}{53}
+\entry {input files, closing}{94}
+\entry {input files, counting elements in}{251}
+\entry {input files, examples}{18}
+\entry {input files, reading}{53}
+\entry {input files, running \command {awk} without}{14}
+\entry {input files, variable assignments and}{33}
+\entry {input pipeline}{74}
+\entry {input record, length of}{164}
+\entry {input redirection}{73}
+\entry {input, data\comma {} nondecimal}{279}
+\entry {input, explicit}{71}
+\entry {input, files, See input files}{69}
+\entry {input, multiline records}{69}
+\entry {input, splitting into records}{53}
+\entry {input, standard}{14, 92}
+\entry {input/output functions}{173}
+\entry {input/output, binary}{135}
+\entry {input/output, from \code {BEGIN} and \code {END}}{123}
+\entry {input/output, two-way}{286}
+\entry {insomnia, cure for}{254}
+\entry {installation, VMS}{417}
+\entry {installing \command {gawk}}{407}
+\entry {instruction tracing, in debugger}{314}
+\entry {\code {int()} function}{160}
+\entry {\code {INT} signal (MS-Windows)}{292}
+\entry {integer array indices}{153}
+\entry {integers}{319}
+\entry {integers, arbitrary precision}{332}
+\entry {integers, unsigned}{319}
+\entry {interacting with other programs}{174}
+\entry {internationalization}{183, 293}
+\entry {internationalization, localization}{137, 293}
+\entry {internationalization, localization, character classes}{48}
+\entry {internationalization, localization, \command {gawk} and}{293}
+\entry {internationalization, localization, locale categories}{294}
+\entry {internationalization, localization, marked strings}{295}
+\entry {internationalization, localization, portability and}{298}
+\entry {internationalizing a program}{293}
+\entry {interpreted programs}{435, 444}
+\entry {interval expressions, regexp operator}{46}
+\entry {\code {inventory-shipped} file}{19}
+\entry {invoke shell command}{174}
+\entry {\code {isarray()} function (\command {gawk})}{183}
+\entry {ISO}{444}
+\entry {ISO 8859-1}{440}
+\entry {ISO Latin-1}{440}
+\initial {J}
+\entry {Jacobs, Andrew}{223}
+\entry {Jaegermann, Michal}{10, 404}
+\entry {Java implementation of \command {awk}}{423}
+\entry {Java programming language}{444}
+\entry {\command {jawk}}{423}
+\entry {Jedi knights}{39}
+\entry {\code {join()} user-defined function}{209}
+\initial {K}
+\entry {Kahrs, J\"urgen}{10, 404}
+\entry {Kasal, Stepan}{10}
+\entry {Kenobi, Obi-Wan}{39}
+\entry {Kernighan, Brian}{4, 7, 10, 74, 104, 201, 393, 403, 421, 437, 441}
+\entry {\command {kill} command\comma {} dynamic profiling}{292}
+\entry {Knights, jedi}{39}
+\entry {Knuth, Donald}{319}
+\entry {Kwok, Conrad}{404}
+\initial {L}
+\entry {\code {l} debugger command (alias for \code {list})}{315}
+\entry {\code {labels.awk} program}{259}
+\entry {languages\comma {} data-driven}{436}
+\entry {Laurie, Dirk}{331}
+\entry {\code {LC_ALL} locale category}{295}
+\entry {\code {LC_COLLATE} locale category}{294}
+\entry {\code {LC_CTYPE} locale category}{294}
+\entry {\code {LC_MESSAGES} locale category}{294}
+\entry {\code {LC_MESSAGES} locale category, \code {bindtextdomain()} function 
(\command {gawk})}{296}
+\entry {\code {LC_MONETARY} locale category}{294}
+\entry {\code {LC_NUMERIC} locale category}{295}
+\entry {\code {LC_RESPONSE} locale category}{295}
+\entry {\code {LC_TIME} locale category}{295}
+\entry {left angle bracket (\code {<}), \code {<} operator}{111, 118}
+\entry {left angle bracket (\code {<}), \code {<} operator (I/O)}{73}
+\entry {left angle bracket (\code {<}), \code {<=} operator}{111, 118}
+\entry {left shift}{181}
+\entry {left shift, bitwise}{181}
+\entry {leftmost longest match}{69}
+\entry {length of input record}{164}
+\entry {length of string}{164}
+\entry {\code {length()} function}{164}
+\entry {Lesser General Public License (LGPL)}{445}
+\entry {LGPL (Lesser General Public License)}{445}
+\entry {libmawk}{423}
+\entry {libraries of \command {awk} functions}{201}
+\entry {libraries of \command {awk} functions, assertions}{204}
+\entry {libraries of \command {awk} functions, associative arrays and}{202}
+\entry {libraries of \command {awk} functions, character values as 
numbers}{207}
+\entry {libraries of \command {awk} functions, command-line options}{216}
+\entry {libraries of \command {awk} functions, example program for using}{268}
+\entry {libraries of \command {awk} functions, group database, reading}{225}
+\entry {libraries of \command {awk} functions, managing, data files}{212}
+\entry {libraries of \command {awk} functions, managing, time}{209}
+\entry {libraries of \command {awk} functions, merging arrays into 
strings}{209}
+\entry {libraries of \command {awk} functions, rounding numbers}{206}
+\entry {libraries of \command {awk} functions, user database, reading}{221}
+\entry {line breaks}{23}
+\entry {line continuations}{114}
+\entry {line continuations, \command {gawk}}{115}
+\entry {line continuations, in \code {print} statement}{82}
+\entry {line continuations, with C shell}{22}
+\entry {lines, blank, printing}{81}
+\entry {lines, counting}{251}
+\entry {lines, duplicate\comma {} removing}{262}
+\entry {lines, matching ranges of}{121}
+\entry {lines, skipping between markers}{121}
+\entry {lint checking}{136}
+\entry {lint checking, array elements}{152}
+\entry {lint checking, array subscripts}{154}
+\entry {lint checking, empty programs}{27}
+\entry {lint checking, issuing warnings}{30}
+\entry {lint checking, \env {POSIXLY_CORRECT} environment variable}{33}
+\entry {lint checking, undefined functions}{191}
+\entry {\code {LINT} variable}{136}
+\entry {Linux}{8, 300, 448}
+\entry {list all global variables, in debugger}{313}
+\entry {\code {list} debugger command}{315}
+\entry {list function definitions, in debugger}{313}
+\entry {loading, library}{30}
+\entry {local variables, in a function}{187}
+\entry {locale categories}{294}
+\entry {locale decimal point character}{31}
+\entry {locale, definition of}{118}
+\entry {localization}{293}
+\entry {localization, See internationalization\comma {} localization}{293}
+\entry {log files, timestamps in}{176}
+\entry {\code {log()} function}{160}
+\entry {logarithm}{160}
+\entry {logical false/true}{109}
+\entry {logical operators, See Boolean expressions}{113}
+\entry {login information}{221}
+\entry {long options}{27}
+\entry {loops}{127}
+\entry {loops, \code {break} statement and}{130}
+\entry {loops, \code {continue} statements and}{129}
+\entry {loops, count for header, in a profile}{291}
+\entry {loops, \code {do}-\code {while}}{128}
+\entry {loops, exiting}{130}
+\entry {loops, \code {for}, array scanning}{148}
+\entry {loops, \code {for}, iterative}{128}
+\entry {loops, See Also \code {while} statement}{127}
+\entry {loops, \code {while}}{127}
+\entry {\command {ls} utility}{22}
+\entry {\code {lshift()} function (\command {gawk})}{181}
+\entry {lvalues/rvalues}{106}
+\initial {M}
+\entry {\code {mail-list} file}{18}
+\entry {mailing labels\comma {} printing}{259}
+\entry {mailing list, GNITS}{10}
+\entry {Malmberg, John}{10, 421}
+\entry {mark parity}{208}
+\entry {marked string extraction (internationalization)}{297}
+\entry {marked strings\comma {} extracting}{297}
+\entry {Marx, Groucho}{109}
+\entry {match regexp in string}{164}
+\entry {\code {match()} function}{164}
+\entry {\code {match()} function, \code {RSTART}/\code {RLENGTH} 
variables}{164}
+\entry {matching, expressions, See comparison expressions}{110}
+\entry {matching, leftmost longest}{69}
+\entry {matching, null strings}{173}
+\entry {\command {mawk} utility}{44, 75, 105, 133, 422}
+\entry {maximum precision supported by MPFR library}{141}
+\entry {McPhee, Patrick}{404}
+\entry {message object files}{294}
+\entry {message object files, converting from portable object files}{300}
+\entry {message object files, specifying directory of}{294, 295}
+\entry {messages from extensions}{351}
+\entry {metacharacters in regular expressions}{44}
+\entry {metacharacters, escape sequences for}{44}
+\entry {minimum precision supported by MPFR library}{141}
+\entry {\code {mktime()} function (\command {gawk})}{177}
+\entry {modifiers\comma {} in format specifiers}{86}
+\entry {monetary information, localization}{294}
+\entry {MPFR}{328}
+\entry {\command {msgfmt} utility}{300}
+\entry {multiple precision}{319}
+\entry {multiple-line records}{69}
+\initial {N}
+\entry {\code {n} debugger command (alias for \code {next})}{310}
+\entry {names, arrays/variables}{145, 202}
+\entry {names, functions}{184, 202}
+\entry {namespace issues}{145, 202}
+\entry {namespace issues, functions}{184}
+\entry {\command {nawk} utility}{4}
+\entry {negative zero}{321}
+\entry {NetBSD}{448}
+\entry {networks, programming}{287}
+\entry {networks, support for}{93}
+\entry {newlines}{23, 31, 114}
+\entry {newlines, as field separators}{61}
+\entry {newlines, as record separators}{53}
+\entry {newlines, in dynamic regexps}{52}
+\entry {newlines, in regexp constants}{52}
+\entry {newlines, printing}{81}
+\entry {newlines, separating statements in actions}{125, 126}
+\entry {\code {next} debugger command}{310}
+\entry {\code {next file} statement}{398}
+\entry {\code {next} statement}{115, 132}
+\entry {\code {next} statement, \code {BEGIN}/\code {END} patterns and}{123}
+\entry {\code {next} statement, \code {BEGINFILE}/\code {ENDFILE} patterns 
and}{124}
+\entry {\code {next} statement, user-defined functions and}{133}
+\entry {\code {nextfile} statement}{133}
+\entry {\code {nextfile} statement, \code {BEGIN}/\code {END} patterns 
and}{123}
+\entry {\code {nextfile} statement, \code {BEGINFILE}/\code {ENDFILE} patterns 
and}{124}
+\entry {\code {nextfile} statement, user-defined functions and}{133}
+\entry {\code {nexti} debugger command}{310}
+\entry {\code {NF} variable}{57, 139}
+\entry {\code {NF} variable, decrementing}{60}
+\entry {\code {ni} debugger command (alias for \code {nexti})}{310}
+\entry {\code {noassign.awk} program}{216}
+\entry {non-existent array elements}{147}
+\entry {not Boolean-logic operator}{113}
+\entry {\code {NR} variable}{53, 139}
+\entry {\code {NR} variable, changing}{143}
+\entry {null strings}{55, 62, 109, 437}
+\entry {null strings in \command {gawk} arguments, quoting and}{17}
+\entry {null strings, and deleting array elements}{152}
+\entry {null strings, as array subscripts}{154}
+\entry {null strings, converting numbers to strings}{101}
+\entry {null strings, matching}{173}
+\entry {number as string of bits}{183}
+\entry {number of array elements}{164}
+\entry {number sign (\code {#}), \code {#!} (executable scripts)}{15}
+\entry {number sign (\code {#}), commenting}{16}
+\entry {numbers, as array subscripts}{153}
+\entry {numbers, as values of characters}{207}
+\entry {numbers, Cliff random}{206}
+\entry {numbers, converting}{101, 183}
+\entry {numbers, converting, to strings}{135, 136}
+\entry {numbers, floating-point}{319}
+\entry {numbers, hexadecimal}{97}
+\entry {numbers, octal}{97}
+\entry {numbers, rounding}{206}
+\entry {numeric constants}{97}
+\entry {numeric functions}{159}
+\entry {numeric, output format}{84}
+\entry {numeric, strings}{110}
+\initial {O}
+\entry {\code {o} debugger command (alias for \code {option})}{314}
+\entry {\command {oawk} utility}{4}
+\entry {obsolete features}{39}
+\entry {octal numbers}{97}
+\entry {octal values\comma {} enabling interpretation of}{30}
+\entry {\code {OFMT} variable}{84, 102, 136}
+\entry {\code {OFMT} variable, POSIX \command {awk} and}{84}
+\entry {\code {OFS} variable}{59, 83, 137}
+\entry {OpenBSD}{448}
+\entry {OpenSolaris}{422}
+\entry {operating systems, BSD-based}{8}
+\entry {operating systems, PC, \command {gawk} on}{415}
+\entry {operating systems, PC\comma {} \command {gawk} on, installing}{413}
+\entry {operating systems, porting \command {gawk} to}{427}
+\entry {operating systems, See Also GNU/Linux\comma {} PC operating 
systems\comma {} Unix}{407}
+\entry {operations, bitwise}{181}
+\entry {operators, arithmetic}{103}
+\entry {operators, assignment}{106}
+\entry {operators, assignment, evaluation order}{107}
+\entry {operators, Boolean, See Boolean expressions}{113}
+\entry {operators, decrement/increment}{108}
+\entry {operators, GNU-specific}{48}
+\entry {operators, input/output}{73, 74, 75, 90, 91, 118}
+\entry {operators, logical, See Boolean expressions}{113}
+\entry {operators, precedence}{109, 117}
+\entry {operators, relational, See operators\comma {} comparison}{110}
+\entry {operators, short-circuit}{114}
+\entry {operators, string}{104}
+\entry {operators, string-matching}{41}
+\entry {operators, string-matching, for buffers}{49}
+\entry {operators, word-boundary (\command {gawk})}{49}
+\entry {\code {option} debugger command}{314}
+\entry {options, command-line}{27}
+\entry {options, command-line, end of}{28}
+\entry {options, command-line, invoking \command {awk}}{27}
+\entry {options, command-line, processing}{216}
+\entry {options, deprecated}{39}
+\entry {options, long}{27}
+\entry {options, printing list of}{30}
+\entry {or Boolean-logic operator}{113}
+\entry {\code {or()} function (\command {gawk})}{181}
+\entry {OR bitwise operation}{181}
+\entry {\code {ord()} extension function}{383}
+\entry {\code {ord()} user-defined function}{207}
+\entry {order of evaluation, concatenation}{105}
+\entry {\code {ORS} variable}{83, 137}
+\entry {output field separator, See \code {OFS} variable}{59}
+\entry {output record separator, See \code {ORS} variable}{83}
+\entry {output redirection}{90}
+\entry {output wrapper}{349}
+\entry {output, buffering}{173, 176}
+\entry {output, duplicating into files}{246}
+\entry {output, files\comma {} closing}{94}
+\entry {output, format specifier\comma {} \code {OFMT}}{84}
+\entry {output, formatted}{84}
+\entry {output, pipes}{90}
+\entry {output, printing, See printing}{81}
+\entry {output, records}{83}
+\entry {output, standard}{92}
+\initial {P}
+\entry {\code {p} debugger command (alias for \code {print})}{311}
+\entry {P1003.1 POSIX standard}{445}
+\entry {parent process ID of \command {gawk} process}{140}
+\entry {parentheses \code {()}, in a profile}{291}
+\entry {parentheses \code {()}, regexp operator}{45}
+\entry {password file}{221}
+\entry {\code {patsplit()} function (\command {gawk})}{166}
+\entry {patterns}{119}
+\entry {patterns, comparison expressions as}{120}
+\entry {patterns, counts, in a profile}{291}
+\entry {patterns, default}{20}
+\entry {patterns, empty}{124}
+\entry {patterns, expressions as}{119}
+\entry {patterns, ranges in}{121}
+\entry {patterns, regexp constants as}{120}
+\entry {patterns, types of}{119}
+\entry {\command {pawk} (profiling version of Brian Kernighan's \command 
{awk})}{422}
+\entry {\code {pawk}, \command {awk}-like facilities for Python}{423}
+\entry {PC operating systems, \command {gawk} on}{415}
+\entry {PC operating systems\comma {} \command {gawk} on, installing}{413}
+\entry {percent sign (\code {%}), \code {%} operator}{117}
+\entry {percent sign (\code {%}), \code {%=} operator}{107, 118}
+\entry {period (\code {.}), regexp operator}{45}
+\entry {Perl}{430}
+\entry {Peters, Arno}{404}
+\entry {Peterson, Hal}{404}
+\entry {pipe, closing}{94}
+\entry {pipe, input}{74}
+\entry {pipe, output}{90}
+\entry {Pitts, Dave}{10, 421}
+\entry {Plauger, P.J.\:}{201}
+\entry {plug-in}{335}
+\entry {plus sign (\code {+}), \code {+} operator}{117, 118}
+\entry {plus sign (\code {+}), \code {++} operator}{108, 109, 117}
+\entry {plus sign (\code {+}), \code {+=} operator}{107, 118}
+\entry {plus sign (\code {+}), regexp operator}{45}
+\entry {pointers to functions}{193}
+\entry {portability}{43}
+\entry {portability, \code {#!} (executable scripts)}{16}
+\entry {portability, \code {**} operator and}{104}
+\entry {portability, \code {**=} operator and}{108}
+\entry {portability, \code {ARGV} variable}{16}
+\entry {portability, backslash continuation and}{23}
+\entry {portability, backslash in escape sequences}{44}
+\entry {portability, \code {close()} function and}{95}
+\entry {portability, data files as single record}{56}
+\entry {portability, deleting array elements}{152}
+\entry {portability, example programs}{201}
+\entry {portability, functions\comma {} defining}{185}
+\entry {portability, \command {gawk}}{427}
+\entry {portability, \code {gettext} library and}{293}
+\entry {portability, internationalization and}{298}
+\entry {portability, \code {length()} function}{164}
+\entry {portability, new \command {awk} vs.\: old \command {awk}}{102}
+\entry {portability, \code {next} statement in user-defined functions}{191}
+\entry {portability, \code {NF} variable\comma {} decrementing}{60}
+\entry {portability, operators}{109}
+\entry {portability, operators, not in POSIX \command {awk}}{118}
+\entry {portability, \env {POSIXLY_CORRECT} environment variable}{33}
+\entry {portability, \code {substr()} function}{169}
+\entry {portable object files}{293, 297}
+\entry {portable object files, converting to message object files}{300}
+\entry {portable object files, generating}{29}
+\entry {portable object template files}{293}
+\entry {porting \command {gawk}}{427}
+\entry {positional specifiers, \code {printf} statement}{86, 297}
+\entry {positional specifiers, \code {printf} statement, mixing with regular 
formats}{298}
+\entry {positive zero}{321}
+\entry {POSIX \command {awk}}{5, 108}
+\entry {POSIX \command {awk}, \code {**} operator and}{118}
+\entry {POSIX \command {awk}, \code {**=} operator and}{108}
+\entry {POSIX \command {awk}, \code {<} operator and}{73}
+\entry {POSIX \command {awk}, \code {|} I/O operator and}{75}
+\entry {POSIX \command {awk}, arithmetic operators and}{104}
+\entry {POSIX \command {awk}, backslashes in string constants}{44}
+\entry {POSIX \command {awk}, \code {BEGIN}/\code {END} patterns}{123}
+\entry {POSIX \command {awk}, bracket expressions and}{47}
+\entry {POSIX \command {awk}, bracket expressions and, character classes}{47, 
48}
+\entry {POSIX \command {awk}, \code {break} statement and}{131}
+\entry {POSIX \command {awk}, changes in \command {awk} versions}{392}
+\entry {POSIX \command {awk}, \code {continue} statement and}{132}
+\entry {POSIX \command {awk}, \code {CONVFMT} variable and}{135}
+\entry {POSIX \command {awk}, \code {date} utility and}{180}
+\entry {POSIX \command {awk}, field separators and}{56, 65}
+\entry {POSIX \command {awk}, \code {FS} variable and}{136}
+\entry {POSIX \command {awk}, \code {function} keyword in}{185}
+\entry {POSIX \command {awk}, functions and, \code {gsub()}/\code {sub()}}{171}
+\entry {POSIX \command {awk}, functions and, \code {length()}}{164}
+\entry {POSIX \command {awk}, GNU long options and}{27}
+\entry {POSIX \command {awk}, interval expressions in}{46}
+\entry {POSIX \command {awk}, \code {next}/\code {nextfile} statements 
and}{133}
+\entry {POSIX \command {awk}, numeric strings and}{110}
+\entry {POSIX \command {awk}, \code {OFMT} variable and}{84, 102}
+\entry {POSIX \command {awk}, period (\code {.})\comma {} using}{45}
+\entry {POSIX \command {awk}, \code {printf} format strings and}{88}
+\entry {POSIX \command {awk}, regular expressions and}{46}
+\entry {POSIX \command {awk}, timestamps and}{176}
+\entry {POSIX mode}{31, 33}
+\entry {POSIX, \command {awk} and}{3}
+\entry {POSIX, \command {gawk} extensions not included in}{393}
+\entry {POSIX, programs\comma {} implementing in \command {awk}}{233}
+\entry {\env {POSIXLY_CORRECT} environment variable}{33}
+\entry {\code {PREC} variable}{137, 329}
+\entry {precedence}{109, 117}
+\entry {precedence, regexp operators}{46}
+\entry {\code {print} debugger command}{311}
+\entry {\code {print} statement}{81}
+\entry {\code {print} statement, \code {BEGIN}/\code {END} patterns and}{123}
+\entry {\code {print} statement, commas, omitting}{82}
+\entry {\code {print} statement, I/O operators in}{118}
+\entry {\code {print} statement, line continuations and}{82}
+\entry {\code {print} statement, \code {OFMT} variable and}{137}
+\entry {\code {print} statement, See Also redirection\comma {} of output}{90}
+\entry {\code {print} statement, \code {sprintf()} function and}{206}
+\entry {print variables, in debugger}{311}
+\entry {\code {printf} debugger command}{312}
+\entry {\code {printf} statement}{81, 84}
+\entry {\code {printf} statement, columns\comma {} aligning}{82}
+\entry {\code {printf} statement, format-control characters}{85}
+\entry {\code {printf} statement, I/O operators in}{118}
+\entry {\code {printf} statement, modifiers}{86}
+\entry {\code {printf} statement, positional specifiers}{86, 297}
+\entry {\code {printf} statement, positional specifiers, mixing with regular 
formats}{298}
+\entry {\code {printf} statement, See Also redirection\comma {} of output}{90}
+\entry {\code {printf} statement, \code {sprintf()} function and}{206}
+\entry {\code {printf} statement, syntax of}{84}
+\entry {printing}{81}
+\entry {printing messages from extensions}{351}
+\entry {printing, list of options}{30}
+\entry {printing, mailing labels}{259}
+\entry {printing, unduplicated lines of text}{247}
+\entry {printing, user information}{242}
+\entry {private variables}{202}
+\entry {process group idIDof \command {gawk} process}{140}
+\entry {process ID of \command {gawk} process}{140}
+\entry {processes, two-way communications with}{286}
+\entry {processing data}{435}
+\entry {\code {PROCINFO} array}{139, 177, 221}
+\entry {\code {PROCINFO} array, and communications via ptys}{287}
+\entry {\code {PROCINFO} array, and group membership}{225}
+\entry {\code {PROCINFO} array, and user and group ID numbers}{242}
+\entry {\code {PROCINFO} array, testing the field splitting}{224}
+\entry {\code {PROCINFO} array, uses}{141}
+\entry {\code {PROCINFO}, values of \code {sorted_in}}{150}
+\entry {profiling \command {awk} programs}{289}
+\entry {profiling \command {awk} programs, dynamically}{291}
+\entry {program identifiers}{140}
+\entry {program, definition of}{13}
+\entry {programmers, attractiveness of}{285}
+\entry {programming conventions, \code {--non-decimal-data} option}{279}
+\entry {programming conventions, \code {ARGC}/\code {ARGV} variables}{138}
+\entry {programming conventions, \code {exit} statement}{134}
+\entry {programming conventions, function parameters}{191}
+\entry {programming conventions, functions, calling}{159}
+\entry {programming conventions, functions, writing}{185}
+\entry {programming conventions, \command {gawk} extensions}{371}
+\entry {programming conventions, private variable names}{202}
+\entry {programming language, recipe for}{4}
+\entry {programming languages, Ada}{439}
+\entry {programming languages, Java}{444}
+\entry {programming languages\comma {} data-driven vs.\: procedural}{13}
+\entry {programming, basic steps}{435}
+\entry {programming, concepts}{435}
+\entry {\command {pwcat} program}{221}
+\initial {Q}
+\entry {\code {q} debugger command (alias for \code {quit})}{316}
+\entry {QSE Awk}{423}
+\entry {Quanstrom, Erik}{254}
+\entry {question mark (\code {?}), \code {?:} operator}{118}
+\entry {question mark (\code {?}), regexp operator}{46, 49}
+\entry {QuikTrim Awk}{423}
+\entry {\code {quit} debugger command}{316}
+\entry {\code {QUIT} signal (MS-Windows)}{292}
+\entry {quoting in \command {gawk} command lines}{15}
+\entry {quoting in \command {gawk} command lines, tricks for}{17}
+\entry {quoting, for small awk programs}{16}
+\initial {R}
+\entry {\code {r} debugger command (alias for \code {run})}{311}
+\entry {Rakitzis, Byron}{262}
+\entry {Ramey, Chet}{10, 339}
+\entry {\code {rand()} function}{160}
+\entry {random numbers, Cliff}{206}
+\entry {random numbers, \code {rand()}/\code {srand()} functions}{160}
+\entry {random numbers, seed of}{160}
+\entry {range expressions (regexps)}{47}
+\entry {range patterns}{121}
+\entry {range patterns, line continuation and}{122}
+\entry {Rankin, Pat}{10, 107, 404, 421}
+\entry {\code {reada()} extension function}{385}
+\entry {readable data files\comma {} checking}{214}
+\entry {\code {readable.awk} program}{214}
+\entry {\code {readdir} extension}{384}
+\entry {\code {readfile()} extension function}{386}
+\entry {\code {readfile()} user-defined function}{211}
+\entry {reading input files}{53}
+\entry {recipe for a programming language}{4}
+\entry {record separators}{53, 137}
+\entry {record separators, changing}{54}
+\entry {record separators, regular expressions as}{55}
+\entry {record separators, with multiline records}{69}
+\entry {records}{53, 436}
+\entry {records, multiline}{69}
+\entry {records, printing}{81}
+\entry {records, splitting input into}{53}
+\entry {records, terminating}{55}
+\entry {records, treating files as}{56}
+\entry {recursive functions}{185}
+\entry {redirect \command {gawk} output, in debugger}{314}
+\entry {redirection of input}{73}
+\entry {redirection of output}{90}
+\entry {reference counting, sorting arrays}{285}
+\entry {regexp}{41}
+\entry {regexp constants}{42, 98, 113}
+\entry {regexp constants, \code {/=\dots {}/}, \code {/=} operator and}{108}
+\entry {regexp constants, as patterns}{120}
+\entry {regexp constants, in \command {gawk}}{99}
+\entry {regexp constants, slashes vs.\: quotes}{51}
+\entry {regexp constants, vs.\: string constants}{51}
+\entry {register extension}{344}
+\entry {regular expressions}{41}
+\entry {regular expressions as field separators}{61}
+\entry {regular expressions, anchors in}{44}
+\entry {regular expressions, as field separators}{61}
+\entry {regular expressions, as patterns}{41, 119}
+\entry {regular expressions, as record separators}{55}
+\entry {regular expressions, case sensitivity}{49, 136}
+\entry {regular expressions, computed}{51}
+\entry {regular expressions, constants, See regexp constants}{42}
+\entry {regular expressions, dynamic}{51}
+\entry {regular expressions, dynamic, with embedded newlines}{52}
+\entry {regular expressions, \command {gawk}, command-line options}{49}
+\entry {regular expressions, interval expressions and}{32}
+\entry {regular expressions, leftmost longest match}{50}
+\entry {regular expressions, operators}{41, 44}
+\entry {regular expressions, operators, for buffers}{49}
+\entry {regular expressions, operators, for words}{48}
+\entry {regular expressions, operators, \command {gawk}}{48}
+\entry {regular expressions, operators, precedence of}{46}
+\entry {regular expressions, searching for}{238}
+\entry {relational operators, See comparison operators}{110}
+\entry {replace in string}{168}
+\entry {\code {return} debugger command}{310}
+\entry {\code {return} statement\comma {} user-defined functions}{191}
+\entry {return value\comma {} \code {close()} function}{96}
+\entry {\code {rev()} user-defined function}{186}
+\entry {\code {revoutput} extension}{384}
+\entry {\code {revtwoway} extension}{385}
+\entry {\code {rewind()} user-defined function}{214}
+\entry {right angle bracket (\code {>}), \code {>} operator}{111, 118}
+\entry {right angle bracket (\code {>}), \code {>} operator (I/O)}{90}
+\entry {right angle bracket (\code {>}), \code {>=} operator}{111, 118}
+\entry {right angle bracket (\code {>}), \code {>>} operator (I/O)}{90, 118}
+\entry {right shift}{182}
+\entry {right shift, bitwise}{181}
+\entry {Ritchie, Dennis}{437}
+\entry {\code {RLENGTH} variable}{141}
+\entry {\code {RLENGTH} variable, \code {match()} function and}{164}
+\entry {Robbins, Arnold}{64, 75, 223, 254, 339, 405, 420, 430}
+\entry {Robbins, Bill}{75}
+\entry {Robbins, Harry}{10}
+\entry {Robbins, Jean}{10}
+\entry {Robbins, Miriam}{10, 75, 223}
+\entry {Rommel, Kai Uwe}{404}
+\entry {round to nearest integer}{160}
+\entry {\code {round()} user-defined function}{206}
+\entry {rounding mode, floating-point}{326}
+\entry {rounding numbers}{206}
+\entry {\code {ROUNDMODE} variable}{137, 330}
+\entry {\code {RS} variable}{53, 137}
+\entry {\code {RS} variable, multiline records and}{69}
+\entry {\code {rshift()} function (\command {gawk})}{182}
+\entry {\code {RSTART} variable}{141}
+\entry {\code {RSTART} variable, \code {match()} function and}{164}
+\entry {\code {RT} variable}{55, 71, 142}
+\entry {Rubin, Paul}{4, 403}
+\entry {rule, definition of}{13}
+\entry {\code {run} debugger command}{311}
+\entry {rvalues/lvalues}{106}
+\initial {S}
+\entry {\code {s} debugger command (alias for \code {step})}{311}
+\entry {sample debugging session}{304}
+\entry {sandbox mode}{32}
+\entry {save debugger options}{314}
+\entry {scalar or array}{183}
+\entry {scalar values}{436}
+\entry {scanning arrays}{148}
+\entry {scanning multidimensional arrays}{155}
+\entry {Schorr, Andrew}{10, 405}
+\entry {Schreiber, Bert}{10}
+\entry {Schreiber, Rita}{10}
+\entry {search and replace in strings}{162}
+\entry {search in string}{163}
+\entry {search paths}{274, 415, 419}
+\entry {search paths, for shared libraries}{35}
+\entry {search paths, for source files}{34, 274, 415, 419}
+\entry {searching, files for regular expressions}{238}
+\entry {searching, for words}{253}
+\entry {\command {sed} utility}{65, 266, 439}
+\entry {seeding random number generator}{160}
+\entry {semicolon (\code {;}), \code {AWKPATH} variable and}{415}
+\entry {semicolon (\code {;}), separating statements in actions}{24, 125, 126}
+\entry {separators, field}{135, 137}
+\entry {separators, field, \code {FIELDWIDTHS} variable and}{135}
+\entry {separators, field, \code {FPAT} variable and}{135}
+\entry {separators, field, POSIX and}{56}
+\entry {separators, for records}{53, 54, 137}
+\entry {separators, for records, regular expressions as}{55}
+\entry {separators, for statements in actions}{125}
+\entry {separators, subscript}{137}
+\entry {set breakpoint}{308}
+\entry {\code {set} debugger command}{312}
+\entry {set directory of message catalogs}{183}
+\entry {set watchpoint}{312}
+\entry {setting rounding mode}{330}
+\entry {setting working precision}{329}
+\entry {shadowing of variable values}{185}
+\entry {shell quoting, double quote}{14}
+\entry {shell quoting, rules for}{17}
+\entry {shells, piping commands into}{92}
+\entry {shells, quoting}{124}
+\entry {shells, quoting, rules for}{17}
+\entry {shells, scripts}{13}
+\entry {shells, sea}{39}
+\entry {shells, variables}{124}
+\entry {shift, bitwise}{181}
+\entry {short-circuit operators}{114}
+\entry {show all source files, in debugger}{313}
+\entry {show breakpoints}{313}
+\entry {show function arguments, in debugger}{313}
+\entry {show local variables, in debugger}{313}
+\entry {show name of current source file, in debugger}{313}
+\entry {show watchpoints}{313}
+\entry {\code {si} debugger command (alias for \code {stepi})}{311}
+\entry {side effects}{105, 108, 109}
+\entry {side effects, array indexing}{147}
+\entry {side effects, \code {asort()} function}{284}
+\entry {side effects, assignment expressions}{106}
+\entry {side effects, Boolean operators}{114}
+\entry {side effects, conditional expressions}{115}
+\entry {side effects, decrement/increment operators}{108}
+\entry {side effects, \code {FILENAME} variable}{76}
+\entry {side effects, function calls}{116}
+\entry {side effects, statements}{126}
+\entry {sidebar, A Constant's Base Does Not Affect Its Value}{98}
+\entry {sidebar, Backslash Before Regular Characters}{44}
+\entry {sidebar, Changing \code {FS} Does Not Affect the Fields}{65}
+\entry {sidebar, Changing \code {NR} and \code {FNR}}{143}
+\entry {sidebar, Controlling Output Buffering with \code {system()}}{175}
+\entry {sidebar, Escape Sequences for Metacharacters}{44}
+\entry {sidebar, \code {FS} and \code {IGNORECASE}}{65}
+\entry {sidebar, Interactive Versus Noninteractive Buffering}{175}
+\entry {sidebar, Matching the Null String}{173}
+\entry {sidebar, Operator Evaluation Order}{109}
+\entry {sidebar, Piping into \command {sh}}{92}
+\entry {sidebar, Portability Issues with \samp {#!}}{15}
+\entry {sidebar, Recipe For A Programming Language}{4}
+\entry {sidebar, \code {RS = "{\tt \backslashcurfont }0"} Is Not Portable}{56}
+\entry {sidebar, So Why Does \command {gawk} have \code {BEGINFILE} and \code 
{ENDFILE}?}{213}
+\entry {sidebar, Syntactic Ambiguities Between \samp {/=} and Regular 
Expressions}{108}
+\entry {sidebar, Understanding \code {$0}}{60}
+\entry {sidebar, Using \code {{\tt \backslashcurfont }n} in Bracket 
Expressions of Dynamic Regexps}{52}
+\entry {sidebar, Using \code {close()}'s Return Value}{96}
+\entry {\code {SIGHUP} signal, for dynamic profiling}{292}
+\entry {\code {SIGINT} signal (MS-Windows)}{292}
+\entry {signals, \code {HUP}/\code {SIGHUP}, for profiling}{292}
+\entry {signals, \code {INT}/\code {SIGINT} (MS-Windows)}{292}
+\entry {signals, \code {QUIT}/\code {SIGQUIT} (MS-Windows)}{292}
+\entry {signals, \code {USR1}/\code {SIGUSR1}, for profiling}{292}
+\entry {signature program}{276}
+\entry {\code {SIGQUIT} signal (MS-Windows)}{292}
+\entry {\code {SIGUSR1} signal, for dynamic profiling}{292}
+\entry {\code {silent} debugger command}{310}
+\entry {\code {sin()} function}{161}
+\entry {sine}{161}
+\entry {single precision floating-point}{319}
+\entry {single quote (\code {'})}{13}
+\entry {single quote (\code {'}) in \command {gawk} command lines}{15}
+\entry {single quote (\code {'}), in shell commands}{17}
+\entry {single quote (\code {'}), vs.\: apostrophe}{16}
+\entry {single quote (\code {'}), with double quotes}{17}
+\entry {single-character fields}{63}
+\entry {single-step execution, in the debugger}{310}
+\entry {Skywalker, Luke}{39}
+\entry {\command {sleep} utility}{256}
+\entry {\code {sleep()} extension function}{386}
+\entry {Solaris, POSIX-compliant \command {awk}}{422}
+\entry {sort array}{161}
+\entry {sort array indices}{161}
+\entry {sort function, arrays, sorting}{284}
+\entry {\command {sort} utility}{261}
+\entry {\command {sort} utility, coprocesses and}{287}
+\entry {sorting characters in different languages}{294}
+\entry {source code, \command {awka}}{422}
+\entry {source code, Brian Kernighan's \command {awk}}{421}
+\entry {source code, Busybox Awk}{422}
+\entry {source code, \command {gawk}}{407}
+\entry {source code, Illumos \command {awk}}{423}
+\entry {source code, \command {jawk}}{423}
+\entry {source code, libmawk}{423}
+\entry {source code, \command {mawk}}{422}
+\entry {source code, mixing}{29}
+\entry {source code, \command {pawk}}{422}
+\entry {source code, \command {pawk} (Python version)}{423}
+\entry {source code, QSE Awk}{423}
+\entry {source code, QuikTrim Awk}{423}
+\entry {source code, Solaris \command {awk}}{422}
+\entry {source files\comma {} search path for}{274}
+\entry {sparse arrays}{146}
+\entry {Spencer, Henry}{439}
+\entry {split string into array}{166}
+\entry {\code {split} utility}{244}
+\entry {\code {split()} function}{166}
+\entry {\code {split()} function, array elements\comma {} deleting}{152}
+\entry {\code {split.awk} program}{244}
+\entry {\code {sprintf()} function}{84, 167}
+\entry {\code {sprintf()} function, \code {OFMT} variable and}{137}
+\entry {\code {sprintf()} function, \code {print}/\code {printf} statements 
and}{206}
+\entry {\code {sqrt()} function}{161}
+\entry {square brackets (\code {[]}), regexp operator}{45}
+\entry {square root}{161}
+\entry {\code {srand()} function}{161}
+\entry {stack frame}{303}
+\entry {Stallman, Richard}{8, 9, 403, 443}
+\entry {standard error}{92}
+\entry {standard input}{14, 92}
+\entry {standard output}{92}
+\entry {starting the debugger}{305}
+\entry {\code {stat()} extension function}{378}
+\entry {statements, compound\comma {} control statements and}{126}
+\entry {statements, control, in actions}{126}
+\entry {statements, multiple}{24}
+\entry {\code {step} debugger command}{311}
+\entry {\code {stepi} debugger command}{311}
+\entry {stop automatic display, in debugger}{312}
+\entry {stream editors}{65, 266}
+\entry {\code {strftime()} function (\command {gawk})}{177}
+\entry {string constants}{97}
+\entry {string constants, vs.\: regexp constants}{51}
+\entry {string extraction (internationalization)}{297}
+\entry {string length}{164}
+\entry {string operators}{104}
+\entry {string, regular expression match}{164}
+\entry {string-manipulation functions}{161}
+\entry {string-matching operators}{41}
+\entry {string-translation functions}{183}
+\entry {strings splitting, example}{166}
+\entry {strings, converting}{101, 183}
+\entry {strings, converting letter case}{169}
+\entry {strings, converting, numbers to}{135, 136}
+\entry {strings, empty, See null strings}{55}
+\entry {strings, extracting}{297}
+\entry {strings, for localization}{295}
+\entry {strings, length limitations}{97}
+\entry {strings, merging arrays into}{209}
+\entry {strings, null}{62}
+\entry {strings, numeric}{110}
+\entry {\code {strtonum()} function (\command {gawk})}{167}
+\entry {\code {strtonum()} function (\command {gawk}), \code 
{--non-decimal-data} option and}{279}
+\entry {\code {sub()} function}{99, 168}
+\entry {\code {sub()} function, arguments of}{169}
+\entry {\code {sub()} function, escape processing}{170}
+\entry {subscript separators}{137}
+\entry {subscripts in arrays, multidimensional}{154}
+\entry {subscripts in arrays, multidimensional, scanning}{155}
+\entry {subscripts in arrays, numbers as}{153}
+\entry {subscripts in arrays, uninitialized variables as}{153}
+\entry {\code {SUBSEP} variable}{137}
+\entry {\code {SUBSEP} variable, and multidimensional arrays}{154}
+\entry {substitute in string}{162}
+\entry {\code {substr()} function}{169}
+\entry {substring}{169}
+\entry {Sumner, Andrew}{422}
+\entry {supplementary groups of \command {gawk} process}{141}
+\entry {\code {switch} statement}{129}
+\entry {\code {SYMTAB} array}{142}
+\entry {syntactic ambiguity: \code {/=} operator vs. \code {/=\dots {}/} 
regexp constant}{108}
+\entry {\code {system()} function}{174}
+\entry {\code {systime()} function (\command {gawk})}{177}
+\initial {T}
+\entry {\code {t} debugger command (alias for \code {tbreak})}{310}
+\entry {\code {tbreak} debugger command}{310}
+\entry {Tcl}{202}
+\entry {TCP/IP}{287}
+\entry {TCP/IP, support for}{93}
+\entry {\code {tee} utility}{246}
+\entry {\code {tee.awk} program}{246}
+\entry {temporary breakpoint}{310}
+\entry {terminating records}{55}
+\entry {\code {testbits.awk} program}{182}
+\entry {\code {testext} extension}{386}
+\entry {Texinfo}{7, 201, 253, 263, 409, 427}
+\entry {Texinfo, chapter beginnings in files}{44}
+\entry {Texinfo, extracting programs from source files}{263}
+\entry {text, printing}{81}
+\entry {text\comma {} printing, unduplicated lines of}{247}
+\entry {\code {textdomain()} function (C library)}{293}
+\entry {\code {TEXTDOMAIN} variable}{137, 295}
+\entry {\code {TEXTDOMAIN} variable, \code {BEGIN} pattern and}{296}
+\entry {\code {TEXTDOMAIN} variable, portability and}{298}
+\entry {tilde (\code {~}), \code {~} operator}{41, 50, 51, 98, 111, 113, 118, 
120}
+\entry {time functions}{176}
+\entry {time, alarm clock example program}{254}
+\entry {time, localization and}{295}
+\entry {time, managing}{209}
+\entry {time, retrieving}{176}
+\entry {timeout, reading input}{77}
+\entry {timestamps}{176, 177}
+\entry {timestamps, converting dates to}{177}
+\entry {timestamps, formatted}{209}
+\entry {\code {tolower()} function}{170}
+\entry {\code {toupper()} function}{170}
+\entry {\command {tr} utility}{257}
+\entry {\code {trace} debugger command}{316}
+\entry {traceback, display in debugger}{312}
+\entry {translate string}{183}
+\entry {\code {translate.awk} program}{257}
+\entry {treating files, as single records}{56}
+\entry {troubleshooting, \code {--non-decimal-data} option}{30}
+\entry {troubleshooting, \code {==} operator}{112}
+\entry {troubleshooting, \command {awk} uses \code {FS} not \code {IFS}}{61}
+\entry {troubleshooting, backslash before nonspecial character}{44}
+\entry {troubleshooting, division}{104}
+\entry {troubleshooting, fatal errors, field widths\comma {} specifying}{66}
+\entry {troubleshooting, fatal errors, \code {printf} format strings}{88}
+\entry {troubleshooting, \code {fflush()} function}{174}
+\entry {troubleshooting, function call syntax}{116}
+\entry {troubleshooting, \command {gawk}}{425}
+\entry {troubleshooting, \command {gawk}, bug reports}{420}
+\entry {troubleshooting, \command {gawk}, fatal errors\comma {} function 
arguments}{159}
+\entry {troubleshooting, \code {getline} function}{215}
+\entry {troubleshooting, \code {gsub()}/\code {sub()} functions}{169}
+\entry {troubleshooting, \code {match()} function}{166}
+\entry {troubleshooting, \code {patsplit()} function}{166}
+\entry {troubleshooting, \code {print} statement\comma {} omitting commas}{82}
+\entry {troubleshooting, printing}{91}
+\entry {troubleshooting, quotes with file names}{93}
+\entry {troubleshooting, readable data files}{214}
+\entry {troubleshooting, regexp constants vs.\: string constants}{51}
+\entry {troubleshooting, string concatenation}{105}
+\entry {troubleshooting, \code {substr()} function}{169}
+\entry {troubleshooting, \code {system()} function}{174}
+\entry {troubleshooting, typographical errors\comma {} global variables}{29}
+\entry {true, logical}{109}
+\entry {Trueman, David}{4, 10, 403}
+\entry {trunc-mod operation}{104}
+\entry {truth values}{109}
+\entry {type conversion}{101}
+\initial {U}
+\entry {\code {u} debugger command (alias for \code {until})}{311}
+\entry {unassigned array elements}{147}
+\entry {undefined functions}{190}
+\entry {underscore (\code {_}), C macro}{294}
+\entry {underscore (\code {_}), in names of private variables}{202}
+\entry {underscore (\code {_}), translatable string}{296}
+\entry {\code {undisplay} debugger command}{312}
+\entry {undocumented features}{39}
+\entry {Unicode}{208, 402, 440}
+\entry {uninitialized variables, as array subscripts}{153}
+\entry {\command {uniq} utility}{247}
+\entry {\code {uniq.awk} program}{248}
+\entry {Unix}{448}
+\entry {Unix \command {awk}, backslashes in escape sequences}{44}
+\entry {Unix \command {awk}, \code {close()} function and}{96}
+\entry {Unix \command {awk}, password files\comma {} field separators and}{64}
+\entry {Unix, \command {awk} scripts and}{15}
+\entry {\code {UNIXROOT} variable, on OS/2 systems}{415}
+\entry {unsigned integers}{319}
+\entry {\code {until} debugger command}{311}
+\entry {\code {unwatch} debugger command}{312}
+\entry {\code {up} debugger command}{313}
+\entry {user database\comma {} reading}{221}
+\entry {user-defined functions}{184}
+\entry {user-defined, functions, counts, in a profile}{291}
+\entry {user-defined, variables}{100}
+\entry {user-modifiable variables}{135}
+\entry {users, information about, printing}{242}
+\entry {users, information about, retrieving}{221}
+\entry {\code {USR1} signal, for dynamic profiling}{292}
+\initial {V}
+\entry {values, numeric}{436}
+\entry {values, string}{436}
+\entry {variable assignments and input files}{33}
+\entry {variable typing}{110}
+\entry {variables}{24, 436}
+\entry {variables, assigning on command line}{100}
+\entry {variables, built-in}{100, 134}
+\entry {variables, built-in, \code {-v} option\comma {} setting with}{28}
+\entry {variables, built-in, conveying information}{137}
+\entry {variables, flag}{114}
+\entry {variables, \code {getline} command into\comma {} using}{72, 73, 75, 76}
+\entry {variables, global, for library functions}{202}
+\entry {variables, global, printing list of}{29}
+\entry {variables, initializing}{100}
+\entry {variables, local to a function}{187}
+\entry {variables, names of}{145}
+\entry {variables, private}{202}
+\entry {variables, setting}{28}
+\entry {variables, shadowing}{185}
+\entry {variables, types of}{106}
+\entry {variables, types of, comparison expressions and}{110}
+\entry {variables, uninitialized\comma {} as array subscripts}{153}
+\entry {variables, user-defined}{100}
+\entry {version of \command {gawk}}{141}
+\entry {version of \command {gawk} extension API}{141}
+\entry {version of GNU MP library}{141}
+\entry {version of GNU MPFR library}{141}
+\entry {vertical bar (\code {|})}{45}
+\entry {vertical bar (\code {|}), \code {|} operator (I/O)}{74, 118}
+\entry {vertical bar (\code {|}), \code {|&} operator (I/O)}{75, 118, 286}
+\entry {vertical bar (\code {|}), \code {||} operator}{114, 118}
+\entry {Vinschen, Corinna}{10}
+\initial {W}
+\entry {\code {w} debugger command (alias for \code {watch})}{312}
+\entry {\command {w} utility}{66}
+\entry {\code {wait()} extension function}{382}
+\entry {\code {waitpid()} extension function}{382}
+\entry {\code {walk_array()} user-defined function}{230}
+\entry {Wall, Larry}{145, 430}
+\entry {Wallin, Anders}{404}
+\entry {warnings, issuing}{30}
+\entry {\code {watch} debugger command}{312}
+\entry {watchpoint}{304}
+\entry {\command {wc} utility}{251}
+\entry {\code {wc.awk} program}{251}
+\entry {Weinberger, Peter}{4, 403}
+\entry {\code {while} statement}{127}
+\entry {\code {while} statement, use of regexps in}{41}
+\entry {whitespace, as field separators}{61}
+\entry {whitespace, functions\comma {} calling}{159}
+\entry {whitespace, newlines as}{31}
+\entry {Williams, Kent}{404}
+\entry {Woehlke, Matthew}{404}
+\entry {Woods, John}{403}
+\entry {word boundaries\comma {} matching}{48}
+\entry {word, regexp definition of}{48}
+\entry {word-boundary operator (\command {gawk})}{49}
+\entry {\code {wordfreq.awk} program}{261}
+\entry {words, counting}{251}
+\entry {words, duplicate\comma {} searching for}{253}
+\entry {words, usage counts\comma {} generating}{261}
+\entry {\code {writea()} extension function}{385}
+\initial {X}
+\entry {\code {xgettext} utility}{297}
+\entry {\code {xor()} function (\command {gawk})}{182}
+\entry {XOR bitwise operation}{181}
+\initial {Y}
+\entry {Yawitz, Efraim}{405}
+\initial {Z}
+\entry {Zaretskii, Eli}{10, 404, 421}
+\entry {zero\comma {} negative vs.\: positive}{321}
+\entry {\code {zerofile.awk} program}{215}
+\entry {Zoulas, Christos}{404}


Property changes on: trunk/texindex/tests/gawk.cps
___________________________________________________________________
Added: svn:eol-style
   + native

Added: trunk/texindex/tests/gawk.cps-cvers
===================================================================
--- trunk/texindex/tests/gawk.cps-cvers                         (rev 0)
+++ trunk/texindex/tests/gawk.cps-cvers 2014-12-03 00:57:15 UTC (rev 5946)
@@ -0,0 +1,2228 @@
+\initial {!}
+\entry {\code {!} (exclamation point), \code {!} operator}{114, 117, 121, 241}
+\entry {\code {!} (exclamation point), \code {!=} operator}{111, 118}
+\entry {\code {!} (exclamation point), \code {!~} operator}{41, 50, 51, 98, 
111, 113, 118, 120}
+\initial {"}
+\entry {\code {"} (double quote) in shell commands}{14}
+\entry {\code {"} (double quote), in regexp constants}{51}
+\entry {\code {"} (double quote), in shell commands}{17}
+\initial {#}
+\entry {\code {#} (number sign), \code {#!} (executable scripts)}{15}
+\entry {\code {#} (number sign), commenting}{16}
+\initial {$}
+\entry {\code {$} (dollar sign), \code {$} field operator}{57, 117}
+\entry {\code {$} (dollar sign), incrementing fields and arrays}{109}
+\entry {\code {$} (dollar sign), regexp operator}{44}
+\initial {%}
+\entry {\code {%} (percent sign), \code {%} operator}{117}
+\entry {\code {%} (percent sign), \code {%=} operator}{107, 118}
+\initial {&}
+\entry {\code {&} (ampersand), \code {&&} operator}{114, 118}
+\entry {\code {&} (ampersand), \code {gsub()}/\code {gensub()}/\code {sub()} 
functions and}{170}
+\initial {'}
+\entry {\code {'} (single quote)}{13}
+\entry {\code {'} (single quote) in \command {gawk} command lines}{15}
+\entry {\code {'} (single quote), in shell commands}{17}
+\entry {\code {'} (single quote), vs.\: apostrophe}{16}
+\entry {\code {'} (single quote), with double quotes}{17}
+\initial {(}
+\entry {\code {()} (parentheses), in a profile}{291}
+\entry {\code {()} (parentheses), regexp operator}{45}
+\initial {*}
+\entry {\code {*} (asterisk), \code {*} operator, as multiplication 
operator}{117}
+\entry {\code {*} (asterisk), \code {*} operator, as regexp operator}{45}
+\entry {\code {*} (asterisk), \code {*} operator, null strings\comma {} 
matching}{173}
+\entry {\code {*} (asterisk), \code {**} operator}{104, 117}
+\entry {\code {*} (asterisk), \code {**=} operator}{107, 118}
+\entry {\code {*} (asterisk), \code {*=} operator}{107, 118}
+\initial {+}
+\entry {\code {+} (plus sign), \code {+} operator}{117, 118}
+\entry {\code {+} (plus sign), \code {++} operator}{108, 109, 117}
+\entry {\code {+} (plus sign), \code {+=} operator}{107, 118}
+\entry {\code {+} (plus sign), regexp operator}{45}
+\initial {,}
+\entry {\code {,} (comma), in range patterns}{121}
+\initial {-}
+\entry {\code {-} (hyphen), \code {-} operator}{117, 118}
+\entry {\code {-} (hyphen), \code {--} operator}{109, 117}
+\entry {\code {-} (hyphen), \code {-=} operator}{107, 118}
+\entry {\code {-} (hyphen), filenames beginning with}{28}
+\entry {\code {-} (hyphen), in bracket expressions}{47}
+\entry {\option {--assign} option}{28}
+\entry {\option {--bignum} option}{30}
+\entry {\option {--characters-as-bytes} option}{28}
+\entry {\option {--copyright} option}{28}
+\entry {\option {--debug} option}{29}
+\entry {\option {--disable-extensions} configuration option}{411}
+\entry {\option {--disable-lint} configuration option}{411}
+\entry {\option {--disable-nls} configuration option}{412}
+\entry {\option {--dump-variables} option}{29}
+\entry {\option {--dump-variables} option, using for library functions}{202}
+\entry {\option {--exec} option}{29}
+\entry {\option {--field-separator} option}{27}
+\entry {\option {--file} option}{27}
+\entry {\option {--gen-pot} option}{29, 297}
+\entry {\option {--help} option}{30}
+\entry {\option {--include} option}{30}
+\entry {\option {--lint} option}{27, 30}
+\entry {\option {--lint-old} option}{32}
+\entry {\option {--load} option}{30}
+\entry {\option {--non-decimal-data} option}{30, 279}
+\entry {\option {--non-decimal-data} option, \code {strtonum()} function 
and}{279}
+\entry {\option {--optimize} option}{31}
+\entry {\option {--posix} option}{31}
+\entry {\option {--posix} option, \code {--traditional} option and}{31}
+\entry {\option {--pretty-print} option}{31}
+\entry {\option {--profile} option}{31, 289}
+\entry {\option {--re-interval} option}{32}
+\entry {\option {--sandbox} option}{32}
+\entry {\option {--sandbox} option, disabling \code {system()} function}{174}
+\entry {\option {--sandbox} option, input redirection with \code {getline}}{71}
+\entry {\option {--sandbox} option, output redirection with \code {print}, 
\code {printf}}{90}
+\entry {\option {--source} option}{29, 32}
+\entry {\option {--traditional} option}{28}
+\entry {\option {--traditional} option, \code {--posix} option and}{31}
+\entry {\option {--use-lc-numeric} option}{31}
+\entry {\option {--version} option}{32}
+\entry {\option {--with-whiny-user-strftime} configuration option}{412}
+\entry {\option {-b} option}{28}
+\entry {\option {-c} option}{28}
+\entry {\option {-C} option}{28}
+\entry {\option {-d} option}{29}
+\entry {\option {-D} option}{29}
+\entry {\option {-e} option}{29}
+\entry {\option {-E} option}{29}
+\entry {\option {-f} option}{14, 27}
+\entry {\option {-F} option}{27}
+\entry {\option {-F} option, \option {-Ft} sets \code {FS} to TAB}{32}
+\entry {\option {-F} option, command line}{63}
+\entry {\option {-f} option, multiple uses}{32}
+\entry {\option {-g} option}{29}
+\entry {\option {-h} option}{30}
+\entry {\option {-i} option}{30}
+\entry {\option {-l} option}{30}
+\entry {\option {-L} option}{32}
+\entry {\option {-M} option}{30}
+\entry {\option {-n} option}{30}
+\entry {\option {-N} option}{31}
+\entry {\option {-o} option}{31}
+\entry {\option {-O} option}{31}
+\entry {\option {-p} option}{31}
+\entry {\option {-P} option}{31}
+\entry {\option {-r} option}{32}
+\entry {\option {-S} option}{32}
+\entry {\option {-v} option}{28, 100}
+\entry {\option {-V} option}{32}
+\entry {\option {-W} option}{28}
+\initial {.}
+\entry {\code {.} (period), regexp operator}{45}
+\entry {\code {.gmo} files}{294}
+\entry {\code {.gmo} files, converting from \code {.po}}{300}
+\entry {\code {.gmo} files, specifying directory of}{294, 295}
+\entry {\code {.po} files}{293, 297}
+\entry {\code {.po} files, converting to \code {.gmo}}{300}
+\entry {\code {.pot} files}{293}
+\initial {/}
+\entry {\code {/} (forward slash) to enclose regular expressions}{41}
+\entry {\code {/} (forward slash), \code {/} operator}{117}
+\entry {\code {/} (forward slash), \code {/=} operator}{107, 118}
+\entry {\code {/} (forward slash), \code {/=} operator, vs. \code {/=\dots 
{}/} regexp constant}{108}
+\entry {\code {/} (forward slash), patterns and}{120}
+\entry {\code {/=} operator vs. \code {/=\dots {}/} regexp constant}{108}
+\entry {\code {/dev/\dots {}} special files}{93}
+\entry {\code {/dev/fd/\var {N}} special files (\command {gawk})}{93}
+\entry {\code {/inet/\dots {}} special files (\command {gawk})}{287}
+\entry {\code {/inet4/\dots {}} special files (\command {gawk})}{287}
+\entry {\code {/inet6/\dots {}} special files (\command {gawk})}{287}
+\initial {;}
+\entry {\code {;} (semicolon), \code {AWKPATH} variable and}{415}
+\entry {\code {;} (semicolon), separating statements in actions}{24, 125, 126}
+\initial {<}
+\entry {\code {<} (left angle bracket), \code {<} operator}{111, 118}
+\entry {\code {<} (left angle bracket), \code {<} operator (I/O)}{73}
+\entry {\code {<} (left angle bracket), \code {<=} operator}{111, 118}
+\initial {=}
+\entry {\code {=} (equals sign), \code {=} operator}{106}
+\entry {\code {=} (equals sign), \code {==} operator}{111, 118}
+\initial {>}
+\entry {\code {>} (right angle bracket), \code {>} operator}{111, 118}
+\entry {\code {>} (right angle bracket), \code {>} operator (I/O)}{90}
+\entry {\code {>} (right angle bracket), \code {>=} operator}{111, 118}
+\entry {\code {>} (right angle bracket), \code {>>} operator (I/O)}{90, 118}
+\initial {?}
+\entry {\code {?} (question mark), \code {?:} operator}{118}
+\entry {\code {?} (question mark), regexp operator}{46, 49}
+\initial {[}
+\entry {\code {[]} (square brackets), regexp operator}{45}
+\initial {^}
+\entry {\code {^} (caret), \code {^} operator}{117}
+\entry {\code {^} (caret), \code {^=} operator}{107, 118}
+\entry {\code {^} (caret), in bracket expressions}{47}
+\entry {\code {^} (caret), in \code {FS}}{62}
+\entry {\code {^} (caret), regexp operator}{44, 49}
+\initial {_}
+\entry {\code {_} (underscore), C macro}{294}
+\entry {\code {_} (underscore), in names of private variables}{202}
+\entry {\code {_} (underscore), translatable string}{296}
+\entry {\code {_gr_init()} user-defined function}{227}
+\entry {\code {_ord_init()} user-defined function}{207}
+\entry {\code {_pw_init()} user-defined function}{223}
+\initial {{\tt \indexbackslash }}
+\entry {\code {{\tt \backslashcurfont }} (backslash)}{16}
+\entry {\code {{\tt \backslashcurfont }} (backslash) in shell commands}{14}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }"} escape sequence}{43}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }'} operator (\command {gawk})}{49}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }/} escape sequence}{43}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }<} operator (\command {gawk})}{48}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }>} operator (\command {gawk})}{48}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }`} operator (\command {gawk})}{49}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }a} escape sequence}{42}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }b} escape sequence}{42}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }B} operator (\command {gawk})}{48}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }f} escape sequence}{42}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }n} escape sequence}{42}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }}\var {nnn} escape sequence}{42}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }r} escape sequence}{42}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }s} operator (\command {gawk})}{48}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }S} operator (\command {gawk})}{48}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }t} escape sequence}{42}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }v} escape sequence}{42}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }w} operator (\command {gawk})}{48}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }W} operator (\command {gawk})}{48}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }x} escape sequence}{42}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }y} operator (\command {gawk})}{48}
+\entry {\code {{\tt \backslashcurfont }} (backslash), as field separator}{63}
+\entry {\code {{\tt \backslashcurfont }} (backslash), continuing lines 
and}{23, 242}
+\entry {\code {{\tt \backslashcurfont }} (backslash), continuing lines and, 
comments and}{24}
+\entry {\code {{\tt \backslashcurfont }} (backslash), continuing lines and, in 
\command {csh}}{23}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {gsub()}/\code 
{gensub()}/\code {sub()} functions and}{170}
+\entry {\code {{\tt \backslashcurfont }} (backslash), in bracket 
expressions}{47}
+\entry {\code {{\tt \backslashcurfont }} (backslash), in escape sequences}{42, 
43}
+\entry {\code {{\tt \backslashcurfont }} (backslash), in escape sequences, 
POSIX and}{44}
+\entry {\code {{\tt \backslashcurfont }} (backslash), in regexp constants}{51}
+\entry {\code {{\tt \backslashcurfont }} (backslash), in shell commands}{17}
+\entry {\code {{\tt \backslashcurfont }} (backslash), regexp operator}{44}
+\initial {|}
+\entry {\code {|} (vertical bar)}{45}
+\entry {\code {|} (vertical bar), \code {|} operator (I/O)}{74, 90, 118}
+\entry {\code {|} (vertical bar), \code {|&} operator (I/O)}{75, 91, 118, 286}
+\entry {\code {|} (vertical bar), \code {|&} operator (I/O), pipes\comma {} 
closing}{96}
+\entry {\code {|} (vertical bar), \code {||} operator}{114, 118}
+\entry {\code {{\tt \char 123}{\tt \char 125}} (braces)}{291}
+\entry {\code {{\tt \char 123}{\tt \char 125}} (braces), actions and}{125}
+\entry {\code {{\tt \char 123}{\tt \char 125}} (braces), statements, 
grouping}{126}
+\initial {~}
+\entry {\code {~} (tilde), \code {~} operator}{41, 50, 51, 98, 111, 113, 118, 
120}
+\initial {A}
+\entry {accessing fields}{56}
+\entry {accessing global variables from extensions}{352}
+\entry {account information}{221, 225}
+\entry {actions}{125}
+\entry {actions, control statements in}{126}
+\entry {actions, default}{20}
+\entry {actions, empty}{20}
+\entry {Ada programming language}{439}
+\entry {adding, features to \command {gawk}}{426}
+\entry {adding, fields}{59}
+\entry {advanced features, fixed-width data}{66}
+\entry {advanced features, \command {gawk}}{279}
+\entry {advanced features, network programming}{287}
+\entry {advanced features, nondecimal input data}{279}
+\entry {advanced features, processes\comma {} communicating with}{286}
+\entry {advanced features, specifying field content}{67}
+\entry {Aho, Alfred}{4, 403}
+\entry {alarm clock example program}{254}
+\entry {\code {alarm.awk} program}{254}
+\entry {algorithms}{436}
+\entry {allocating memory for extensions}{342}
+\entry {Alpha (DEC)}{8}
+\entry {amazing \command {awk} assembler (\command {aaa})}{439}
+\entry {amazingly workable formatter (\command {awf})}{439}
+\entry {ambiguity, syntactic: \code {/=} operator vs. \code {/=\dots {}/} 
regexp constant}{108}
+\entry {ampersand (\code {&}), \code {&&} operator}{114, 118}
+\entry {ampersand (\code {&}), \code {gsub()}/\code {gensub()}/\code {sub()} 
functions and}{170}
+\entry {\code {anagram.awk} program}{274}
+\entry {anagrams, finding}{274}
+\entry {AND bitwise operation}{181}
+\entry {and Boolean-logic operator}{113}
+\entry {\code {and()} function (\command {gawk})}{181}
+\entry {ANSI}{439}
+\entry {API informational variables}{365}
+\entry {API version}{365}
+\entry {arbitrary precision}{319}
+\entry {arbitrary precision integers}{332}
+\entry {archeologists}{420}
+\entry {arctangent}{160}
+\entry {\code {ARGC}/\code {ARGV} variables}{137}
+\entry {\code {ARGC}/\code {ARGV} variables, command-line arguments}{33}
+\entry {\code {ARGC}/\code {ARGV} variables, how to use}{143}
+\entry {\code {ARGC}/\code {ARGV} variables, portability and}{16}
+\entry {\code {ARGIND} variable}{138}
+\entry {\code {ARGIND} variable, command-line arguments}{33}
+\entry {arguments, command-line}{33, 137, 143}
+\entry {arguments, command-line, invoking \command {awk}}{27}
+\entry {arguments, in function calls}{116}
+\entry {arguments, processing}{216}
+\entry {\code {ARGV} array, indexing into}{33}
+\entry {arithmetic operators}{103}
+\entry {array manipulation in extensions}{356}
+\entry {array members}{146}
+\entry {array scanning order, controlling}{149}
+\entry {array, number of elements}{164}
+\entry {arrays}{145}
+\entry {arrays of arrays}{156}
+\entry {arrays, an example of using}{147}
+\entry {arrays, and \code {IGNORECASE} variable}{146}
+\entry {arrays, as parameters to functions}{190}
+\entry {arrays, associative}{146}
+\entry {arrays, associative, library functions and}{202}
+\entry {arrays, deleting entire contents}{152}
+\entry {arrays, elements that don't exist}{147}
+\entry {arrays, elements, assigning values}{147}
+\entry {arrays, elements, deleting}{151}
+\entry {arrays, elements, order of access by \code {in} operator}{149}
+\entry {arrays, elements, retrieving number of}{161}
+\entry {arrays, \code {for} statement and}{148}
+\entry {arrays, indexing}{146}
+\entry {arrays, merging into strings}{209}
+\entry {arrays, multidimensional}{154}
+\entry {arrays, multidimensional, scanning}{155}
+\entry {arrays, names of, and names of functions/variables}{145}
+\entry {arrays, numeric subscripts}{153}
+\entry {arrays, referencing elements}{146}
+\entry {arrays, scanning}{148}
+\entry {arrays, sorting}{284}
+\entry {arrays, sorting, and \code {IGNORECASE} variable}{285}
+\entry {arrays, sparse}{146}
+\entry {arrays, subscripts, uninitialized variables as}{153}
+\entry {arrays, unassigned elements}{147}
+\entry {artificial intelligence\comma {} \command {gawk} and}{408}
+\entry {ASCII}{208, 440}
+\entry {\code {asort()} function (\command {gawk})}{161, 284}
+\entry {\code {asort()} function (\command {gawk}), arrays\comma {} 
sorting}{284}
+\entry {\code {asorti()} function (\command {gawk})}{161, 284}
+\entry {\code {asorti()} function (\command {gawk}), arrays\comma {} 
sorting}{284}
+\entry {\code {assert()} function (C library)}{204}
+\entry {\code {assert()} user-defined function}{205}
+\entry {assertions}{204}
+\entry {assign values to variables, in debugger}{312}
+\entry {assignment operators}{106}
+\entry {assignment operators, evaluation order}{107}
+\entry {assignment operators, lvalues/rvalues}{106}
+\entry {assignments as filenames}{216}
+\entry {associative arrays}{146}
+\entry {asterisk (\code {*}), \code {*} operator, as multiplication 
operator}{117}
+\entry {asterisk (\code {*}), \code {*} operator, as regexp operator}{45}
+\entry {asterisk (\code {*}), \code {*} operator, null strings\comma {} 
matching}{173}
+\entry {asterisk (\code {*}), \code {**} operator}{104, 117}
+\entry {asterisk (\code {*}), \code {**=} operator}{107, 118}
+\entry {asterisk (\code {*}), \code {*=} operator}{107, 118}
+\entry {\code {atan2()} function}{160}
+\entry {automatic displays, in debugger}{313}
+\entry {\command {awf} (amazingly workable formatter) program}{439}
+\entry {\command {awk} debugging, enabling}{29}
+\entry {\command {awk} language, POSIX version}{108}
+\entry {\command {awk} profiling, enabling}{31}
+\entry {\command {awk} programs}{13, 15, 21}
+\entry {\command {awk} programs, complex}{25}
+\entry {\command {awk} programs, documenting}{16, 202}
+\entry {\command {awk} programs, examples of}{233}
+\entry {\command {awk} programs, execution of}{132}
+\entry {\command {awk} programs, internationalizing}{183, 295}
+\entry {\command {awk} programs, lengthy}{14}
+\entry {\command {awk} programs, lengthy, assertions}{204}
+\entry {\command {awk} programs, location of}{27, 29, 30}
+\entry {\command {awk} programs, one-line examples}{20}
+\entry {\command {awk} programs, profiling}{289}
+\entry {\command {awk} programs, running}{13, 14}
+\entry {\command {awk} programs, running, from shell scripts}{13}
+\entry {\command {awk} programs, running, without input files}{14}
+\entry {\command {awk} programs, shell variables in}{124}
+\entry {\command {awk}, function of}{13}
+\entry {\command {awk}, \command {gawk} and}{3, 5}
+\entry {\command {awk}, history of}{4}
+\entry {\command {awk}, implementation issues, pipes}{92}
+\entry {\command {awk}, implementations}{421}
+\entry {\command {awk}, implementations, limits}{76}
+\entry {\command {awk}, invoking}{27}
+\entry {\command {awk}, new vs.\: old}{4}
+\entry {\command {awk}, new vs.\: old, \code {OFMT} variable}{102}
+\entry {\command {awk}, POSIX and}{3}
+\entry {\command {awk}, POSIX and, See Also POSIX \command {awk}}{3}
+\entry {\command {awk}, regexp constants and}{113}
+\entry {\command {awk}, See Also \command {gawk}}{3}
+\entry {\command {awk}, terms describing}{5}
+\entry {\command {awk}, uses for}{3, 13, 24}
+\entry {\command {awk}, versions of}{4, 391}
+\entry {\command {awk}, versions of, changes between SVR3.1 and SVR4}{392}
+\entry {\command {awk}, versions of, changes between SVR4 and POSIX \command 
{awk}}{392}
+\entry {\command {awk}, versions of, changes between V7 and SVR3.1}{391}
+\entry {\command {awk}, versions of, See Also Brian Kernighan's \command 
{awk}}{393, 421}
+\entry {\command {awka} compiler for \command {awk}}{422}
+\entry {\env {AWKLIBPATH} environment variable}{35}
+\entry {\env {AWKPATH} environment variable}{34, 415}
+\entry {\code {awkprof.out} file}{289}
+\entry {\command {awksed.awk} program}{267}
+\entry {\file {awkvars.out} file}{29}
+\initial {B}
+\entry {\code {b} debugger command (alias for \code {break})}{308}
+\entry {backslash (\code {{\tt \backslashcurfont }})}{16}
+\entry {backslash (\code {{\tt \backslashcurfont }}) in shell commands}{14}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }"} escape sequence}{43}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }'} operator (\command {gawk})}{49}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }/} escape sequence}{43}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }<} operator (\command {gawk})}{48}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }>} operator (\command {gawk})}{48}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }`} operator (\command {gawk})}{49}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }a} escape sequence}{42}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }b} escape sequence}{42}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }B} operator (\command {gawk})}{48}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }f} escape sequence}{42}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }n} escape sequence}{42}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }}\var {nnn} escape sequence}{42}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }r} escape sequence}{42}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }s} operator (\command {gawk})}{48}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }S} operator (\command {gawk})}{48}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }t} escape sequence}{42}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }v} escape sequence}{42}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }w} operator (\command {gawk})}{48}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }W} operator (\command {gawk})}{48}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }x} escape sequence}{42}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }y} operator (\command {gawk})}{48}
+\entry {backslash (\code {{\tt \backslashcurfont }}), as field separator}{63}
+\entry {backslash (\code {{\tt \backslashcurfont }}), continuing lines 
and}{23, 242}
+\entry {backslash (\code {{\tt \backslashcurfont }}), continuing lines and, 
comments and}{24}
+\entry {backslash (\code {{\tt \backslashcurfont }}), continuing lines and, in 
\command {csh}}{23}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {gsub()}/\code 
{gensub()}/\code {sub()} functions and}{170}
+\entry {backslash (\code {{\tt \backslashcurfont }}), in bracket 
expressions}{47}
+\entry {backslash (\code {{\tt \backslashcurfont }}), in escape sequences}{42, 
43}
+\entry {backslash (\code {{\tt \backslashcurfont }}), in escape sequences, 
POSIX and}{44}
+\entry {backslash (\code {{\tt \backslashcurfont }}), in regexp constants}{51}
+\entry {backslash (\code {{\tt \backslashcurfont }}), in shell commands}{17}
+\entry {backslash (\code {{\tt \backslashcurfont }}), regexp operator}{44}
+\entry {\code {backtrace} debugger command}{312}
+\entry {Beebe, Nelson H.F.\:}{10, 422}
+\entry {\code {BEGIN} pattern}{61, 122}
+\entry {\code {BEGIN} pattern, and profiling}{289}
+\entry {\code {BEGIN} pattern, \code {assert()} user-defined function and}{205}
+\entry {\code {BEGIN} pattern, Boolean patterns and}{121}
+\entry {\code {BEGIN} pattern, \code {exit} statement and}{134}
+\entry {\code {BEGIN} pattern, \code {getline} and}{76}
+\entry {\code {BEGIN} pattern, headings\comma {} adding}{82}
+\entry {\code {BEGIN} pattern, \code {next}/\code {nextfile} statements 
and}{123, 133}
+\entry {\code {BEGIN} pattern, \code {OFS}/\code {ORS} variables, assigning 
values to}{83}
+\entry {\code {BEGIN} pattern, operators and}{122}
+\entry {\code {BEGIN} pattern, \code {print} statement and}{123}
+\entry {\code {BEGIN} pattern, \code {pwcat} program}{224}
+\entry {\code {BEGIN} pattern, running \command {awk} programs and}{234}
+\entry {\code {BEGIN} pattern, \code {TEXTDOMAIN} variable and}{296}
+\entry {\code {BEGINFILE} pattern}{123}
+\entry {\code {BEGINFILE} pattern, Boolean patterns and}{121}
+\entry {\code {beginfile()} user-defined function}{213}
+\entry {Bentley, Jon}{441}
+\entry {Benzinger, Michael}{404}
+\entry {Berry, Karl}{10, 403}
+\entry {binary input/output}{135}
+\entry {\code {bindtextdomain()} function (C library)}{294}
+\entry {\code {bindtextdomain()} function (\command {gawk})}{183, 295}
+\entry {\code {bindtextdomain()} function (\command {gawk}), portability 
and}{299}
+\entry {\code {BINMODE} variable}{135, 415}
+\entry {bit-manipulation functions}{181}
+\entry {\code {bits2str()} user-defined function}{182}
+\entry {bitwise AND}{181}
+\entry {bitwise complement}{181}
+\entry {bitwise OR}{181}
+\entry {bitwise XOR}{182}
+\entry {bitwise, complement}{181}
+\entry {bitwise, operations}{181}
+\entry {bitwise, shift}{181}
+\entry {body, in actions}{126}
+\entry {body, in loops}{127}
+\entry {Boolean expressions}{113}
+\entry {Boolean expressions, as patterns}{120}
+\entry {Boolean operators, See Boolean expressions}{113}
+\entry {Bourne shell, quoting rules for}{17}
+\entry {braces (\code {{\tt \char 123}{\tt \char 125}})}{291}
+\entry {braces (\code {{\tt \char 123}{\tt \char 125}}), actions and}{125}
+\entry {braces (\code {{\tt \char 123}{\tt \char 125}}), statements, 
grouping}{126}
+\entry {bracket expressions}{45, 47}
+\entry {bracket expressions, character classes}{47}
+\entry {bracket expressions, collating elements}{48}
+\entry {bracket expressions, collating symbols}{48}
+\entry {bracket expressions, complemented}{45}
+\entry {bracket expressions, equivalence classes}{48}
+\entry {bracket expressions, non-ASCII}{48}
+\entry {bracket expressions, range expressions}{47}
+\entry {\code {break} debugger command}{308}
+\entry {\code {break} statement}{130}
+\entry {breakpoint}{304}
+\entry {breakpoint at location, how to delete}{309}
+\entry {breakpoint commands}{310}
+\entry {breakpoint condition}{309}
+\entry {breakpoint, delete by number}{309}
+\entry {breakpoint, how to disable or enable}{309}
+\entry {breakpoint, setting}{308}
+\entry {Brennan, Michael}{2, 152, 267, 285, 421, 422}
+\entry {Brian Kernighan's \command {awk}}{3, 25, 44, 49, 62, 75, 105, 123, 
131, 132, 133, 152, 169, 170, 174}
+\entry {Brian Kernighan's \command {awk}, extensions}{393}
+\entry {Brian Kernighan's \command {awk}, source code}{421}
+\entry {Brini, Davide}{276}
+\entry {Broder, Alan J.\:}{404}
+\entry {Brown, Martin}{404}
+\entry {BSD-based operating systems}{448}
+\entry {\code {bt} debugger command (alias for \code {backtrace})}{312}
+\entry {Buening, Andreas}{10, 404, 421}
+\entry {buffering, input/output}{176, 286}
+\entry {buffering, interactive vs.\: noninteractive}{175}
+\entry {buffers, flushing}{173, 176}
+\entry {buffers, operators for}{49}
+\entry {bug reports, email address, \code address@hidden
+\entry {\code address@hidden bug reporting address}{420}
+\entry {built-in functions}{159}
+\entry {built-in functions, evaluation order}{159}
+\entry {built-in variables}{134}
+\entry {built-in variables, \code {-v} option\comma {} setting with}{28}
+\entry {built-in variables, conveying information}{137}
+\entry {built-in variables, user-modifiable}{135}
+\entry {Busybox Awk}{422}
+\initial {C}
+\entry {call by reference}{190}
+\entry {call by value}{189}
+\entry {call stack, display in debugger}{312}
+\entry {caret (\code {^}), \code {^} operator}{117}
+\entry {caret (\code {^}), \code {^=} operator}{107, 118}
+\entry {caret (\code {^}), in bracket expressions}{47}
+\entry {caret (\code {^}), regexp operator}{44, 49}
+\entry {\code {case} keyword}{129}
+\entry {case sensitivity, and regexps}{136}
+\entry {case sensitivity, and string comparisons}{136}
+\entry {case sensitivity, array indices and}{146}
+\entry {case sensitivity, converting case}{169}
+\entry {case sensitivity, example programs}{201}
+\entry {case sensitivity, \command {gawk}}{50}
+\entry {case sensitivity, regexps and}{49}
+\entry {CGI, \command {awk} scripts for}{29}
+\entry {changing precision of a number}{331}
+\entry {character classes, See bracket expressions}{45}
+\entry {character lists in regular expression}{47}
+\entry {character lists, See bracket expressions}{45}
+\entry {character sets (machine character encodings)}{208, 440}
+\entry {character sets, See Also bracket expressions}{45}
+\entry {characters, counting}{251}
+\entry {characters, transliterating}{257}
+\entry {characters, values of as numbers}{207}
+\entry {Chassell, Robert J.\:}{10}
+\entry {\code {chdir()} extension function}{378}
+\entry {\command {chem} utility}{441}
+\entry {\code {chr()} extension function}{383}
+\entry {\code {chr()} user-defined function}{207}
+\entry {\code {clear} debugger command}{309}
+\entry {Cliff random numbers}{206}
+\entry {\code {cliff_rand()} user-defined function}{206}
+\entry {close file or coprocess}{173}
+\entry {\code {close()} function}{94, 173}
+\entry {\code {close()} function, portability}{95}
+\entry {\code {close()} function, return value}{96}
+\entry {\code {close()} function, two-way pipes and}{286}
+\entry {Close, Diane}{8, 403}
+\entry {Collado, Manuel}{10}
+\entry {collating elements}{48}
+\entry {collating symbols}{48}
+\entry {Colombo, Antonio}{10, 405}
+\entry {columns, aligning}{82}
+\entry {columns, cutting}{233}
+\entry {comma (\code {,}), in range patterns}{121}
+\entry {command completion, in debugger}{316}
+\entry {command line, arguments}{33, 137, 143}
+\entry {command line, directories on}{79}
+\entry {command line, formats}{13}
+\entry {command line, \code {FS} on\comma {} setting}{63}
+\entry {command line, invoking \command {awk} from}{27}
+\entry {command line, option \option {-f}}{14}
+\entry {command line, options}{27}
+\entry {command line, options, end of}{28}
+\entry {command line, variables\comma {} assigning on}{100}
+\entry {command-line options, processing}{216}
+\entry {command-line options, string extraction}{297}
+\entry {\code {commands} debugger command}{310}
+\entry {commands to execute at breakpoint}{310}
+\entry {commenting}{16}
+\entry {commenting, backslash continuation and}{24}
+\entry {common extensions, \code {**} operator}{104}
+\entry {common extensions, \code {**=} operator}{108}
+\entry {common extensions, \code {/dev/stderr} special file}{93}
+\entry {common extensions, \code {/dev/stdin} special file}{93}
+\entry {common extensions, \code {/dev/stdout} special file}{93}
+\entry {common extensions, \code {{\tt \backslashcurfont }x} escape 
sequence}{42}
+\entry {common extensions, \code {BINMODE} variable}{415}
+\entry {common extensions, \code {delete} to delete entire arrays}{152}
+\entry {common extensions, \code {func} keyword}{185}
+\entry {common extensions, \code {length()} applied to an array}{164}
+\entry {common extensions, \code {RS} as a regexp}{55}
+\entry {common extensions, single character fields}{63}
+\entry {\code {comp.lang.awk} newsgroup}{420}
+\entry {comparison expressions}{110}
+\entry {comparison expressions, as patterns}{120}
+\entry {comparison expressions, string vs.\: regexp}{113}
+\entry {compatibility mode (\command {gawk}), extensions}{393}
+\entry {compatibility mode (\command {gawk}), file names}{94}
+\entry {compatibility mode (\command {gawk}), hexadecimal numbers}{98}
+\entry {compatibility mode (\command {gawk}), octal numbers}{98}
+\entry {compatibility mode (\command {gawk}), specifying}{28}
+\entry {compiled programs}{435, 441}
+\entry {compiling \command {gawk} for Cygwin}{416}
+\entry {compiling \command {gawk} for MS-DOS and MS-Windows}{413}
+\entry {compiling \command {gawk} for VMS}{417}
+\entry {compiling \command {gawk} with EMX for OS/2}{414}
+\entry {\code {compl()} function (\command {gawk})}{181}
+\entry {complement, bitwise}{181}
+\entry {compound statements\comma {} control statements and}{126}
+\entry {concatenating}{104}
+\entry {\code {condition} debugger command}{309}
+\entry {conditional expressions}{115}
+\entry {configuration option, \code {--disable-extensions}}{411}
+\entry {configuration option, \code {--disable-lint}}{411}
+\entry {configuration option, \code {--disable-nls}}{412}
+\entry {configuration option, \code {--with-whiny-user-strftime}}{412}
+\entry {configuration options\comma {} \command {gawk}}{411}
+\entry {constant regexps}{42}
+\entry {constants, floating-point}{330}
+\entry {constants, nondecimal}{279}
+\entry {constants, numeric}{97}
+\entry {constants, types of}{97}
+\entry {context, floating-point}{326}
+\entry {continue program, in debugger}{310}
+\entry {\code {continue} statement}{131}
+\entry {control statements}{126}
+\entry {controlling array scanning order}{149}
+\entry {convert string to lower case}{170}
+\entry {convert string to number}{167}
+\entry {convert string to upper case}{170}
+\entry {converting integer array subscripts}{153}
+\entry {converting, dates to timestamps}{177}
+\entry {converting, numbers to strings}{101, 183}
+\entry {converting, strings to numbers}{101, 183}
+\entry {\code {CONVFMT} variable}{101, 135}
+\entry {\code {CONVFMT} variable, and array subscripts}{153}
+\entry {cookie}{441}
+\entry {coprocesses}{91, 286}
+\entry {coprocesses, closing}{94}
+\entry {coprocesses, \code {getline} from}{75}
+\entry {\code {cos()} function}{160}
+\entry {cosine}{160}
+\entry {counting}{251}
+\entry {\command {csh} utility}{23}
+\entry {\command {csh} utility, \code {|&} operator, comparison with}{286}
+\entry {\command {csh} utility, \env {POSIXLY_CORRECT} environment 
variable}{33}
+\entry {\code {ctime()} user-defined function}{186}
+\entry {currency symbols, localization}{294}
+\entry {current system time}{177}
+\entry {\code {custom.h} file}{412}
+\entry {customized input parser}{345}
+\entry {customized output wrapper}{349}
+\entry {customized two-way processor}{350}
+\entry {\command {cut} utility}{233}
+\entry {\code {cut.awk} program}{234}
+\initial {D}
+\entry {\code {d} debugger command (alias for \code {delete})}{309}
+\entry {d.c., See dark corner}{7}
+\entry {dark corner}{7, 441}
+\entry {dark corner, \code {"0"} is actually true}{110}
+\entry {dark corner, \code {/=} operator vs. \code {/=\dots {}/} regexp 
constant}{108}
+\entry {dark corner, \code {^}, in \code {FS}}{62}
+\entry {dark corner, array subscripts}{154}
+\entry {dark corner, \code {break} statement}{131}
+\entry {dark corner, \code {close()} function}{96}
+\entry {dark corner, command-line arguments}{101}
+\entry {dark corner, \code {continue} statement}{132}
+\entry {dark corner, \code {CONVFMT} variable}{102}
+\entry {dark corner, escape sequences}{33}
+\entry {dark corner, escape sequences, for metacharacters}{44}
+\entry {dark corner, \code {exit} statement}{134}
+\entry {dark corner, field separators}{65}
+\entry {dark corner, \code {FILENAME} variable}{76, 139}
+\entry {dark corner, \code {FNR}/\code {NR} variables}{143}
+\entry {dark corner, format-control characters}{85, 86}
+\entry {dark corner, \code {FS} as null string}{63}
+\entry {dark corner, input files}{55}
+\entry {dark corner, invoking \command {awk}}{27}
+\entry {dark corner, \code {length()} function}{164}
+\entry {dark corner, locale's decimal point character}{102}
+\entry {dark corner, multiline records}{69}
+\entry {dark corner, \code {NF} variable, decrementing}{60}
+\entry {dark corner, \code {OFMT} variable}{84}
+\entry {dark corner, regexp constants}{99}
+\entry {dark corner, regexp constants, \code {/=} operator and}{108}
+\entry {dark corner, regexp constants, as arguments to user-defined 
functions}{99}
+\entry {dark corner, \code {split()} function}{167}
+\entry {dark corner, strings, storing}{56}
+\entry {dark corner, value of \code {ARGV[0]}}{138}
+\entry {data, fixed-width}{66}
+\entry {data-driven languages}{436}
+\entry {database, group, reading}{225}
+\entry {database, users\comma {} reading}{221}
+\entry {\command {date} utility, GNU}{176}
+\entry {\code {date} utility, POSIX}{180}
+\entry {dates, converting to timestamps}{177}
+\entry {dates, information related to\comma {} localization}{295}
+\entry {Davies, Stephen}{10, 404}
+\entry {\code {dcgettext()} function (\command {gawk})}{183, 295}
+\entry {\code {dcgettext()} function (\command {gawk}), portability and}{299}
+\entry {\code {dcngettext()} function (\command {gawk})}{184, 295}
+\entry {\code {dcngettext()} function (\command {gawk}), portability and}{299}
+\entry {deadlocks}{286}
+\entry {debugger commands, \code {b} (\code {break})}{308}
+\entry {debugger commands, \code {backtrace}}{312}
+\entry {debugger commands, \code {break}}{308}
+\entry {debugger commands, \code {bt} (\code {backtrace})}{312}
+\entry {debugger commands, \code {c} (\code {continue})}{310}
+\entry {debugger commands, \code {clear}}{309}
+\entry {debugger commands, \code {commands}}{310}
+\entry {debugger commands, \code {condition}}{309}
+\entry {debugger commands, \code {continue}}{310}
+\entry {debugger commands, \code {d} (\code {delete})}{309}
+\entry {debugger commands, \code {delete}}{309}
+\entry {debugger commands, \code {disable}}{309}
+\entry {debugger commands, \code {display}}{311}
+\entry {debugger commands, \code {down}}{313}
+\entry {debugger commands, \code {dump}}{314}
+\entry {debugger commands, \code {e} (\code {enable})}{309}
+\entry {debugger commands, \code {enable}}{309}
+\entry {debugger commands, \code {end}}{310}
+\entry {debugger commands, \code {eval}}{311}
+\entry {debugger commands, \code {f} (\code {frame})}{313}
+\entry {debugger commands, \code {finish}}{310}
+\entry {debugger commands, \code {frame}}{313}
+\entry {debugger commands, \code {h} (\code {help})}{315}
+\entry {debugger commands, \code {help}}{315}
+\entry {debugger commands, \code {i} (\code {info})}{313}
+\entry {debugger commands, \code {ignore}}{310}
+\entry {debugger commands, \code {info}}{313}
+\entry {debugger commands, \code {l} (\code {list})}{315}
+\entry {debugger commands, \code {list}}{315}
+\entry {debugger commands, \code {n} (\code {next})}{310}
+\entry {debugger commands, \code {next}}{310}
+\entry {debugger commands, \code {nexti}}{310}
+\entry {debugger commands, \code {ni} (\code {nexti})}{310}
+\entry {debugger commands, \code {o} (\code {option})}{314}
+\entry {debugger commands, \code {option}}{314}
+\entry {debugger commands, \code {p} (\code {print})}{311}
+\entry {debugger commands, \code {print}}{311}
+\entry {debugger commands, \code {printf}}{312}
+\entry {debugger commands, \code {q} (\code {quit})}{316}
+\entry {debugger commands, \code {quit}}{316}
+\entry {debugger commands, \code {r} (\code {run})}{311}
+\entry {debugger commands, \code {return}}{310}
+\entry {debugger commands, \code {run}}{311}
+\entry {debugger commands, \code {s} (\code {step})}{311}
+\entry {debugger commands, \code {set}}{312}
+\entry {debugger commands, \code {si} (\code {stepi})}{311}
+\entry {debugger commands, \code {silent}}{310}
+\entry {debugger commands, \code {step}}{311}
+\entry {debugger commands, \code {stepi}}{311}
+\entry {debugger commands, \code {t} (\code {tbreak})}{310}
+\entry {debugger commands, \code {tbreak}}{310}
+\entry {debugger commands, \code {trace}}{316}
+\entry {debugger commands, \code {u} (\code {until})}{311}
+\entry {debugger commands, \code {undisplay}}{312}
+\entry {debugger commands, \code {until}}{311}
+\entry {debugger commands, \code {unwatch}}{312}
+\entry {debugger commands, \code {up}}{313}
+\entry {debugger commands, \code {w} (\code {watch})}{312}
+\entry {debugger commands, \code {watch}}{312}
+\entry {debugger default list amount}{314}
+\entry {debugger history file}{314}
+\entry {debugger history size}{314}
+\entry {debugger options}{314}
+\entry {debugger prompt}{314}
+\entry {debugger, how to start}{305}
+\entry {debugger, read commands from a file}{314}
+\entry {debugging \command {awk} programs}{303}
+\entry {debugging \command {gawk}, bug reports}{420}
+\entry {decimal point character, locale specific}{31}
+\entry {decrement operators}{109}
+\entry {\code {default} keyword}{129}
+\entry {Deifik, Scott}{10, 404, 421}
+\entry {\code {delete} \var {array}}{152}
+\entry {delete breakpoint at location}{309}
+\entry {delete breakpoint by number}{309}
+\entry {\code {delete} debugger command}{309}
+\entry {\code {delete} statement}{151}
+\entry {delete watchpoint}{312}
+\entry {deleting elements in arrays}{151}
+\entry {deleting entire arrays}{152}
+\entry {Demaille, Akim}{10}
+\entry {describe call stack frame, in debugger}{313}
+\entry {differences between \command {gawk} and \command {awk}}{164}
+\entry {differences in \command {awk} and \command {gawk}, \code {ARGC}/\code 
{ARGV} variables}{144}
+\entry {differences in \command {awk} and \command {gawk}, \code {ARGIND} 
variable}{138}
+\entry {differences in \command {awk} and \command {gawk}, array elements, 
deleting}{152}
+\entry {differences in \command {awk} and \command {gawk}, \code {AWKLIBPATH} 
environment variable}{35}
+\entry {differences in \command {awk} and \command {gawk}, \code {AWKPATH} 
environment variable}{34}
+\entry {differences in \command {awk} and \command {gawk}, \code {BEGIN}/\code 
{END} patterns}{123}
+\entry {differences in \command {awk} and \command {gawk}, \code 
{BEGINFILE}/\code {ENDFILE} patterns}{123}
+\entry {differences in \command {awk} and \command {gawk}, \code {BINMODE} 
variable}{135, 415}
+\entry {differences in \command {awk} and \command {gawk}, \code {close()} 
function}{95, 96}
+\entry {differences in \command {awk} and \command {gawk}, command line 
directories}{79}
+\entry {differences in \command {awk} and \command {gawk}, \code {ERRNO} 
variable}{138}
+\entry {differences in \command {awk} and \command {gawk}, error messages}{92}
+\entry {differences in \command {awk} and \command {gawk}, \code {FIELDWIDTHS} 
variable}{135}
+\entry {differences in \command {awk} and \command {gawk}, \code {FPAT} 
variable}{135}
+\entry {differences in \command {awk} and \command {gawk}, \code {FUNCTAB} 
variable}{139}
+\entry {differences in \command {awk} and \command {gawk}, function arguments 
(\command {gawk})}{159}
+\entry {differences in \command {awk} and \command {gawk}, \code {getline} 
command}{71}
+\entry {differences in \command {awk} and \command {gawk}, \code {IGNORECASE} 
variable}{136}
+\entry {differences in \command {awk} and \command {gawk}, implementation 
limitations}{76, 92}
+\entry {differences in \command {awk} and \command {gawk}, indirect function 
calls}{193}
+\entry {differences in \command {awk} and \command {gawk}, input/output 
operators}{75, 91}
+\entry {differences in \command {awk} and \command {gawk}, line 
continuations}{115}
+\entry {differences in \command {awk} and \command {gawk}, \code {LINT} 
variable}{136}
+\entry {differences in \command {awk} and \command {gawk}, \code {match()} 
function}{165}
+\entry {differences in \command {awk} and \command {gawk}, \code {print}/\code 
{printf} statements}{86}
+\entry {differences in \command {awk} and \command {gawk}, \code {PROCINFO} 
array}{139}
+\entry {differences in \command {awk} and \command {gawk}, record 
separators}{55}
+\entry {differences in \command {awk} and \command {gawk}, regexp 
constants}{99}
+\entry {differences in \command {awk} and \command {gawk}, regular 
expressions}{50}
+\entry {differences in \command {awk} and \command {gawk}, \code {RS}/\code 
{RT} variables}{56}
+\entry {differences in \command {awk} and \command {gawk}, \code {RT} 
variable}{142}
+\entry {differences in \command {awk} and \command {gawk}, single-character 
fields}{63}
+\entry {differences in \command {awk} and \command {gawk}, \code {split()} 
function}{167}
+\entry {differences in \command {awk} and \command {gawk}, strings}{97}
+\entry {differences in \command {awk} and \command {gawk}, strings, 
storing}{56}
+\entry {differences in \command {awk} and \command {gawk}, \code {SYMTAB} 
variable}{142}
+\entry {differences in \command {awk} and \command {gawk}, \code {TEXTDOMAIN} 
variable}{137}
+\entry {differences in \command {awk} and \command {gawk}, trunc-mod 
operation}{104}
+\entry {directories, command line}{79}
+\entry {directories, searching}{274}
+\entry {directories, searching for shared libraries}{35}
+\entry {directories, searching for source files}{34}
+\entry {disable breakpoint}{309}
+\entry {\code {disable} debugger command}{309}
+\entry {\code {display} debugger command}{311}
+\entry {display debugger options}{314}
+\entry {division}{104}
+\entry {\code {do}-\code {while} statement}{128}
+\entry {\code {do}-\code {while} statement, use of regexps in}{41}
+\entry {documentation, of \command {awk} programs}{202}
+\entry {documentation, online}{8}
+\entry {documents\comma {} searching}{253}
+\entry {dollar sign (\code {$}), \code {$} field operator}{57, 117}
+\entry {dollar sign (\code {$}), incrementing fields and arrays}{109}
+\entry {dollar sign (\code {$}), regexp operator}{44}
+\entry {double precision floating-point}{319}
+\entry {double quote (\code {"}) in shell commands}{14}
+\entry {double quote (\code {"}), in regexp constants}{51}
+\entry {double quote (\code {"}), in shell commands}{17}
+\entry {\code {down} debugger command}{313}
+\entry {Drepper, Ulrich}{10}
+\entry {dump all variables of a program}{29}
+\entry {\code {dump} debugger command}{314}
+\entry {\code {dupword.awk} program}{254}
+\entry {dynamic profiling}{291}
+\entry {dynamically loaded extensions}{335}
+\initial {E}
+\entry {\code {e} debugger command (alias for \code {enable})}{309}
+\entry {EBCDIC}{208}
+\entry {effective group ID of \command {gawk} user}{140}
+\entry {effective user ID of \command {gawk} user}{140}
+\entry {\command {egrep} utility}{47, 238}
+\entry {\code {egrep.awk} program}{239}
+\entry {elements in arrays, assigning values}{147}
+\entry {elements in arrays, deleting}{151}
+\entry {elements in arrays, order of access by \code {in} operator}{149}
+\entry {elements in arrays, scanning}{148}
+\entry {elements of arrays}{146}
+\entry {email address for bug reports, \code address@hidden
+\entry {\code {EMISTERED}}{287}
+\entry {empty array elements}{147}
+\entry {empty pattern}{124}
+\entry {empty strings}{55}
+\entry {empty strings, See null strings}{62}
+\entry {enable breakpoint}{309}
+\entry {\code {enable} debugger command}{309}
+\entry {\code {end} debugger command}{310}
+\entry {\code {END} pattern}{122}
+\entry {\code {END} pattern, and profiling}{289}
+\entry {\code {END} pattern, \code {assert()} user-defined function and}{205}
+\entry {\code {END} pattern, backslash continuation and}{242}
+\entry {\code {END} pattern, Boolean patterns and}{121}
+\entry {\code {END} pattern, \code {exit} statement and}{134}
+\entry {\code {END} pattern, \code {next}/\code {nextfile} statements 
and}{123, 133}
+\entry {\code {END} pattern, operators and}{122}
+\entry {\code {END} pattern, \code {print} statement and}{123}
+\entry {\code {ENDFILE} pattern}{123}
+\entry {\code {ENDFILE} pattern, Boolean patterns and}{121}
+\entry {\code {endfile()} user-defined function}{213}
+\entry {\code {endgrent()} function (C library)}{229}
+\entry {\code {endgrent()} user-defined function}{229}
+\entry {\code {endpwent()} function (C library)}{225}
+\entry {\code {endpwent()} user-defined function}{225}
+\entry {\code {ENVIRON} array}{138}
+\entry {environment variables used by \command {gawk}}{34}
+\entry {environment variables, in \code {ENVIRON} array}{138}
+\entry {epoch, definition of}{442}
+\entry {equals sign (\code {=}), \code {=} operator}{106}
+\entry {equals sign (\code {=}), \code {==} operator}{111, 118}
+\entry {EREs (Extended Regular Expressions)}{47}
+\entry {\code {ERRNO} variable}{138, 288}
+\entry {\code {ERRNO} variable, with \code {BEGINFILE} pattern}{124}
+\entry {\code {ERRNO} variable, with \command {close()} function}{96}
+\entry {\code {ERRNO} variable, with \command {getline} command}{71}
+\entry {error handling}{92}
+\entry {error handling, \code {ERRNO} variable and}{138}
+\entry {error output}{92}
+\entry {escape processing, \code {gsub()}/\code {gensub()}/\code {sub()} 
functions}{170}
+\entry {escape sequences, in strings}{42}
+\entry {\code {eval} debugger command}{311}
+\entry {evaluate expressions, in debugger}{311}
+\entry {evaluation order}{109}
+\entry {evaluation order, concatenation}{105}
+\entry {evaluation order, functions}{159}
+\entry {examining fields}{56}
+\entry {exclamation point (\code {!}), \code {!} operator}{114, 117, 241}
+\entry {exclamation point (\code {!}), \code {!=} operator}{111, 118}
+\entry {exclamation point (\code {!}), \code {!~} operator}{41, 50, 51, 98, 
111, 113, 118, 120}
+\entry {\code {exit} statement}{134}
+\entry {exit status, of \command {gawk}}{37}
+\entry {exit status, of VMS}{419}
+\entry {exit the debugger}{316}
+\entry {\code {exp()} function}{160}
+\entry {\command {expand} utility}{20}
+\entry {Expat XML parser library}{387}
+\entry {exponent}{160}
+\entry {expressions}{97}
+\entry {expressions, as patterns}{119}
+\entry {expressions, assignment}{106}
+\entry {expressions, Boolean}{113}
+\entry {expressions, comparison}{110}
+\entry {expressions, conditional}{115}
+\entry {expressions, matching, See comparison expressions}{110}
+\entry {expressions, selecting}{115}
+\entry {Extended Regular Expressions (EREs)}{47}
+\entry {extension API}{337}
+\entry {extension API informational variables}{365}
+\entry {extension API version}{365}
+\entry {extension API, version number}{141}
+\entry {extension example}{368}
+\entry {extension registration}{344}
+\entry {extension search path}{368}
+\entry {extensions distributed with \command {gawk}}{378}
+\entry {extensions, allocating memory}{342}
+\entry {extensions, Brian Kernighan's \command {awk}}{393, 401}
+\entry {extensions, common\comma {} \code {**} operator}{104}
+\entry {extensions, common\comma {} \code {**=} operator}{108}
+\entry {extensions, common\comma {} \code {/dev/stderr} special file}{93}
+\entry {extensions, common\comma {} \code {/dev/stdin} special file}{93}
+\entry {extensions, common\comma {} \code {/dev/stdout} special file}{93}
+\entry {extensions, common\comma {} \code {{\tt \backslashcurfont }x} escape 
sequence}{42}
+\entry {extensions, common\comma {} \code {BINMODE} variable}{415}
+\entry {extensions, common\comma {} \code {delete} to delete entire 
arrays}{152}
+\entry {extensions, common\comma {} \code {fflush()} function}{174}
+\entry {extensions, common\comma {} \code {func} keyword}{185}
+\entry {extensions, common\comma {} \code {length()} applied to an array}{164}
+\entry {extensions, common\comma {} \code {RS} as a regexp}{55}
+\entry {extensions, common\comma {} single character fields}{63}
+\entry {extensions, in \command {gawk}, not in POSIX \command {awk}}{393}
+\entry {extensions, \command {mawk}}{401}
+\entry {extensions, where to find}{387}
+\entry {\code {extract.awk} program}{264}
+\entry {extraction, of marked strings (internationalization)}{297}
+\initial {F}
+\entry {\code {f} debugger command (alias for \code {frame})}{313}
+\entry {false, logical}{109}
+\entry {FDL (Free Documentation License)}{461}
+\entry {features, adding to \command {gawk}}{426}
+\entry {features, advanced, See advanced features}{39}
+\entry {features, deprecated}{39}
+\entry {features, undocumented}{39}
+\entry {Fenlason, Jay}{4, 403}
+\entry {\code {fflush()} function}{173}
+\entry {field numbers}{57}
+\entry {field operator \code {$}}{57}
+\entry {field operators\comma {} dollar sign as}{57}
+\entry {field separator, in multiline records}{69}
+\entry {field separator, on command line}{63}
+\entry {field separator, POSIX and}{65}
+\entry {field separators}{60, 135, 137}
+\entry {field separators, choice of}{61}
+\entry {field separators, \code {FIELDWIDTHS} variable and}{135}
+\entry {field separators, \code {FPAT} variable and}{135}
+\entry {field separators, POSIX and}{56}
+\entry {field separators, regular expressions as}{61}
+\entry {field separators, See Also \code {OFS}}{59}
+\entry {field separators, spaces as}{235}
+\entry {fields}{53, 56, 436}
+\entry {fields, adding}{59}
+\entry {fields, changing contents of}{58}
+\entry {fields, cutting}{233}
+\entry {fields, examining}{56}
+\entry {fields, number of}{57}
+\entry {fields, numbers}{57}
+\entry {fields, printing}{81}
+\entry {fields, separating}{60}
+\entry {fields, single-character}{63}
+\entry {\code {FIELDWIDTHS} variable}{66, 135}
+\entry {file descriptors}{92}
+\entry {file names, distinguishing}{138}
+\entry {file names, in compatibility mode}{94}
+\entry {file names, standard streams in \command {gawk}}{93}
+\entry {\code {FILENAME} variable}{53, 139}
+\entry {\code {FILENAME} variable, \code {getline}\comma {} setting with}{76}
+\entry {filenames, assignments as}{216}
+\entry {files, \code {.gmo}}{294}
+\entry {files, \code {.gmo}, converting from \code {.po}}{300}
+\entry {files, \code {.gmo}, specifying directory of}{294, 295}
+\entry {files, \code {.po}}{293, 297}
+\entry {files, \code {.po}, converting to \code {.gmo}}{300}
+\entry {files, \code {.pot}}{293}
+\entry {files, \code {/dev/\dots {}} special files}{93}
+\entry {files, \code {/inet/\dots {}} (\command {gawk})}{287}
+\entry {files, \code {/inet4/\dots {}} (\command {gawk})}{287}
+\entry {files, \code {/inet6/\dots {}} (\command {gawk})}{287}
+\entry {files, \command {awk} programs in}{14}
+\entry {files, \code {awkprof.out}}{289}
+\entry {files, \file {awkvars.out}}{29}
+\entry {files, closing}{173}
+\entry {files, descriptors, See file descriptors}{92}
+\entry {files, group}{225}
+\entry {files, initialization and cleanup}{212}
+\entry {files, input, See input files}{14}
+\entry {files, log\comma {} timestamps in}{176}
+\entry {files, managing}{212}
+\entry {files, managing, data file boundaries}{212}
+\entry {files, message object}{294}
+\entry {files, message object, converting from portable object files}{300}
+\entry {files, message object, specifying directory of}{294, 295}
+\entry {files, multiple passes over}{34}
+\entry {files, multiple\comma {} duplicating output into}{246}
+\entry {files, output, See output files}{94}
+\entry {files, password}{221}
+\entry {files, portable object}{293, 297}
+\entry {files, portable object template}{293}
+\entry {files, portable object, converting to message object files}{300}
+\entry {files, portable object, generating}{29}
+\entry {files, processing\comma {} \code {ARGIND} variable and}{138}
+\entry {files, reading}{214}
+\entry {files, reading, multiline records}{69}
+\entry {files, searching for regular expressions}{238}
+\entry {files, skipping}{214}
+\entry {files, source\comma {} search path for}{274}
+\entry {files, splitting}{244}
+\entry {files, Texinfo\comma {} extracting programs from}{263}
+\entry {find substring in string}{163}
+\entry {finding extensions}{368}
+\entry {\code {finish} debugger command}{310}
+\entry {Fish, Fred}{404}
+\entry {fixed-width data}{66}
+\entry {flag variables}{114, 246}
+\entry {floating-point, numbers}{319, 320}
+\entry {floating-point, numbers\comma {} arbitrary precision}{319}
+\entry {floating-point, VAX/VMS}{419}
+\entry {flush buffered output}{173}
+\entry {\code {fnmatch()} extension function}{381}
+\entry {\code {FNR} variable}{53, 139}
+\entry {\code {FNR} variable, changing}{143}
+\entry {\code {for} statement}{128}
+\entry {\code {for} statement, looping over arrays}{148}
+\entry {\code {fork()} extension function}{382}
+\entry {format specifiers}{84}
+\entry {format specifiers, mixing regular with positional specifiers}{298}
+\entry {format specifiers, \code {printf} statement}{85}
+\entry {format specifiers, \code {strftime()} function (\command {gawk})}{178}
+\entry {format time string}{177}
+\entry {formats\comma {} numeric output}{84}
+\entry {formatting output}{84}
+\entry {formatting strings}{167}
+\entry {forward slash (\code {/}) to enclose regular expressions}{41}
+\entry {forward slash (\code {/}), \code {/} operator}{117}
+\entry {forward slash (\code {/}), \code {/=} operator}{107, 118}
+\entry {forward slash (\code {/}), \code {/=} operator, vs. \code {/=\dots 
{}/} regexp constant}{108}
+\entry {forward slash (\code {/}), patterns and}{120}
+\entry {\code {FPAT} variable}{68, 135}
+\entry {\code {frame} debugger command}{313}
+\entry {Free Documentation License (FDL)}{461}
+\entry {Free Software Foundation (FSF)}{8, 407, 443}
+\entry {FreeBSD}{448}
+\entry {\code {FS} variable}{60, 135}
+\entry {\code {FS} variable, \code {--field-separator} option and}{27}
+\entry {\code {FS} variable, as null string}{63}
+\entry {\code {FS} variable, as TAB character}{31}
+\entry {\code {FS} variable, changing value of}{61}
+\entry {\code {FS} variable, running \command {awk} programs and}{234}
+\entry {\code {FS} variable, setting from command line}{63}
+\entry {\code {FS}, containing \code {^}}{62}
+\entry {\code {FS}, in multiline records}{69}
+\entry {FSF (Free Software Foundation)}{8, 407, 443}
+\entry {\code {fts()} extension function}{379}
+\entry {\code {FUNCTAB} array}{139}
+\entry {function calls}{115}
+\entry {function calls, indirect}{193}
+\entry {function definition example}{185}
+\entry {function pointers}{193}
+\entry {functions, arrays as parameters to}{190}
+\entry {functions, built-in}{115, 159}
+\entry {functions, built-in, evaluation order}{159}
+\entry {functions, defining}{184}
+\entry {functions, library}{201}
+\entry {functions, library, assertions}{204}
+\entry {functions, library, associative arrays and}{202}
+\entry {functions, library, C library}{216}
+\entry {functions, library, character values as numbers}{207}
+\entry {functions, library, Cliff random numbers}{206}
+\entry {functions, library, command-line options}{216}
+\entry {functions, library, example program for using}{268}
+\entry {functions, library, group database\comma {} reading}{225}
+\entry {functions, library, managing data files}{212}
+\entry {functions, library, managing time}{209}
+\entry {functions, library, merging arrays into strings}{209}
+\entry {functions, library, rounding numbers}{206}
+\entry {functions, library, user database\comma {} reading}{221}
+\entry {functions, names of}{145, 184}
+\entry {functions, recursive}{185}
+\entry {functions, string-translation}{183}
+\entry {functions, undefined}{190}
+\entry {functions, user-defined}{184}
+\entry {functions, user-defined, calling}{187}
+\entry {functions, user-defined, counts, in a profile}{291}
+\entry {functions, user-defined, library of}{201}
+\entry {functions, user-defined, \code {next}/\code {nextfile} statements 
and}{133}
+\initial {G}
+\entry {G-d}{10}
+\entry {Garfinkle, Scott}{404}
+\entry {\command {gawk} program, dynamic profiling}{291}
+\entry {\command {gawk} version}{141}
+\entry {\command {gawk}, \code {ARGIND} variable in}{33}
+\entry {\command {gawk}, \command {awk} and}{3, 5}
+\entry {\command {gawk}, bitwise operations in}{181}
+\entry {\command {gawk}, \code {break} statement in}{131}
+\entry {\command {gawk}, built-in variables and}{135}
+\entry {\command {gawk}, character classes and}{48}
+\entry {\command {gawk}, coding style in}{426}
+\entry {\command {gawk}, command-line options, and regular expressions}{49}
+\entry {\command {gawk}, comparison operators and}{112}
+\entry {\command {gawk}, configuring}{412}
+\entry {\command {gawk}, configuring, options}{411}
+\entry {\command {gawk}, \code {continue} statement in}{132}
+\entry {\command {gawk}, distribution}{408}
+\entry {\command {gawk}, \code {ERRNO} variable in}{71, 96, 124, 138, 288}
+\entry {\command {gawk}, escape sequences}{44}
+\entry {\command {gawk}, extensions\comma {} disabling}{31}
+\entry {\command {gawk}, features, adding}{426}
+\entry {\command {gawk}, features, advanced}{279}
+\entry {\command {gawk}, field separators and}{136}
+\entry {\command {gawk}, \code {FIELDWIDTHS} variable in}{66, 135}
+\entry {\command {gawk}, file names in}{92}
+\entry {\command {gawk}, format-control characters}{85, 86}
+\entry {\command {gawk}, \code {FPAT} variable in}{68, 135}
+\entry {\command {gawk}, \code {FUNCTAB} array in}{139}
+\entry {\command {gawk}, function arguments and}{159}
+\entry {\command {gawk}, hexadecimal numbers and}{98}
+\entry {\command {gawk}, \code {IGNORECASE} variable in}{50, 136, 146, 162, 
285}
+\entry {\command {gawk}, implementation issues}{425}
+\entry {\command {gawk}, implementation issues, debugging}{425}
+\entry {\command {gawk}, implementation issues, downward compatibility}{425}
+\entry {\command {gawk}, implementation issues, limits}{76}
+\entry {\command {gawk}, implementation issues, pipes}{92}
+\entry {\command {gawk}, installing}{407}
+\entry {\command {gawk}, internationalization and, See 
internationalization}{293}
+\entry {\command {gawk}, interpreter\comma {} adding code to}{376}
+\entry {\command {gawk}, interval expressions and}{46}
+\entry {\command {gawk}, line continuation in}{115}
+\entry {\command {gawk}, \code {LINT} variable in}{136}
+\entry {\command {gawk}, list of contributors to}{403}
+\entry {\command {gawk}, MS-DOS version of}{415}
+\entry {\command {gawk}, MS-Windows version of}{415}
+\entry {\command {gawk}, newlines in}{23}
+\entry {\command {gawk}, octal numbers and}{98}
+\entry {\command {gawk}, OS/2 version of}{415}
+\entry {\command {gawk}, \code {PROCINFO} array in}{139, 141, 177, 287}
+\entry {\command {gawk}, regexp constants and}{99}
+\entry {\command {gawk}, regular expressions, case sensitivity}{50}
+\entry {\command {gawk}, regular expressions, operators}{48}
+\entry {\command {gawk}, regular expressions, precedence}{46}
+\entry {\command {gawk}, \code {RT} variable in}{55, 71, 142}
+\entry {\command {gawk}, See Also \command {awk}}{3}
+\entry {\command {gawk}, source code\comma {} obtaining}{407}
+\entry {\command {gawk}, splitting fields and}{67}
+\entry {\command {gawk}, string-translation functions}{183}
+\entry {\command {gawk}, \code {SYMTAB} array in}{142}
+\entry {\command {gawk}, \code {TEXTDOMAIN} variable in}{137}
+\entry {\command {gawk}, timestamps}{176}
+\entry {\command {gawk}, uses for}{3}
+\entry {\command {gawk}, versions of, information about\comma {} printing}{32}
+\entry {\command {gawk}, VMS version of}{417}
+\entry {\command {gawk}, word-boundary operator}{49}
+\entry {\code {gawkextlib}}{387}
+\entry {\code {gawkextlib} project}{387}
+\entry {General Public License (GPL)}{443}
+\entry {General Public License, See GPL}{8}
+\entry {generate time values}{177}
+\entry {\code {gensub()} function (\command {gawk})}{99, 162}
+\entry {\code {gensub()} function (\command {gawk}), escape processing}{170}
+\entry {\code {getaddrinfo()} function (C library)}{288}
+\entry {\code {getgrent()} function (C library)}{225, 229}
+\entry {\code {getgrent()} user-defined function}{225, 229}
+\entry {\code {getgrgid()} function (C library)}{229}
+\entry {\code {getgrgid()} user-defined function}{229}
+\entry {\code {getgrnam()} function (C library)}{228}
+\entry {\code {getgrnam()} user-defined function}{228}
+\entry {\code {getgruser()} function (C library)}{229}
+\entry {\code {getgruser()} function, user-defined}{229}
+\entry {\code {getline} command}{53}
+\entry {\code {getline} command, \code {_gr_init()} user-defined function}{227}
+\entry {\code {getline} command, \code {_pw_init()} function}{224}
+\entry {\code {getline} command, coprocesses\comma {} using from}{75, 94}
+\entry {\code {getline} command, deadlock and}{286}
+\entry {\code {getline} command, explicit input with}{71}
+\entry {\code {getline} command, \code {FILENAME} variable and}{76}
+\entry {\code {getline} command, return values}{71}
+\entry {\code {getline} command, variants}{77}
+\entry {\code {getline} from a file}{73}
+\entry {\code {getline} into a variable}{72}
+\entry {\code {getline} statement, \code {BEGINFILE}/\code {ENDFILE} patterns 
and}{124}
+\entry {\code {getlocaltime()} user-defined function}{209}
+\entry {\code {getopt()} function (C library)}{216}
+\entry {\code {getopt()} user-defined function}{218}
+\entry {\code {getpwent()} function (C library)}{221, 225}
+\entry {\code {getpwent()} user-defined function}{221, 225}
+\entry {\code {getpwnam()} function (C library)}{224}
+\entry {\code {getpwnam()} user-defined function}{224}
+\entry {\code {getpwuid()} function (C library)}{224}
+\entry {\code {getpwuid()} user-defined function}{224}
+\entry {\code {gettext} library}{293}
+\entry {\code {gettext} library, locale categories}{294}
+\entry {\code {gettext()} function (C library)}{294}
+\entry {\code {gettimeofday()} extension function}{386}
+\entry {\command {git} utility}{387, 422, 425, 427}
+\entry {\command {git}, use of for \command {gawk} source code}{429}
+\entry {GMP}{328}
+\entry {GNITS mailing list}{10}
+\entry {GNU \command {awk}, See \command {gawk}}{3}
+\entry {GNU Free Documentation License}{461}
+\entry {GNU General Public License}{443}
+\entry {GNU Lesser General Public License}{445}
+\entry {GNU long options}{27}
+\entry {GNU long options, printing list of}{30}
+\entry {GNU Project}{8, 443}
+\entry {GNU/Linux}{8, 300, 448}
+\entry {Gordon, Assaf}{404}
+\entry {GPL (General Public License)}{8, 443}
+\entry {GPL (General Public License), printing}{28}
+\entry {\command {grcat} program}{225}
+\entry {Grigera, Juan}{404}
+\entry {group database, reading}{225}
+\entry {group file}{225}
+\entry {group ID of \command {gawk} user}{140}
+\entry {groups\comma {} information about}{225}
+\entry {\code {gsub()} function}{99, 163}
+\entry {\code {gsub()} function, arguments of}{169}
+\entry {\code {gsub()} function, escape processing}{170}
+\initial {H}
+\entry {\code {h} debugger command (alias for \code {help})}{315}
+\entry {Hankerson, Darrel}{10, 404}
+\entry {Haque, John}{404}
+\entry {Hartholz, Elaine}{10}
+\entry {Hartholz, Marshall}{10}
+\entry {Hasegawa, Isamu}{404}
+\entry {\code {help} debugger command}{315}
+\entry {hexadecimal numbers}{97}
+\entry {hexadecimal values\comma {} enabling interpretation of}{30}
+\entry {history expansion, in debugger}{316}
+\entry {\code {histsort.awk} program}{262}
+\entry {Hughes, Phil}{10}
+\entry {\code {HUP} signal, for dynamic profiling}{292}
+\entry {hyphen (\code {-}), \code {-} operator}{117, 118}
+\entry {hyphen (\code {-}), \code {--} operator}{109, 117}
+\entry {hyphen (\code {-}), \code {-=} operator}{107, 118}
+\entry {hyphen (\code {-}), filenames beginning with}{28}
+\entry {hyphen (\code {-}), in bracket expressions}{47}
+\initial {I}
+\entry {\code {i} debugger command (alias for \code {info})}{313}
+\entry {\command {id} utility}{242}
+\entry {\code {id.awk} program}{242}
+\entry {IEEE-754 format}{325}
+\entry {\code {if} statement}{126}
+\entry {\code {if} statement, actions\comma {} changing}{121}
+\entry {\code {if} statement, use of regexps in}{41}
+\entry {\code {igawk.sh} program}{269}
+\entry {ignore breakpoint}{310}
+\entry {\code {ignore} debugger command}{310}
+\entry {\code {IGNORECASE} variable}{136}
+\entry {\code {IGNORECASE} variable, and array indices}{146}
+\entry {\code {IGNORECASE} variable, and array sorting functions}{285}
+\entry {\code {IGNORECASE} variable, in example programs}{201}
+\entry {\code {IGNORECASE} variable, with \code {~} and \code {!~} 
operators}{50}
+\entry {Illumos}{423}
+\entry {Illumos, POSIX-compliant \command {awk}}{423}
+\entry {implementation issues, \command {gawk}}{425}
+\entry {implementation issues, \command {gawk}, limits}{76, 92}
+\entry {implementation issues\comma {} \command {gawk}, debugging}{425}
+\entry {\code {in} operator}{111, 118, 129}
+\entry {\code {in} operator, index existence in multidimensional arrays}{154}
+\entry {\code {in} operator, order of array access}{149}
+\entry {\code {in} operator, testing if array element exists}{147}
+\entry {\code {in} operator, use in loops}{148}
+\entry {increment operators}{108}
+\entry {\code {index()} function}{163}
+\entry {indexing arrays}{146}
+\entry {indirect function calls}{193}
+\entry {infinite precision}{319}
+\entry {\code {info} debugger command}{313}
+\entry {initialization, automatic}{22}
+\entry {\code {inplace} extension}{383}
+\entry {input files}{53}
+\entry {input files, closing}{94}
+\entry {input files, counting elements in}{251}
+\entry {input files, examples}{18}
+\entry {input files, reading}{53}
+\entry {input files, running \command {awk} without}{14}
+\entry {input files, variable assignments and}{33}
+\entry {input pipeline}{74}
+\entry {input record, length of}{164}
+\entry {input redirection}{73}
+\entry {input, data\comma {} nondecimal}{279}
+\entry {input, explicit}{71}
+\entry {input, files, See input files}{69}
+\entry {input, multiline records}{69}
+\entry {input, splitting into records}{53}
+\entry {input, standard}{14, 92}
+\entry {input/output functions}{173}
+\entry {input/output, binary}{135}
+\entry {input/output, from \code {BEGIN} and \code {END}}{123}
+\entry {input/output, two-way}{286}
+\entry {insomnia, cure for}{254}
+\entry {installation, VMS}{417}
+\entry {installing \command {gawk}}{407}
+\entry {instruction tracing, in debugger}{314}
+\entry {\code {INT} signal (MS-Windows)}{292}
+\entry {\code {int()} function}{160}
+\entry {integer array indices}{153}
+\entry {integers}{319}
+\entry {integers, arbitrary precision}{332}
+\entry {integers, unsigned}{319}
+\entry {interacting with other programs}{174}
+\entry {internationalization}{183, 293}
+\entry {internationalization, localization}{137, 293}
+\entry {internationalization, localization, character classes}{48}
+\entry {internationalization, localization, \command {gawk} and}{293}
+\entry {internationalization, localization, locale categories}{294}
+\entry {internationalization, localization, marked strings}{295}
+\entry {internationalization, localization, portability and}{298}
+\entry {internationalizing a program}{293}
+\entry {interpreted programs}{435, 444}
+\entry {interval expressions, regexp operator}{46}
+\entry {\code {inventory-shipped} file}{19}
+\entry {invoke shell command}{174}
+\entry {\code {isarray()} function (\command {gawk})}{183}
+\entry {ISO}{444}
+\entry {ISO 8859-1}{440}
+\entry {ISO Latin-1}{440}
+\initial {J}
+\entry {Jacobs, Andrew}{223}
+\entry {Jaegermann, Michal}{10, 404}
+\entry {Java implementation of \command {awk}}{423}
+\entry {Java programming language}{444}
+\entry {\command {jawk}}{423}
+\entry {Jedi knights}{39}
+\entry {\code {join()} user-defined function}{209}
+\initial {K}
+\entry {Kahrs, J\"urgen}{10, 404}
+\entry {Kasal, Stepan}{10}
+\entry {Kenobi, Obi-Wan}{39}
+\entry {Kernighan, Brian}{4, 7, 10, 74, 104, 201, 393, 403, 421, 437, 441}
+\entry {\command {kill} command\comma {} dynamic profiling}{292}
+\entry {Knights, jedi}{39}
+\entry {Knuth, Donald}{319}
+\entry {Kwok, Conrad}{404}
+\initial {L}
+\entry {\code {l} debugger command (alias for \code {list})}{315}
+\entry {\code {labels.awk} program}{259}
+\entry {languages\comma {} data-driven}{436}
+\entry {Laurie, Dirk}{331}
+\entry {\code {LC_ALL} locale category}{295}
+\entry {\code {LC_COLLATE} locale category}{294}
+\entry {\code {LC_CTYPE} locale category}{294}
+\entry {\code {LC_MESSAGES} locale category}{294}
+\entry {\code {LC_MESSAGES} locale category, \code {bindtextdomain()} function 
(\command {gawk})}{296}
+\entry {\code {LC_MONETARY} locale category}{294}
+\entry {\code {LC_NUMERIC} locale category}{295}
+\entry {\code {LC_RESPONSE} locale category}{295}
+\entry {\code {LC_TIME} locale category}{295}
+\entry {left angle bracket (\code {<}), \code {<} operator}{111, 118}
+\entry {left angle bracket (\code {<}), \code {<} operator (I/O)}{73}
+\entry {left angle bracket (\code {<}), \code {<=} operator}{111, 118}
+\entry {left shift}{181}
+\entry {left shift, bitwise}{181}
+\entry {leftmost longest match}{69}
+\entry {length of input record}{164}
+\entry {length of string}{164}
+\entry {\code {length()} function}{164}
+\entry {Lesser General Public License (LGPL)}{445}
+\entry {LGPL (Lesser General Public License)}{445}
+\entry {libmawk}{423}
+\entry {libraries of \command {awk} functions}{201}
+\entry {libraries of \command {awk} functions, assertions}{204}
+\entry {libraries of \command {awk} functions, associative arrays and}{202}
+\entry {libraries of \command {awk} functions, character values as 
numbers}{207}
+\entry {libraries of \command {awk} functions, command-line options}{216}
+\entry {libraries of \command {awk} functions, example program for using}{268}
+\entry {libraries of \command {awk} functions, group database, reading}{225}
+\entry {libraries of \command {awk} functions, managing, data files}{212}
+\entry {libraries of \command {awk} functions, managing, time}{209}
+\entry {libraries of \command {awk} functions, merging arrays into 
strings}{209}
+\entry {libraries of \command {awk} functions, rounding numbers}{206}
+\entry {libraries of \command {awk} functions, user database, reading}{221}
+\entry {line breaks}{23}
+\entry {line continuations}{114}
+\entry {line continuations, \command {gawk}}{115}
+\entry {line continuations, in \code {print} statement}{82}
+\entry {line continuations, with C shell}{22}
+\entry {lines, blank, printing}{81}
+\entry {lines, counting}{251}
+\entry {lines, duplicate\comma {} removing}{262}
+\entry {lines, matching ranges of}{121}
+\entry {lines, skipping between markers}{121}
+\entry {lint checking}{136}
+\entry {lint checking, array elements}{152}
+\entry {lint checking, array subscripts}{154}
+\entry {lint checking, empty programs}{27}
+\entry {lint checking, issuing warnings}{30}
+\entry {lint checking, \env {POSIXLY_CORRECT} environment variable}{33}
+\entry {lint checking, undefined functions}{191}
+\entry {\code {LINT} variable}{136}
+\entry {Linux}{8, 300, 448}
+\entry {list all global variables, in debugger}{313}
+\entry {\code {list} debugger command}{315}
+\entry {list function definitions, in debugger}{313}
+\entry {loading, library}{30}
+\entry {local variables, in a function}{187}
+\entry {locale categories}{294}
+\entry {locale decimal point character}{31}
+\entry {locale, definition of}{118}
+\entry {localization}{293}
+\entry {localization, See internationalization\comma {} localization}{293}
+\entry {log files, timestamps in}{176}
+\entry {\code {log()} function}{160}
+\entry {logarithm}{160}
+\entry {logical false/true}{109}
+\entry {logical operators, See Boolean expressions}{113}
+\entry {login information}{221}
+\entry {long options}{27}
+\entry {loops}{127}
+\entry {loops, \code {break} statement and}{130}
+\entry {loops, \code {continue} statements and}{129}
+\entry {loops, count for header, in a profile}{291}
+\entry {loops, \code {do}-\code {while}}{128}
+\entry {loops, exiting}{130}
+\entry {loops, \code {for}, array scanning}{148}
+\entry {loops, \code {for}, iterative}{128}
+\entry {loops, See Also \code {while} statement}{127}
+\entry {loops, \code {while}}{127}
+\entry {\command {ls} utility}{22}
+\entry {\code {lshift()} function (\command {gawk})}{181}
+\entry {lvalues/rvalues}{106}
+\initial {M}
+\entry {\code {mail-list} file}{18}
+\entry {mailing labels\comma {} printing}{259}
+\entry {mailing list, GNITS}{10}
+\entry {Malmberg, John}{10, 421}
+\entry {mark parity}{208}
+\entry {marked string extraction (internationalization)}{297}
+\entry {marked strings\comma {} extracting}{297}
+\entry {Marx, Groucho}{109}
+\entry {match regexp in string}{164}
+\entry {\code {match()} function}{164}
+\entry {\code {match()} function, \code {RSTART}/\code {RLENGTH} 
variables}{164}
+\entry {matching, expressions, See comparison expressions}{110}
+\entry {matching, leftmost longest}{69}
+\entry {matching, null strings}{173}
+\entry {\command {mawk} utility}{44, 75, 105, 133, 422}
+\entry {maximum precision supported by MPFR library}{141}
+\entry {McPhee, Patrick}{404}
+\entry {message object files}{294}
+\entry {message object files, converting from portable object files}{300}
+\entry {message object files, specifying directory of}{294, 295}
+\entry {messages from extensions}{351}
+\entry {metacharacters in regular expressions}{44}
+\entry {metacharacters, escape sequences for}{44}
+\entry {minimum precision supported by MPFR library}{141}
+\entry {\code {mktime()} function (\command {gawk})}{177}
+\entry {modifiers\comma {} in format specifiers}{86}
+\entry {monetary information, localization}{294}
+\entry {MPFR}{328}
+\entry {\command {msgfmt} utility}{300}
+\entry {multiple precision}{319}
+\entry {multiple-line records}{69}
+\initial {N}
+\entry {\code {n} debugger command (alias for \code {next})}{310}
+\entry {names, arrays/variables}{145, 202}
+\entry {names, functions}{184, 202}
+\entry {namespace issues}{145, 202}
+\entry {namespace issues, functions}{184}
+\entry {\command {nawk} utility}{4}
+\entry {negative zero}{321}
+\entry {NetBSD}{448}
+\entry {networks, programming}{287}
+\entry {networks, support for}{93}
+\entry {newlines}{23, 31, 114}
+\entry {newlines, as field separators}{61}
+\entry {newlines, as record separators}{53}
+\entry {newlines, in dynamic regexps}{52}
+\entry {newlines, in regexp constants}{52}
+\entry {newlines, printing}{81}
+\entry {newlines, separating statements in actions}{125, 126}
+\entry {\code {next} debugger command}{310}
+\entry {\code {next file} statement}{398}
+\entry {\code {next} statement}{115, 132}
+\entry {\code {next} statement, \code {BEGIN}/\code {END} patterns and}{123}
+\entry {\code {next} statement, \code {BEGINFILE}/\code {ENDFILE} patterns 
and}{124}
+\entry {\code {next} statement, user-defined functions and}{133}
+\entry {\code {nextfile} statement}{133}
+\entry {\code {nextfile} statement, \code {BEGIN}/\code {END} patterns 
and}{123}
+\entry {\code {nextfile} statement, \code {BEGINFILE}/\code {ENDFILE} patterns 
and}{124}
+\entry {\code {nextfile} statement, user-defined functions and}{133}
+\entry {\code {nexti} debugger command}{310}
+\entry {\code {NF} variable}{57, 139}
+\entry {\code {NF} variable, decrementing}{60}
+\entry {\code {ni} debugger command (alias for \code {nexti})}{310}
+\entry {\code {noassign.awk} program}{216}
+\entry {non-existent array elements}{147}
+\entry {not Boolean-logic operator}{113}
+\entry {\code {NR} variable}{53, 139}
+\entry {\code {NR} variable, changing}{143}
+\entry {null strings}{55, 62, 109, 437}
+\entry {null strings in \command {gawk} arguments, quoting and}{17}
+\entry {null strings, and deleting array elements}{152}
+\entry {null strings, as array subscripts}{154}
+\entry {null strings, converting numbers to strings}{101}
+\entry {null strings, matching}{173}
+\entry {number as string of bits}{183}
+\entry {number of array elements}{164}
+\entry {number sign (\code {#}), \code {#!} (executable scripts)}{15}
+\entry {number sign (\code {#}), commenting}{16}
+\entry {numbers, as array subscripts}{153}
+\entry {numbers, as values of characters}{207}
+\entry {numbers, Cliff random}{206}
+\entry {numbers, converting}{101, 183}
+\entry {numbers, converting, to strings}{135, 136}
+\entry {numbers, floating-point}{319}
+\entry {numbers, hexadecimal}{97}
+\entry {numbers, octal}{97}
+\entry {numbers, rounding}{206}
+\entry {numeric constants}{97}
+\entry {numeric functions}{159}
+\entry {numeric, output format}{84}
+\entry {numeric, strings}{110}
+\initial {O}
+\entry {\code {o} debugger command (alias for \code {option})}{314}
+\entry {\command {oawk} utility}{4}
+\entry {obsolete features}{39}
+\entry {octal numbers}{97}
+\entry {octal values\comma {} enabling interpretation of}{30}
+\entry {\code {OFMT} variable}{84, 102, 136}
+\entry {\code {OFMT} variable, POSIX \command {awk} and}{84}
+\entry {\code {OFS} variable}{59, 83, 137}
+\entry {OpenBSD}{448}
+\entry {OpenSolaris}{422}
+\entry {operating systems, BSD-based}{8}
+\entry {operating systems, PC, \command {gawk} on}{415}
+\entry {operating systems, PC\comma {} \command {gawk} on, installing}{413}
+\entry {operating systems, porting \command {gawk} to}{427}
+\entry {operating systems, See Also GNU/Linux\comma {} PC operating 
systems\comma {} Unix}{407}
+\entry {operations, bitwise}{181}
+\entry {operators, arithmetic}{103}
+\entry {operators, assignment}{106}
+\entry {operators, assignment, evaluation order}{107}
+\entry {operators, Boolean, See Boolean expressions}{113}
+\entry {operators, decrement/increment}{108}
+\entry {operators, GNU-specific}{48}
+\entry {operators, input/output}{73, 74, 75, 90, 91, 118}
+\entry {operators, logical, See Boolean expressions}{113}
+\entry {operators, precedence}{109, 117}
+\entry {operators, relational, See operators\comma {} comparison}{110}
+\entry {operators, short-circuit}{114}
+\entry {operators, string}{104}
+\entry {operators, string-matching}{41}
+\entry {operators, string-matching, for buffers}{49}
+\entry {operators, word-boundary (\command {gawk})}{49}
+\entry {\code {option} debugger command}{314}
+\entry {options, command-line}{27}
+\entry {options, command-line, end of}{28}
+\entry {options, command-line, invoking \command {awk}}{27}
+\entry {options, command-line, processing}{216}
+\entry {options, deprecated}{39}
+\entry {options, long}{27}
+\entry {options, printing list of}{30}
+\entry {OR bitwise operation}{181}
+\entry {or Boolean-logic operator}{113}
+\entry {\code {or()} function (\command {gawk})}{181}
+\entry {\code {ord()} extension function}{383}
+\entry {\code {ord()} user-defined function}{207}
+\entry {order of evaluation, concatenation}{105}
+\entry {\code {ORS} variable}{83, 137}
+\entry {output field separator, See \code {OFS} variable}{59}
+\entry {output record separator, See \code {ORS} variable}{83}
+\entry {output redirection}{90}
+\entry {output wrapper}{349}
+\entry {output, buffering}{173, 176}
+\entry {output, duplicating into files}{246}
+\entry {output, files\comma {} closing}{94}
+\entry {output, format specifier\comma {} \code {OFMT}}{84}
+\entry {output, formatted}{84}
+\entry {output, pipes}{90}
+\entry {output, printing, See printing}{81}
+\entry {output, records}{83}
+\entry {output, standard}{92}
+\initial {P}
+\entry {\code {p} debugger command (alias for \code {print})}{311}
+\entry {P1003.1 POSIX standard}{445}
+\entry {parent process ID of \command {gawk} process}{140}
+\entry {parentheses \code {()}, in a profile}{291}
+\entry {parentheses \code {()}, regexp operator}{45}
+\entry {password file}{221}
+\entry {\code {patsplit()} function (\command {gawk})}{166}
+\entry {patterns}{119}
+\entry {patterns, comparison expressions as}{120}
+\entry {patterns, counts, in a profile}{291}
+\entry {patterns, default}{20}
+\entry {patterns, empty}{124}
+\entry {patterns, expressions as}{119}
+\entry {patterns, ranges in}{121}
+\entry {patterns, regexp constants as}{120}
+\entry {patterns, types of}{119}
+\entry {\command {pawk} (profiling version of Brian Kernighan's \command 
{awk})}{422}
+\entry {\code {pawk}, \command {awk}-like facilities for Python}{423}
+\entry {PC operating systems, \command {gawk} on}{415}
+\entry {PC operating systems\comma {} \command {gawk} on, installing}{413}
+\entry {percent sign (\code {%}), \code {%} operator}{117}
+\entry {percent sign (\code {%}), \code {%=} operator}{107, 118}
+\entry {period (\code {.}), regexp operator}{45}
+\entry {Perl}{430}
+\entry {Peters, Arno}{404}
+\entry {Peterson, Hal}{404}
+\entry {pipe, closing}{94}
+\entry {pipe, input}{74}
+\entry {pipe, output}{90}
+\entry {Pitts, Dave}{10, 421}
+\entry {Plauger, P.J.\:}{201}
+\entry {plug-in}{335}
+\entry {plus sign (\code {+}), \code {+} operator}{117, 118}
+\entry {plus sign (\code {+}), \code {++} operator}{108, 109, 117}
+\entry {plus sign (\code {+}), \code {+=} operator}{107, 118}
+\entry {plus sign (\code {+}), regexp operator}{45}
+\entry {pointers to functions}{193}
+\entry {portability}{43}
+\entry {portability, \code {#!} (executable scripts)}{16}
+\entry {portability, \code {**} operator and}{104}
+\entry {portability, \code {**=} operator and}{108}
+\entry {portability, \code {ARGV} variable}{16}
+\entry {portability, backslash continuation and}{23}
+\entry {portability, backslash in escape sequences}{44}
+\entry {portability, \code {close()} function and}{95}
+\entry {portability, data files as single record}{56}
+\entry {portability, deleting array elements}{152}
+\entry {portability, example programs}{201}
+\entry {portability, functions\comma {} defining}{185}
+\entry {portability, \command {gawk}}{427}
+\entry {portability, \code {gettext} library and}{293}
+\entry {portability, internationalization and}{298}
+\entry {portability, \code {length()} function}{164}
+\entry {portability, new \command {awk} vs.\: old \command {awk}}{102}
+\entry {portability, \code {next} statement in user-defined functions}{191}
+\entry {portability, \code {NF} variable\comma {} decrementing}{60}
+\entry {portability, operators}{109}
+\entry {portability, operators, not in POSIX \command {awk}}{118}
+\entry {portability, \env {POSIXLY_CORRECT} environment variable}{33}
+\entry {portability, \code {substr()} function}{169}
+\entry {portable object files}{293, 297}
+\entry {portable object files, converting to message object files}{300}
+\entry {portable object files, generating}{29}
+\entry {portable object template files}{293}
+\entry {porting \command {gawk}}{427}
+\entry {positional specifiers, \code {printf} statement}{86, 297}
+\entry {positional specifiers, \code {printf} statement, mixing with regular 
formats}{298}
+\entry {positive zero}{321}
+\entry {POSIX \command {awk}}{5, 108}
+\entry {POSIX \command {awk}, \code {**} operator and}{118}
+\entry {POSIX \command {awk}, \code {**=} operator and}{108}
+\entry {POSIX \command {awk}, \code {<} operator and}{73}
+\entry {POSIX \command {awk}, \code {|} I/O operator and}{75}
+\entry {POSIX \command {awk}, arithmetic operators and}{104}
+\entry {POSIX \command {awk}, backslashes in string constants}{44}
+\entry {POSIX \command {awk}, \code {BEGIN}/\code {END} patterns}{123}
+\entry {POSIX \command {awk}, bracket expressions and}{47}
+\entry {POSIX \command {awk}, bracket expressions and, character classes}{47, 
48}
+\entry {POSIX \command {awk}, \code {break} statement and}{131}
+\entry {POSIX \command {awk}, changes in \command {awk} versions}{392}
+\entry {POSIX \command {awk}, \code {continue} statement and}{132}
+\entry {POSIX \command {awk}, \code {CONVFMT} variable and}{135}
+\entry {POSIX \command {awk}, \code {date} utility and}{180}
+\entry {POSIX \command {awk}, field separators and}{56, 65}
+\entry {POSIX \command {awk}, \code {FS} variable and}{136}
+\entry {POSIX \command {awk}, \code {function} keyword in}{185}
+\entry {POSIX \command {awk}, functions and, \code {gsub()}/\code {sub()}}{171}
+\entry {POSIX \command {awk}, functions and, \code {length()}}{164}
+\entry {POSIX \command {awk}, GNU long options and}{27}
+\entry {POSIX \command {awk}, interval expressions in}{46}
+\entry {POSIX \command {awk}, \code {next}/\code {nextfile} statements 
and}{133}
+\entry {POSIX \command {awk}, numeric strings and}{110}
+\entry {POSIX \command {awk}, \code {OFMT} variable and}{84, 102}
+\entry {POSIX \command {awk}, period (\code {.})\comma {} using}{45}
+\entry {POSIX \command {awk}, \code {printf} format strings and}{88}
+\entry {POSIX \command {awk}, regular expressions and}{46}
+\entry {POSIX \command {awk}, timestamps and}{176}
+\entry {POSIX mode}{31, 33}
+\entry {POSIX, \command {awk} and}{3}
+\entry {POSIX, \command {gawk} extensions not included in}{393}
+\entry {POSIX, programs\comma {} implementing in \command {awk}}{233}
+\entry {\env {POSIXLY_CORRECT} environment variable}{33}
+\entry {\code {PREC} variable}{137, 329}
+\entry {precedence}{109, 117}
+\entry {precedence, regexp operators}{46}
+\entry {\code {print} debugger command}{311}
+\entry {\code {print} statement}{81}
+\entry {\code {print} statement, \code {BEGIN}/\code {END} patterns and}{123}
+\entry {\code {print} statement, commas, omitting}{82}
+\entry {\code {print} statement, I/O operators in}{118}
+\entry {\code {print} statement, line continuations and}{82}
+\entry {\code {print} statement, \code {OFMT} variable and}{137}
+\entry {\code {print} statement, See Also redirection\comma {} of output}{90}
+\entry {\code {print} statement, \code {sprintf()} function and}{206}
+\entry {print variables, in debugger}{311}
+\entry {\code {printf} debugger command}{312}
+\entry {\code {printf} statement}{81, 84}
+\entry {\code {printf} statement, columns\comma {} aligning}{82}
+\entry {\code {printf} statement, format-control characters}{85}
+\entry {\code {printf} statement, I/O operators in}{118}
+\entry {\code {printf} statement, modifiers}{86}
+\entry {\code {printf} statement, positional specifiers}{86, 297}
+\entry {\code {printf} statement, positional specifiers, mixing with regular 
formats}{298}
+\entry {\code {printf} statement, See Also redirection\comma {} of output}{90}
+\entry {\code {printf} statement, \code {sprintf()} function and}{206}
+\entry {\code {printf} statement, syntax of}{84}
+\entry {printing}{81}
+\entry {printing messages from extensions}{351}
+\entry {printing, list of options}{30}
+\entry {printing, mailing labels}{259}
+\entry {printing, unduplicated lines of text}{247}
+\entry {printing, user information}{242}
+\entry {private variables}{202}
+\entry {process group idIDof \command {gawk} process}{140}
+\entry {process ID of \command {gawk} process}{140}
+\entry {processes, two-way communications with}{286}
+\entry {processing data}{435}
+\entry {\code {PROCINFO} array}{139, 177, 221}
+\entry {\code {PROCINFO} array, and communications via ptys}{287}
+\entry {\code {PROCINFO} array, and group membership}{225}
+\entry {\code {PROCINFO} array, and user and group ID numbers}{242}
+\entry {\code {PROCINFO} array, testing the field splitting}{224}
+\entry {\code {PROCINFO} array, uses}{141}
+\entry {\code {PROCINFO}, values of \code {sorted_in}}{150}
+\entry {profiling \command {awk} programs}{289}
+\entry {profiling \command {awk} programs, dynamically}{291}
+\entry {program identifiers}{140}
+\entry {program, definition of}{13}
+\entry {programmers, attractiveness of}{285}
+\entry {programming conventions, \code {--non-decimal-data} option}{279}
+\entry {programming conventions, \code {ARGC}/\code {ARGV} variables}{138}
+\entry {programming conventions, \code {exit} statement}{134}
+\entry {programming conventions, function parameters}{191}
+\entry {programming conventions, functions, calling}{159}
+\entry {programming conventions, functions, writing}{185}
+\entry {programming conventions, \command {gawk} extensions}{371}
+\entry {programming conventions, private variable names}{202}
+\entry {programming language, recipe for}{4}
+\entry {programming languages, Ada}{439}
+\entry {programming languages, Java}{444}
+\entry {programming languages\comma {} data-driven vs.\: procedural}{13}
+\entry {programming, basic steps}{435}
+\entry {programming, concepts}{435}
+\entry {\command {pwcat} program}{221}
+\initial {Q}
+\entry {\code {q} debugger command (alias for \code {quit})}{316}
+\entry {QSE Awk}{423}
+\entry {Quanstrom, Erik}{254}
+\entry {question mark (\code {?}), \code {?:} operator}{118}
+\entry {question mark (\code {?}), regexp operator}{46, 49}
+\entry {QuikTrim Awk}{423}
+\entry {\code {quit} debugger command}{316}
+\entry {\code {QUIT} signal (MS-Windows)}{292}
+\entry {quoting in \command {gawk} command lines}{15}
+\entry {quoting in \command {gawk} command lines, tricks for}{17}
+\entry {quoting, for small awk programs}{16}
+\initial {R}
+\entry {\code {r} debugger command (alias for \code {run})}{311}
+\entry {Rakitzis, Byron}{262}
+\entry {Ramey, Chet}{10, 339}
+\entry {\code {rand()} function}{160}
+\entry {random numbers, Cliff}{206}
+\entry {random numbers, \code {rand()}/\code {srand()} functions}{160}
+\entry {random numbers, seed of}{160}
+\entry {range expressions (regexps)}{47}
+\entry {range patterns}{121}
+\entry {range patterns, line continuation and}{122}
+\entry {Rankin, Pat}{10, 107, 404, 421}
+\entry {\code {reada()} extension function}{385}
+\entry {readable data files\comma {} checking}{214}
+\entry {\code {readable.awk} program}{214}
+\entry {\code {readdir} extension}{384}
+\entry {\code {readfile()} extension function}{386}
+\entry {\code {readfile()} user-defined function}{211}
+\entry {reading input files}{53}
+\entry {recipe for a programming language}{4}
+\entry {record separators}{53, 137}
+\entry {record separators, changing}{54}
+\entry {record separators, regular expressions as}{55}
+\entry {record separators, with multiline records}{69}
+\entry {records}{53, 436}
+\entry {records, multiline}{69}
+\entry {records, printing}{81}
+\entry {records, splitting input into}{53}
+\entry {records, terminating}{55}
+\entry {records, treating files as}{56}
+\entry {recursive functions}{185}
+\entry {redirect \command {gawk} output, in debugger}{314}
+\entry {redirection of input}{73}
+\entry {redirection of output}{90}
+\entry {reference counting, sorting arrays}{285}
+\entry {regexp}{41}
+\entry {regexp constants}{42, 98, 113}
+\entry {regexp constants, \code {/=\dots {}/}, \code {/=} operator and}{108}
+\entry {regexp constants, as patterns}{120}
+\entry {regexp constants, in \command {gawk}}{99}
+\entry {regexp constants, slashes vs.\: quotes}{51}
+\entry {regexp constants, vs.\: string constants}{51}
+\entry {register extension}{344}
+\entry {regular expressions}{41}
+\entry {regular expressions as field separators}{61}
+\entry {regular expressions, anchors in}{44}
+\entry {regular expressions, as field separators}{61}
+\entry {regular expressions, as patterns}{41, 119}
+\entry {regular expressions, as record separators}{55}
+\entry {regular expressions, case sensitivity}{49, 136}
+\entry {regular expressions, computed}{51}
+\entry {regular expressions, constants, See regexp constants}{42}
+\entry {regular expressions, dynamic}{51}
+\entry {regular expressions, dynamic, with embedded newlines}{52}
+\entry {regular expressions, \command {gawk}, command-line options}{49}
+\entry {regular expressions, interval expressions and}{32}
+\entry {regular expressions, leftmost longest match}{50}
+\entry {regular expressions, operators}{41, 44}
+\entry {regular expressions, operators, for buffers}{49}
+\entry {regular expressions, operators, for words}{48}
+\entry {regular expressions, operators, \command {gawk}}{48}
+\entry {regular expressions, operators, precedence of}{46}
+\entry {regular expressions, searching for}{238}
+\entry {relational operators, See comparison operators}{110}
+\entry {replace in string}{168}
+\entry {\code {return} debugger command}{310}
+\entry {\code {return} statement\comma {} user-defined functions}{191}
+\entry {return value\comma {} \code {close()} function}{96}
+\entry {\code {rev()} user-defined function}{186}
+\entry {\code {revoutput} extension}{384}
+\entry {\code {revtwoway} extension}{385}
+\entry {\code {rewind()} user-defined function}{214}
+\entry {right angle bracket (\code {>}), \code {>} operator}{111, 118}
+\entry {right angle bracket (\code {>}), \code {>} operator (I/O)}{90}
+\entry {right angle bracket (\code {>}), \code {>=} operator}{111, 118}
+\entry {right angle bracket (\code {>}), \code {>>} operator (I/O)}{90, 118}
+\entry {right shift}{182}
+\entry {right shift, bitwise}{181}
+\entry {Ritchie, Dennis}{437}
+\entry {\code {RLENGTH} variable}{141}
+\entry {\code {RLENGTH} variable, \code {match()} function and}{164}
+\entry {Robbins, Arnold}{64, 75, 223, 254, 339, 405, 420, 430}
+\entry {Robbins, Bill}{75}
+\entry {Robbins, Harry}{10}
+\entry {Robbins, Jean}{10}
+\entry {Robbins, Miriam}{10, 75, 223}
+\entry {Rommel, Kai Uwe}{404}
+\entry {round to nearest integer}{160}
+\entry {\code {round()} user-defined function}{206}
+\entry {rounding mode, floating-point}{326}
+\entry {rounding numbers}{206}
+\entry {\code {ROUNDMODE} variable}{137, 330}
+\entry {\code {RS} variable}{53, 137}
+\entry {\code {RS} variable, multiline records and}{69}
+\entry {\code {rshift()} function (\command {gawk})}{182}
+\entry {\code {RSTART} variable}{141}
+\entry {\code {RSTART} variable, \code {match()} function and}{164}
+\entry {\code {RT} variable}{55, 71, 142}
+\entry {Rubin, Paul}{4, 403}
+\entry {rule, definition of}{13}
+\entry {\code {run} debugger command}{311}
+\entry {rvalues/lvalues}{106}
+\initial {S}
+\entry {\code {s} debugger command (alias for \code {step})}{311}
+\entry {sample debugging session}{304}
+\entry {sandbox mode}{32}
+\entry {save debugger options}{314}
+\entry {scalar or array}{183}
+\entry {scalar values}{436}
+\entry {scanning arrays}{148}
+\entry {scanning multidimensional arrays}{155}
+\entry {Schorr, Andrew}{10, 405}
+\entry {Schreiber, Bert}{10}
+\entry {Schreiber, Rita}{10}
+\entry {search and replace in strings}{162}
+\entry {search in string}{163}
+\entry {search paths}{274, 415, 419}
+\entry {search paths, for shared libraries}{35}
+\entry {search paths, for source files}{34, 274, 415, 419}
+\entry {searching, files for regular expressions}{238}
+\entry {searching, for words}{253}
+\entry {\command {sed} utility}{65, 266, 439}
+\entry {seeding random number generator}{160}
+\entry {semicolon (\code {;}), \code {AWKPATH} variable and}{415}
+\entry {semicolon (\code {;}), separating statements in actions}{24, 125, 126}
+\entry {separators, field}{135, 137}
+\entry {separators, field, \code {FIELDWIDTHS} variable and}{135}
+\entry {separators, field, \code {FPAT} variable and}{135}
+\entry {separators, field, POSIX and}{56}
+\entry {separators, for records}{53, 54, 137}
+\entry {separators, for records, regular expressions as}{55}
+\entry {separators, for statements in actions}{125}
+\entry {separators, subscript}{137}
+\entry {set breakpoint}{308}
+\entry {\code {set} debugger command}{312}
+\entry {set directory of message catalogs}{183}
+\entry {set watchpoint}{312}
+\entry {setting rounding mode}{330}
+\entry {setting working precision}{329}
+\entry {shadowing of variable values}{185}
+\entry {shell quoting, double quote}{14}
+\entry {shell quoting, rules for}{17}
+\entry {shells, piping commands into}{92}
+\entry {shells, quoting}{124}
+\entry {shells, quoting, rules for}{17}
+\entry {shells, scripts}{13}
+\entry {shells, sea}{39}
+\entry {shells, variables}{124}
+\entry {shift, bitwise}{181}
+\entry {short-circuit operators}{114}
+\entry {show all source files, in debugger}{313}
+\entry {show breakpoints}{313}
+\entry {show function arguments, in debugger}{313}
+\entry {show local variables, in debugger}{313}
+\entry {show name of current source file, in debugger}{313}
+\entry {show watchpoints}{313}
+\entry {\code {si} debugger command (alias for \code {stepi})}{311}
+\entry {side effects}{105, 108, 109}
+\entry {side effects, array indexing}{147}
+\entry {side effects, \code {asort()} function}{284}
+\entry {side effects, assignment expressions}{106}
+\entry {side effects, Boolean operators}{114}
+\entry {side effects, conditional expressions}{115}
+\entry {side effects, decrement/increment operators}{108}
+\entry {side effects, \code {FILENAME} variable}{76}
+\entry {side effects, function calls}{116}
+\entry {side effects, statements}{126}
+\entry {sidebar, A Constant's Base Does Not Affect Its Value}{98}
+\entry {sidebar, Backslash Before Regular Characters}{44}
+\entry {sidebar, Changing \code {FS} Does Not Affect the Fields}{65}
+\entry {sidebar, Changing \code {NR} and \code {FNR}}{143}
+\entry {sidebar, Controlling Output Buffering with \code {system()}}{175}
+\entry {sidebar, Escape Sequences for Metacharacters}{44}
+\entry {sidebar, \code {FS} and \code {IGNORECASE}}{65}
+\entry {sidebar, Interactive Versus Noninteractive Buffering}{175}
+\entry {sidebar, Matching the Null String}{173}
+\entry {sidebar, Operator Evaluation Order}{109}
+\entry {sidebar, Piping into \command {sh}}{92}
+\entry {sidebar, Portability Issues with \samp {#!}}{15}
+\entry {sidebar, Recipe For A Programming Language}{4}
+\entry {sidebar, \code {RS = "{\tt \backslashcurfont }0"} Is Not Portable}{56}
+\entry {sidebar, So Why Does \command {gawk} have \code {BEGINFILE} and \code 
{ENDFILE}?}{213}
+\entry {sidebar, Syntactic Ambiguities Between \samp {/=} and Regular 
Expressions}{108}
+\entry {sidebar, Understanding \code {$0}}{60}
+\entry {sidebar, Using \code {{\tt \backslashcurfont }n} in Bracket 
Expressions of Dynamic Regexps}{52}
+\entry {sidebar, Using \code {close()}'s Return Value}{96}
+\entry {\code {SIGHUP} signal, for dynamic profiling}{292}
+\entry {\code {SIGINT} signal (MS-Windows)}{292}
+\entry {signals, \code {HUP}/\code {SIGHUP}, for profiling}{292}
+\entry {signals, \code {INT}/\code {SIGINT} (MS-Windows)}{292}
+\entry {signals, \code {QUIT}/\code {SIGQUIT} (MS-Windows)}{292}
+\entry {signals, \code {USR1}/\code {SIGUSR1}, for profiling}{292}
+\entry {signature program}{276}
+\entry {\code {SIGQUIT} signal (MS-Windows)}{292}
+\entry {\code {SIGUSR1} signal, for dynamic profiling}{292}
+\entry {\code {silent} debugger command}{310}
+\entry {\code {sin()} function}{161}
+\entry {sine}{161}
+\entry {single precision floating-point}{319}
+\entry {single quote (\code {'})}{13}
+\entry {single quote (\code {'}) in \command {gawk} command lines}{15}
+\entry {single quote (\code {'}), in shell commands}{17}
+\entry {single quote (\code {'}), vs.\: apostrophe}{16}
+\entry {single quote (\code {'}), with double quotes}{17}
+\entry {single-character fields}{63}
+\entry {single-step execution, in the debugger}{310}
+\entry {Skywalker, Luke}{39}
+\entry {\command {sleep} utility}{256}
+\entry {\code {sleep()} extension function}{386}
+\entry {Solaris, POSIX-compliant \command {awk}}{422}
+\entry {sort array}{161}
+\entry {sort array indices}{161}
+\entry {sort function, arrays, sorting}{284}
+\entry {\command {sort} utility}{261}
+\entry {\command {sort} utility, coprocesses and}{287}
+\entry {sorting characters in different languages}{294}
+\entry {source code, \command {awka}}{422}
+\entry {source code, Brian Kernighan's \command {awk}}{421}
+\entry {source code, Busybox Awk}{422}
+\entry {source code, \command {gawk}}{407}
+\entry {source code, Illumos \command {awk}}{423}
+\entry {source code, \command {jawk}}{423}
+\entry {source code, libmawk}{423}
+\entry {source code, \command {mawk}}{422}
+\entry {source code, mixing}{29}
+\entry {source code, \command {pawk}}{422}
+\entry {source code, \command {pawk} (Python version)}{423}
+\entry {source code, QSE Awk}{423}
+\entry {source code, QuikTrim Awk}{423}
+\entry {source code, Solaris \command {awk}}{422}
+\entry {source files\comma {} search path for}{274}
+\entry {sparse arrays}{146}
+\entry {Spencer, Henry}{439}
+\entry {split string into array}{166}
+\entry {\code {split} utility}{244}
+\entry {\code {split()} function}{166}
+\entry {\code {split()} function, array elements\comma {} deleting}{152}
+\entry {\code {split.awk} program}{244}
+\entry {\code {sprintf()} function}{84, 167}
+\entry {\code {sprintf()} function, \code {OFMT} variable and}{137}
+\entry {\code {sprintf()} function, \code {print}/\code {printf} statements 
and}{206}
+\entry {\code {sqrt()} function}{161}
+\entry {square brackets (\code {[]}), regexp operator}{45}
+\entry {square root}{161}
+\entry {\code {srand()} function}{161}
+\entry {stack frame}{303}
+\entry {Stallman, Richard}{8, 9, 403, 443}
+\entry {standard error}{92}
+\entry {standard input}{14, 92}
+\entry {standard output}{92}
+\entry {starting the debugger}{305}
+\entry {\code {stat()} extension function}{378}
+\entry {statements, compound\comma {} control statements and}{126}
+\entry {statements, control, in actions}{126}
+\entry {statements, multiple}{24}
+\entry {\code {step} debugger command}{311}
+\entry {\code {stepi} debugger command}{311}
+\entry {stop automatic display, in debugger}{312}
+\entry {stream editors}{65, 266}
+\entry {\code {strftime()} function (\command {gawk})}{177}
+\entry {string constants}{97}
+\entry {string constants, vs.\: regexp constants}{51}
+\entry {string extraction (internationalization)}{297}
+\entry {string length}{164}
+\entry {string operators}{104}
+\entry {string, regular expression match}{164}
+\entry {string-manipulation functions}{161}
+\entry {string-matching operators}{41}
+\entry {string-translation functions}{183}
+\entry {strings splitting, example}{166}
+\entry {strings, converting}{101, 183}
+\entry {strings, converting letter case}{169}
+\entry {strings, converting, numbers to}{135, 136}
+\entry {strings, empty, See null strings}{55}
+\entry {strings, extracting}{297}
+\entry {strings, for localization}{295}
+\entry {strings, length limitations}{97}
+\entry {strings, merging arrays into}{209}
+\entry {strings, null}{62}
+\entry {strings, numeric}{110}
+\entry {\code {strtonum()} function (\command {gawk})}{167}
+\entry {\code {strtonum()} function (\command {gawk}), \code 
{--non-decimal-data} option and}{279}
+\entry {\code {sub()} function}{99, 168}
+\entry {\code {sub()} function, arguments of}{169}
+\entry {\code {sub()} function, escape processing}{170}
+\entry {subscript separators}{137}
+\entry {subscripts in arrays, multidimensional}{154}
+\entry {subscripts in arrays, multidimensional, scanning}{155}
+\entry {subscripts in arrays, numbers as}{153}
+\entry {subscripts in arrays, uninitialized variables as}{153}
+\entry {\code {SUBSEP} variable}{137}
+\entry {\code {SUBSEP} variable, and multidimensional arrays}{154}
+\entry {substitute in string}{162}
+\entry {\code {substr()} function}{169}
+\entry {substring}{169}
+\entry {Sumner, Andrew}{422}
+\entry {supplementary groups of \command {gawk} process}{141}
+\entry {\code {switch} statement}{129}
+\entry {\code {SYMTAB} array}{142}
+\entry {syntactic ambiguity: \code {/=} operator vs. \code {/=\dots {}/} 
regexp constant}{108}
+\entry {\code {system()} function}{174}
+\entry {\code {systime()} function (\command {gawk})}{177}
+\initial {T}
+\entry {\code {t} debugger command (alias for \code {tbreak})}{310}
+\entry {\code {tbreak} debugger command}{310}
+\entry {Tcl}{202}
+\entry {TCP/IP}{287}
+\entry {TCP/IP, support for}{93}
+\entry {\code {tee} utility}{246}
+\entry {\code {tee.awk} program}{246}
+\entry {temporary breakpoint}{310}
+\entry {terminating records}{55}
+\entry {\code {testbits.awk} program}{182}
+\entry {\code {testext} extension}{386}
+\entry {Texinfo}{7, 201, 253, 263, 409, 427}
+\entry {Texinfo, chapter beginnings in files}{44}
+\entry {Texinfo, extracting programs from source files}{263}
+\entry {text, printing}{81}
+\entry {text\comma {} printing, unduplicated lines of}{247}
+\entry {\code {TEXTDOMAIN} variable}{137, 295}
+\entry {\code {TEXTDOMAIN} variable, \code {BEGIN} pattern and}{296}
+\entry {\code {TEXTDOMAIN} variable, portability and}{298}
+\entry {\code {textdomain()} function (C library)}{293}
+\entry {tilde (\code {~}), \code {~} operator}{41, 50, 51, 98, 111, 113, 118, 
120}
+\entry {time functions}{176}
+\entry {time, alarm clock example program}{254}
+\entry {time, localization and}{295}
+\entry {time, managing}{209}
+\entry {time, retrieving}{176}
+\entry {timeout, reading input}{77}
+\entry {timestamps}{176, 177}
+\entry {timestamps, converting dates to}{177}
+\entry {timestamps, formatted}{209}
+\entry {\code {tolower()} function}{170}
+\entry {\code {toupper()} function}{170}
+\entry {\command {tr} utility}{257}
+\entry {\code {trace} debugger command}{316}
+\entry {traceback, display in debugger}{312}
+\entry {translate string}{183}
+\entry {\code {translate.awk} program}{257}
+\entry {treating files, as single records}{56}
+\entry {troubleshooting, \code {--non-decimal-data} option}{30}
+\entry {troubleshooting, \code {==} operator}{112}
+\entry {troubleshooting, \command {awk} uses \code {FS} not \code {IFS}}{61}
+\entry {troubleshooting, backslash before nonspecial character}{44}
+\entry {troubleshooting, division}{104}
+\entry {troubleshooting, fatal errors, field widths\comma {} specifying}{66}
+\entry {troubleshooting, fatal errors, \code {printf} format strings}{88}
+\entry {troubleshooting, \code {fflush()} function}{174}
+\entry {troubleshooting, function call syntax}{116}
+\entry {troubleshooting, \command {gawk}}{425}
+\entry {troubleshooting, \command {gawk}, bug reports}{420}
+\entry {troubleshooting, \command {gawk}, fatal errors\comma {} function 
arguments}{159}
+\entry {troubleshooting, \code {getline} function}{215}
+\entry {troubleshooting, \code {gsub()}/\code {sub()} functions}{169}
+\entry {troubleshooting, \code {match()} function}{166}
+\entry {troubleshooting, \code {patsplit()} function}{166}
+\entry {troubleshooting, \code {print} statement\comma {} omitting commas}{82}
+\entry {troubleshooting, printing}{91}
+\entry {troubleshooting, quotes with file names}{93}
+\entry {troubleshooting, readable data files}{214}
+\entry {troubleshooting, regexp constants vs.\: string constants}{51}
+\entry {troubleshooting, string concatenation}{105}
+\entry {troubleshooting, \code {substr()} function}{169}
+\entry {troubleshooting, \code {system()} function}{174}
+\entry {troubleshooting, typographical errors\comma {} global variables}{29}
+\entry {true, logical}{109}
+\entry {Trueman, David}{4, 10, 403}
+\entry {trunc-mod operation}{104}
+\entry {truth values}{109}
+\entry {type conversion}{101}
+\initial {U}
+\entry {\code {u} debugger command (alias for \code {until})}{311}
+\entry {unassigned array elements}{147}
+\entry {undefined functions}{190}
+\entry {underscore (\code {_}), C macro}{294}
+\entry {underscore (\code {_}), in names of private variables}{202}
+\entry {underscore (\code {_}), translatable string}{296}
+\entry {\code {undisplay} debugger command}{312}
+\entry {undocumented features}{39}
+\entry {Unicode}{208, 402, 440}
+\entry {uninitialized variables, as array subscripts}{153}
+\entry {\command {uniq} utility}{247}
+\entry {\code {uniq.awk} program}{248}
+\entry {Unix}{448}
+\entry {Unix \command {awk}, backslashes in escape sequences}{44}
+\entry {Unix \command {awk}, \code {close()} function and}{96}
+\entry {Unix \command {awk}, password files\comma {} field separators and}{64}
+\entry {Unix, \command {awk} scripts and}{15}
+\entry {\code {UNIXROOT} variable, on OS/2 systems}{415}
+\entry {unsigned integers}{319}
+\entry {\code {until} debugger command}{311}
+\entry {\code {unwatch} debugger command}{312}
+\entry {\code {up} debugger command}{313}
+\entry {user database\comma {} reading}{221}
+\entry {user-defined functions}{184}
+\entry {user-defined, functions, counts, in a profile}{291}
+\entry {user-defined, variables}{100}
+\entry {user-modifiable variables}{135}
+\entry {users, information about, printing}{242}
+\entry {users, information about, retrieving}{221}
+\entry {\code {USR1} signal, for dynamic profiling}{292}
+\initial {V}
+\entry {values, numeric}{436}
+\entry {values, string}{436}
+\entry {variable assignments and input files}{33}
+\entry {variable typing}{110}
+\entry {variables}{24, 436}
+\entry {variables, assigning on command line}{100}
+\entry {variables, built-in}{100, 134}
+\entry {variables, built-in, \code {-v} option\comma {} setting with}{28}
+\entry {variables, built-in, conveying information}{137}
+\entry {variables, flag}{114}
+\entry {variables, \code {getline} command into\comma {} using}{72, 73, 75, 76}
+\entry {variables, global, for library functions}{202}
+\entry {variables, global, printing list of}{29}
+\entry {variables, initializing}{100}
+\entry {variables, local to a function}{187}
+\entry {variables, names of}{145}
+\entry {variables, private}{202}
+\entry {variables, setting}{28}
+\entry {variables, shadowing}{185}
+\entry {variables, types of}{106}
+\entry {variables, types of, comparison expressions and}{110}
+\entry {variables, uninitialized\comma {} as array subscripts}{153}
+\entry {variables, user-defined}{100}
+\entry {version of \command {gawk}}{141}
+\entry {version of \command {gawk} extension API}{141}
+\entry {version of GNU MP library}{141}
+\entry {version of GNU MPFR library}{141}
+\entry {vertical bar (\code {|})}{45}
+\entry {vertical bar (\code {|}), \code {|} operator (I/O)}{74, 118}
+\entry {vertical bar (\code {|}), \code {|&} operator (I/O)}{75, 118, 286}
+\entry {vertical bar (\code {|}), \code {||} operator}{114, 118}
+\entry {Vinschen, Corinna}{10}
+\initial {W}
+\entry {\code {w} debugger command (alias for \code {watch})}{312}
+\entry {\command {w} utility}{66}
+\entry {\code {wait()} extension function}{382}
+\entry {\code {waitpid()} extension function}{382}
+\entry {\code {walk_array()} user-defined function}{230}
+\entry {Wall, Larry}{145, 430}
+\entry {Wallin, Anders}{404}
+\entry {warnings, issuing}{30}
+\entry {\code {watch} debugger command}{312}
+\entry {watchpoint}{304}
+\entry {\command {wc} utility}{251}
+\entry {\code {wc.awk} program}{251}
+\entry {Weinberger, Peter}{4, 403}
+\entry {\code {while} statement}{127}
+\entry {\code {while} statement, use of regexps in}{41}
+\entry {whitespace, as field separators}{61}
+\entry {whitespace, functions\comma {} calling}{159}
+\entry {whitespace, newlines as}{31}
+\entry {Williams, Kent}{404}
+\entry {Woehlke, Matthew}{404}
+\entry {Woods, John}{403}
+\entry {word boundaries\comma {} matching}{48}
+\entry {word, regexp definition of}{48}
+\entry {word-boundary operator (\command {gawk})}{49}
+\entry {\code {wordfreq.awk} program}{261}
+\entry {words, counting}{251}
+\entry {words, duplicate\comma {} searching for}{253}
+\entry {words, usage counts\comma {} generating}{261}
+\entry {\code {writea()} extension function}{385}
+\initial {X}
+\entry {\code {xgettext} utility}{297}
+\entry {XOR bitwise operation}{181}
+\entry {\code {xor()} function (\command {gawk})}{182}
+\initial {Y}
+\entry {Yawitz, Efraim}{405}
+\initial {Z}
+\entry {Zaretskii, Eli}{10, 404, 421}
+\entry {zero\comma {} negative vs.\: positive}{321}
+\entry {\code {zerofile.awk} program}{215}
+\entry {Zoulas, Christos}{404}

Added: trunk/texindex/tests/gawk.cps-good
===================================================================
--- trunk/texindex/tests/gawk.cps-good                          (rev 0)
+++ trunk/texindex/tests/gawk.cps-good  2014-12-03 00:57:15 UTC (rev 5946)
@@ -0,0 +1,2228 @@
+\initial {!}
+\entry {\code {!} (exclamation point), \code {!} operator}{114, 117, 121, 241}
+\entry {\code {!} (exclamation point), \code {!=} operator}{111, 118}
+\entry {\code {!} (exclamation point), \code {!~} operator}{41, 50, 51, 98, 
111, 113, 118, 120}
+\initial {"}
+\entry {\code {"} (double quote) in shell commands}{14}
+\entry {\code {"} (double quote), in regexp constants}{51}
+\entry {\code {"} (double quote), in shell commands}{17}
+\initial {#}
+\entry {\code {#} (number sign), \code {#!} (executable scripts)}{15}
+\entry {\code {#} (number sign), commenting}{16}
+\initial {$}
+\entry {\code {$} (dollar sign), \code {$} field operator}{57, 117}
+\entry {\code {$} (dollar sign), incrementing fields and arrays}{109}
+\entry {\code {$} (dollar sign), regexp operator}{44}
+\initial {%}
+\entry {\code {%} (percent sign), \code {%} operator}{117}
+\entry {\code {%} (percent sign), \code {%=} operator}{107, 118}
+\initial {&}
+\entry {\code {&} (ampersand), \code {&&} operator}{114, 118}
+\entry {\code {&} (ampersand), \code {gsub()}/\code {gensub()}/\code {sub()} 
functions and}{170}
+\initial {'}
+\entry {\code {'} (single quote)}{13}
+\entry {\code {'} (single quote) in \command {gawk} command lines}{15}
+\entry {\code {'} (single quote), in shell commands}{17}
+\entry {\code {'} (single quote), vs.\: apostrophe}{16}
+\entry {\code {'} (single quote), with double quotes}{17}
+\initial {(}
+\entry {\code {()} (parentheses), in a profile}{291}
+\entry {\code {()} (parentheses), regexp operator}{45}
+\initial {*}
+\entry {\code {*} (asterisk), \code {*} operator, as multiplication 
operator}{117}
+\entry {\code {*} (asterisk), \code {*} operator, as regexp operator}{45}
+\entry {\code {*} (asterisk), \code {*} operator, null strings\comma {} 
matching}{173}
+\entry {\code {*} (asterisk), \code {**} operator}{104, 117}
+\entry {\code {*} (asterisk), \code {**=} operator}{107, 118}
+\entry {\code {*} (asterisk), \code {*=} operator}{107, 118}
+\initial {+}
+\entry {\code {+} (plus sign), \code {+} operator}{117, 118}
+\entry {\code {+} (plus sign), \code {++} operator}{108, 109, 117}
+\entry {\code {+} (plus sign), \code {+=} operator}{107, 118}
+\entry {\code {+} (plus sign), regexp operator}{45}
+\initial {,}
+\entry {\code {,} (comma), in range patterns}{121}
+\initial {-}
+\entry {\code {-} (hyphen), \code {-} operator}{117, 118}
+\entry {\code {-} (hyphen), \code {--} operator}{109, 117}
+\entry {\code {-} (hyphen), \code {-=} operator}{107, 118}
+\entry {\code {-} (hyphen), filenames beginning with}{28}
+\entry {\code {-} (hyphen), in bracket expressions}{47}
+\entry {\option {--assign} option}{28}
+\entry {\option {--bignum} option}{30}
+\entry {\option {--characters-as-bytes} option}{28}
+\entry {\option {--copyright} option}{28}
+\entry {\option {--debug} option}{29}
+\entry {\option {--disable-extensions} configuration option}{411}
+\entry {\option {--disable-lint} configuration option}{411}
+\entry {\option {--disable-nls} configuration option}{412}
+\entry {\option {--dump-variables} option}{29}
+\entry {\option {--dump-variables} option, using for library functions}{202}
+\entry {\option {--exec} option}{29}
+\entry {\option {--field-separator} option}{27}
+\entry {\option {--file} option}{27}
+\entry {\option {--gen-pot} option}{29, 297}
+\entry {\option {--help} option}{30}
+\entry {\option {--include} option}{30}
+\entry {\option {--lint} option}{27, 30}
+\entry {\option {--lint-old} option}{32}
+\entry {\option {--load} option}{30}
+\entry {\option {--non-decimal-data} option}{30, 279}
+\entry {\option {--non-decimal-data} option, \code {strtonum()} function 
and}{279}
+\entry {\option {--optimize} option}{31}
+\entry {\option {--posix} option}{31}
+\entry {\option {--posix} option, \code {--traditional} option and}{31}
+\entry {\option {--pretty-print} option}{31}
+\entry {\option {--profile} option}{31, 289}
+\entry {\option {--re-interval} option}{32}
+\entry {\option {--sandbox} option}{32}
+\entry {\option {--sandbox} option, disabling \code {system()} function}{174}
+\entry {\option {--sandbox} option, input redirection with \code {getline}}{71}
+\entry {\option {--sandbox} option, output redirection with \code {print}, 
\code {printf}}{90}
+\entry {\option {--source} option}{29, 32}
+\entry {\option {--traditional} option}{28}
+\entry {\option {--traditional} option, \code {--posix} option and}{31}
+\entry {\option {--use-lc-numeric} option}{31}
+\entry {\option {--version} option}{32}
+\entry {\option {--with-whiny-user-strftime} configuration option}{412}
+\entry {\option {-b} option}{28}
+\entry {\option {-c} option}{28}
+\entry {\option {-C} option}{28}
+\entry {\option {-d} option}{29}
+\entry {\option {-D} option}{29}
+\entry {\option {-e} option}{29}
+\entry {\option {-E} option}{29}
+\entry {\option {-f} option}{14, 27}
+\entry {\option {-f} option, multiple uses}{32}
+\entry {\option {-F} option}{27}
+\entry {\option {-F} option, \option {-Ft} sets \code {FS} to TAB}{32}
+\entry {\option {-F} option, command line}{63}
+\entry {\option {-g} option}{29}
+\entry {\option {-h} option}{30}
+\entry {\option {-i} option}{30}
+\entry {\option {-l} option}{30}
+\entry {\option {-L} option}{32}
+\entry {\option {-M} option}{30}
+\entry {\option {-n} option}{30}
+\entry {\option {-N} option}{31}
+\entry {\option {-o} option}{31}
+\entry {\option {-O} option}{31}
+\entry {\option {-p} option}{31}
+\entry {\option {-P} option}{31}
+\entry {\option {-r} option}{32}
+\entry {\option {-S} option}{32}
+\entry {\option {-v} option}{28, 100}
+\entry {\option {-V} option}{32}
+\entry {\option {-W} option}{28}
+\initial {.}
+\entry {\code {.} (period), regexp operator}{45}
+\entry {\code {.gmo} files}{294}
+\entry {\code {.gmo} files, converting from \code {.po}}{300}
+\entry {\code {.gmo} files, specifying directory of}{294, 295}
+\entry {\code {.po} files}{293, 297}
+\entry {\code {.po} files, converting to \code {.gmo}}{300}
+\entry {\code {.pot} files}{293}
+\initial {/}
+\entry {\code {/} (forward slash) to enclose regular expressions}{41}
+\entry {\code {/} (forward slash), \code {/} operator}{117}
+\entry {\code {/} (forward slash), \code {/=} operator}{107, 118}
+\entry {\code {/} (forward slash), \code {/=} operator, vs. \code {/=\dots 
{}/} regexp constant}{108}
+\entry {\code {/} (forward slash), patterns and}{120}
+\entry {\code {/=} operator vs. \code {/=\dots {}/} regexp constant}{108}
+\entry {\code {/dev/\dots {}} special files}{93}
+\entry {\code {/dev/fd/\var {N}} special files (\command {gawk})}{93}
+\entry {\code {/inet/\dots {}} special files (\command {gawk})}{287}
+\entry {\code {/inet4/\dots {}} special files (\command {gawk})}{287}
+\entry {\code {/inet6/\dots {}} special files (\command {gawk})}{287}
+\initial {;}
+\entry {\code {;} (semicolon), \code {AWKPATH} variable and}{415}
+\entry {\code {;} (semicolon), separating statements in actions}{24, 125, 126}
+\initial {<}
+\entry {\code {<} (left angle bracket), \code {<} operator}{111, 118}
+\entry {\code {<} (left angle bracket), \code {<} operator (I/O)}{73}
+\entry {\code {<} (left angle bracket), \code {<=} operator}{111, 118}
+\initial {=}
+\entry {\code {=} (equals sign), \code {=} operator}{106}
+\entry {\code {=} (equals sign), \code {==} operator}{111, 118}
+\initial {>}
+\entry {\code {>} (right angle bracket), \code {>} operator}{111, 118}
+\entry {\code {>} (right angle bracket), \code {>} operator (I/O)}{90}
+\entry {\code {>} (right angle bracket), \code {>=} operator}{111, 118}
+\entry {\code {>} (right angle bracket), \code {>>} operator (I/O)}{90, 118}
+\initial {?}
+\entry {\code {?} (question mark), \code {?:} operator}{118}
+\entry {\code {?} (question mark), regexp operator}{46, 49}
+\initial {[}
+\entry {\code {[]} (square brackets), regexp operator}{45}
+\initial {^}
+\entry {\code {^} (caret), \code {^} operator}{117}
+\entry {\code {^} (caret), \code {^=} operator}{107, 118}
+\entry {\code {^} (caret), in bracket expressions}{47}
+\entry {\code {^} (caret), in \code {FS}}{62}
+\entry {\code {^} (caret), regexp operator}{44, 49}
+\initial {_}
+\entry {\code {_} (underscore), C macro}{294}
+\entry {\code {_} (underscore), in names of private variables}{202}
+\entry {\code {_} (underscore), translatable string}{296}
+\entry {\code {_gr_init()} user-defined function}{227}
+\entry {\code {_ord_init()} user-defined function}{207}
+\entry {\code {_pw_init()} user-defined function}{223}
+\initial {\\}
+\entry {\code {{\tt \backslashcurfont }} (backslash)}{16}
+\entry {\code {{\tt \backslashcurfont }} (backslash) in shell commands}{14}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }"} escape sequence}{43}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }'} operator (\command {gawk})}{49}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }/} escape sequence}{43}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }<} operator (\command {gawk})}{48}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }>} operator (\command {gawk})}{48}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }`} operator (\command {gawk})}{49}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }a} escape sequence}{42}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }b} escape sequence}{42}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }B} operator (\command {gawk})}{48}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }f} escape sequence}{42}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }n} escape sequence}{42}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }}\var {nnn} escape sequence}{42}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }r} escape sequence}{42}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }s} operator (\command {gawk})}{48}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }S} operator (\command {gawk})}{48}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }t} escape sequence}{42}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }v} escape sequence}{42}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }w} operator (\command {gawk})}{48}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }W} operator (\command {gawk})}{48}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }x} escape sequence}{42}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt 
\backslashcurfont }y} operator (\command {gawk})}{48}
+\entry {\code {{\tt \backslashcurfont }} (backslash), as field separator}{63}
+\entry {\code {{\tt \backslashcurfont }} (backslash), continuing lines 
and}{23, 242}
+\entry {\code {{\tt \backslashcurfont }} (backslash), continuing lines and, 
comments and}{24}
+\entry {\code {{\tt \backslashcurfont }} (backslash), continuing lines and, in 
\command {csh}}{23}
+\entry {\code {{\tt \backslashcurfont }} (backslash), \code {gsub()}/\code 
{gensub()}/\code {sub()} functions and}{170}
+\entry {\code {{\tt \backslashcurfont }} (backslash), in bracket 
expressions}{47}
+\entry {\code {{\tt \backslashcurfont }} (backslash), in escape sequences}{42, 
43}
+\entry {\code {{\tt \backslashcurfont }} (backslash), in escape sequences, 
POSIX and}{44}
+\entry {\code {{\tt \backslashcurfont }} (backslash), in regexp constants}{51}
+\entry {\code {{\tt \backslashcurfont }} (backslash), in shell commands}{17}
+\entry {\code {{\tt \backslashcurfont }} (backslash), regexp operator}{44}
+\initial {|}
+\entry {\code {|} (vertical bar)}{45}
+\entry {\code {|} (vertical bar), \code {|} operator (I/O)}{74, 90, 118}
+\entry {\code {|} (vertical bar), \code {|&} operator (I/O)}{75, 91, 118, 286}
+\entry {\code {|} (vertical bar), \code {|&} operator (I/O), pipes\comma {} 
closing}{96}
+\entry {\code {|} (vertical bar), \code {||} operator}{114, 118}
+\entry {\code {{\tt \char 123}{\tt \char 125}} (braces)}{291}
+\entry {\code {{\tt \char 123}{\tt \char 125}} (braces), actions and}{125}
+\entry {\code {{\tt \char 123}{\tt \char 125}} (braces), statements, 
grouping}{126}
+\initial {~}
+\entry {\code {~} (tilde), \code {~} operator}{41, 50, 51, 98, 111, 113, 118, 
120}
+\initial {A}
+\entry {accessing fields}{56}
+\entry {accessing global variables from extensions}{352}
+\entry {account information}{221, 225}
+\entry {actions}{125}
+\entry {actions, control statements in}{126}
+\entry {actions, default}{20}
+\entry {actions, empty}{20}
+\entry {Ada programming language}{439}
+\entry {adding, features to \command {gawk}}{426}
+\entry {adding, fields}{59}
+\entry {advanced features, fixed-width data}{66}
+\entry {advanced features, \command {gawk}}{279}
+\entry {advanced features, network programming}{287}
+\entry {advanced features, nondecimal input data}{279}
+\entry {advanced features, processes\comma {} communicating with}{286}
+\entry {advanced features, specifying field content}{67}
+\entry {Aho, Alfred}{4, 403}
+\entry {alarm clock example program}{254}
+\entry {\code {alarm.awk} program}{254}
+\entry {algorithms}{436}
+\entry {allocating memory for extensions}{342}
+\entry {Alpha (DEC)}{8}
+\entry {amazing \command {awk} assembler (\command {aaa})}{439}
+\entry {amazingly workable formatter (\command {awf})}{439}
+\entry {ambiguity, syntactic: \code {/=} operator vs. \code {/=\dots {}/} 
regexp constant}{108}
+\entry {ampersand (\code {&}), \code {&&} operator}{114, 118}
+\entry {ampersand (\code {&}), \code {gsub()}/\code {gensub()}/\code {sub()} 
functions and}{170}
+\entry {\code {anagram.awk} program}{274}
+\entry {anagrams, finding}{274}
+\entry {and Boolean-logic operator}{113}
+\entry {\code {and()} function (\command {gawk})}{181}
+\entry {AND bitwise operation}{181}
+\entry {ANSI}{439}
+\entry {API informational variables}{365}
+\entry {API version}{365}
+\entry {arbitrary precision}{319}
+\entry {arbitrary precision integers}{332}
+\entry {archeologists}{420}
+\entry {arctangent}{160}
+\entry {\code {ARGC}/\code {ARGV} variables}{137}
+\entry {\code {ARGC}/\code {ARGV} variables, command-line arguments}{33}
+\entry {\code {ARGC}/\code {ARGV} variables, how to use}{143}
+\entry {\code {ARGC}/\code {ARGV} variables, portability and}{16}
+\entry {\code {ARGIND} variable}{138}
+\entry {\code {ARGIND} variable, command-line arguments}{33}
+\entry {arguments, command-line}{33, 137, 143}
+\entry {arguments, command-line, invoking \command {awk}}{27}
+\entry {arguments, in function calls}{116}
+\entry {arguments, processing}{216}
+\entry {\code {ARGV} array, indexing into}{33}
+\entry {arithmetic operators}{103}
+\entry {array manipulation in extensions}{356}
+\entry {array members}{146}
+\entry {array scanning order, controlling}{149}
+\entry {array, number of elements}{164}
+\entry {arrays}{145}
+\entry {arrays of arrays}{156}
+\entry {arrays, an example of using}{147}
+\entry {arrays, and \code {IGNORECASE} variable}{146}
+\entry {arrays, as parameters to functions}{190}
+\entry {arrays, associative}{146}
+\entry {arrays, associative, library functions and}{202}
+\entry {arrays, deleting entire contents}{152}
+\entry {arrays, elements that don't exist}{147}
+\entry {arrays, elements, assigning values}{147}
+\entry {arrays, elements, deleting}{151}
+\entry {arrays, elements, order of access by \code {in} operator}{149}
+\entry {arrays, elements, retrieving number of}{161}
+\entry {arrays, \code {for} statement and}{148}
+\entry {arrays, indexing}{146}
+\entry {arrays, merging into strings}{209}
+\entry {arrays, multidimensional}{154}
+\entry {arrays, multidimensional, scanning}{155}
+\entry {arrays, names of, and names of functions/variables}{145}
+\entry {arrays, numeric subscripts}{153}
+\entry {arrays, referencing elements}{146}
+\entry {arrays, scanning}{148}
+\entry {arrays, sorting}{284}
+\entry {arrays, sorting, and \code {IGNORECASE} variable}{285}
+\entry {arrays, sparse}{146}
+\entry {arrays, subscripts, uninitialized variables as}{153}
+\entry {arrays, unassigned elements}{147}
+\entry {artificial intelligence\comma {} \command {gawk} and}{408}
+\entry {ASCII}{208, 440}
+\entry {\code {asort()} function (\command {gawk})}{161, 284}
+\entry {\code {asort()} function (\command {gawk}), arrays\comma {} 
sorting}{284}
+\entry {\code {asorti()} function (\command {gawk})}{161, 284}
+\entry {\code {asorti()} function (\command {gawk}), arrays\comma {} 
sorting}{284}
+\entry {\code {assert()} function (C library)}{204}
+\entry {\code {assert()} user-defined function}{205}
+\entry {assertions}{204}
+\entry {assign values to variables, in debugger}{312}
+\entry {assignment operators}{106}
+\entry {assignment operators, evaluation order}{107}
+\entry {assignment operators, lvalues/rvalues}{106}
+\entry {assignments as filenames}{216}
+\entry {associative arrays}{146}
+\entry {asterisk (\code {*}), \code {*} operator, as multiplication 
operator}{117}
+\entry {asterisk (\code {*}), \code {*} operator, as regexp operator}{45}
+\entry {asterisk (\code {*}), \code {*} operator, null strings\comma {} 
matching}{173}
+\entry {asterisk (\code {*}), \code {**} operator}{104, 117}
+\entry {asterisk (\code {*}), \code {**=} operator}{107, 118}
+\entry {asterisk (\code {*}), \code {*=} operator}{107, 118}
+\entry {\code {atan2()} function}{160}
+\entry {automatic displays, in debugger}{313}
+\entry {\command {awf} (amazingly workable formatter) program}{439}
+\entry {\command {awk} debugging, enabling}{29}
+\entry {\command {awk} language, POSIX version}{108}
+\entry {\command {awk} profiling, enabling}{31}
+\entry {\command {awk} programs}{13, 15, 21}
+\entry {\command {awk} programs, complex}{25}
+\entry {\command {awk} programs, documenting}{16, 202}
+\entry {\command {awk} programs, examples of}{233}
+\entry {\command {awk} programs, execution of}{132}
+\entry {\command {awk} programs, internationalizing}{183, 295}
+\entry {\command {awk} programs, lengthy}{14}
+\entry {\command {awk} programs, lengthy, assertions}{204}
+\entry {\command {awk} programs, location of}{27, 29, 30}
+\entry {\command {awk} programs, one-line examples}{20}
+\entry {\command {awk} programs, profiling}{289}
+\entry {\command {awk} programs, running}{13, 14}
+\entry {\command {awk} programs, running, from shell scripts}{13}
+\entry {\command {awk} programs, running, without input files}{14}
+\entry {\command {awk} programs, shell variables in}{124}
+\entry {\command {awk}, function of}{13}
+\entry {\command {awk}, \command {gawk} and}{3, 5}
+\entry {\command {awk}, history of}{4}
+\entry {\command {awk}, implementation issues, pipes}{92}
+\entry {\command {awk}, implementations}{421}
+\entry {\command {awk}, implementations, limits}{76}
+\entry {\command {awk}, invoking}{27}
+\entry {\command {awk}, new vs.\: old}{4}
+\entry {\command {awk}, new vs.\: old, \code {OFMT} variable}{102}
+\entry {\command {awk}, POSIX and}{3}
+\entry {\command {awk}, POSIX and, See Also POSIX \command {awk}}{3}
+\entry {\command {awk}, regexp constants and}{113}
+\entry {\command {awk}, See Also \command {gawk}}{3}
+\entry {\command {awk}, terms describing}{5}
+\entry {\command {awk}, uses for}{3, 13, 24}
+\entry {\command {awk}, versions of}{4, 391}
+\entry {\command {awk}, versions of, changes between SVR3.1 and SVR4}{392}
+\entry {\command {awk}, versions of, changes between SVR4 and POSIX \command 
{awk}}{392}
+\entry {\command {awk}, versions of, changes between V7 and SVR3.1}{391}
+\entry {\command {awk}, versions of, See Also Brian Kernighan's \command 
{awk}}{393, 421}
+\entry {\command {awka} compiler for \command {awk}}{422}
+\entry {\env {AWKLIBPATH} environment variable}{35}
+\entry {\env {AWKPATH} environment variable}{34, 415}
+\entry {\code {awkprof.out} file}{289}
+\entry {\command {awksed.awk} program}{267}
+\entry {\file {awkvars.out} file}{29}
+\initial {B}
+\entry {\code {b} debugger command (alias for \code {break})}{308}
+\entry {backslash (\code {{\tt \backslashcurfont }})}{16}
+\entry {backslash (\code {{\tt \backslashcurfont }}) in shell commands}{14}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }"} escape sequence}{43}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }'} operator (\command {gawk})}{49}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }/} escape sequence}{43}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }<} operator (\command {gawk})}{48}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }>} operator (\command {gawk})}{48}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }`} operator (\command {gawk})}{49}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }a} escape sequence}{42}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }b} escape sequence}{42}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }B} operator (\command {gawk})}{48}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }f} escape sequence}{42}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }n} escape sequence}{42}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }}\var {nnn} escape sequence}{42}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }r} escape sequence}{42}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }s} operator (\command {gawk})}{48}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }S} operator (\command {gawk})}{48}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }t} escape sequence}{42}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }v} escape sequence}{42}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }w} operator (\command {gawk})}{48}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }W} operator (\command {gawk})}{48}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }x} escape sequence}{42}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt 
\backslashcurfont }y} operator (\command {gawk})}{48}
+\entry {backslash (\code {{\tt \backslashcurfont }}), as field separator}{63}
+\entry {backslash (\code {{\tt \backslashcurfont }}), continuing lines 
and}{23, 242}
+\entry {backslash (\code {{\tt \backslashcurfont }}), continuing lines and, 
comments and}{24}
+\entry {backslash (\code {{\tt \backslashcurfont }}), continuing lines and, in 
\command {csh}}{23}
+\entry {backslash (\code {{\tt \backslashcurfont }}), \code {gsub()}/\code 
{gensub()}/\code {sub()} functions and}{170}
+\entry {backslash (\code {{\tt \backslashcurfont }}), in bracket 
expressions}{47}
+\entry {backslash (\code {{\tt \backslashcurfont }}), in escape sequences}{42, 
43}
+\entry {backslash (\code {{\tt \backslashcurfont }}), in escape sequences, 
POSIX and}{44}
+\entry {backslash (\code {{\tt \backslashcurfont }}), in regexp constants}{51}
+\entry {backslash (\code {{\tt \backslashcurfont }}), in shell commands}{17}
+\entry {backslash (\code {{\tt \backslashcurfont }}), regexp operator}{44}
+\entry {\code {backtrace} debugger command}{312}
+\entry {Beebe, Nelson H.F.\:}{10, 422}
+\entry {\code {BEGIN} pattern}{61, 122}
+\entry {\code {BEGIN} pattern, and profiling}{289}
+\entry {\code {BEGIN} pattern, \code {assert()} user-defined function and}{205}
+\entry {\code {BEGIN} pattern, Boolean patterns and}{121}
+\entry {\code {BEGIN} pattern, \code {exit} statement and}{134}
+\entry {\code {BEGIN} pattern, \code {getline} and}{76}
+\entry {\code {BEGIN} pattern, headings\comma {} adding}{82}
+\entry {\code {BEGIN} pattern, \code {next}/\code {nextfile} statements 
and}{123, 133}
+\entry {\code {BEGIN} pattern, \code {OFS}/\code {ORS} variables, assigning 
values to}{83}
+\entry {\code {BEGIN} pattern, operators and}{122}
+\entry {\code {BEGIN} pattern, \code {print} statement and}{123}
+\entry {\code {BEGIN} pattern, \code {pwcat} program}{224}
+\entry {\code {BEGIN} pattern, running \command {awk} programs and}{234}
+\entry {\code {BEGIN} pattern, \code {TEXTDOMAIN} variable and}{296}
+\entry {\code {beginfile()} user-defined function}{213}
+\entry {\code {BEGINFILE} pattern}{123}
+\entry {\code {BEGINFILE} pattern, Boolean patterns and}{121}
+\entry {Bentley, Jon}{441}
+\entry {Benzinger, Michael}{404}
+\entry {Berry, Karl}{10, 403}
+\entry {binary input/output}{135}
+\entry {\code {bindtextdomain()} function (C library)}{294}
+\entry {\code {bindtextdomain()} function (\command {gawk})}{183, 295}
+\entry {\code {bindtextdomain()} function (\command {gawk}), portability 
and}{299}
+\entry {\code {BINMODE} variable}{135, 415}
+\entry {bit-manipulation functions}{181}
+\entry {\code {bits2str()} user-defined function}{182}
+\entry {bitwise AND}{181}
+\entry {bitwise complement}{181}
+\entry {bitwise OR}{181}
+\entry {bitwise XOR}{182}
+\entry {bitwise, complement}{181}
+\entry {bitwise, operations}{181}
+\entry {bitwise, shift}{181}
+\entry {body, in actions}{126}
+\entry {body, in loops}{127}
+\entry {Boolean expressions}{113}
+\entry {Boolean expressions, as patterns}{120}
+\entry {Boolean operators, See Boolean expressions}{113}
+\entry {Bourne shell, quoting rules for}{17}
+\entry {braces (\code {{\tt \char 123}{\tt \char 125}})}{291}
+\entry {braces (\code {{\tt \char 123}{\tt \char 125}}), actions and}{125}
+\entry {braces (\code {{\tt \char 123}{\tt \char 125}}), statements, 
grouping}{126}
+\entry {bracket expressions}{45, 47}
+\entry {bracket expressions, character classes}{47}
+\entry {bracket expressions, collating elements}{48}
+\entry {bracket expressions, collating symbols}{48}
+\entry {bracket expressions, complemented}{45}
+\entry {bracket expressions, equivalence classes}{48}
+\entry {bracket expressions, non-ASCII}{48}
+\entry {bracket expressions, range expressions}{47}
+\entry {\code {break} debugger command}{308}
+\entry {\code {break} statement}{130}
+\entry {breakpoint}{304}
+\entry {breakpoint at location, how to delete}{309}
+\entry {breakpoint commands}{310}
+\entry {breakpoint condition}{309}
+\entry {breakpoint, delete by number}{309}
+\entry {breakpoint, how to disable or enable}{309}
+\entry {breakpoint, setting}{308}
+\entry {Brennan, Michael}{2, 152, 267, 285, 421, 422}
+\entry {Brian Kernighan's \command {awk}}{3, 25, 44, 49, 62, 75, 105, 123, 
131, 132, 133, 152, 169, 170, 174}
+\entry {Brian Kernighan's \command {awk}, extensions}{393}
+\entry {Brian Kernighan's \command {awk}, source code}{421}
+\entry {Brini, Davide}{276}
+\entry {Broder, Alan J.\:}{404}
+\entry {Brown, Martin}{404}
+\entry {BSD-based operating systems}{448}
+\entry {\code {bt} debugger command (alias for \code {backtrace})}{312}
+\entry {Buening, Andreas}{10, 404, 421}
+\entry {buffering, input/output}{176, 286}
+\entry {buffering, interactive vs.\: noninteractive}{175}
+\entry {buffers, flushing}{173, 176}
+\entry {buffers, operators for}{49}
+\entry {bug reports, email address, \code address@hidden
+\entry {\code address@hidden bug reporting address}{420}
+\entry {built-in functions}{159}
+\entry {built-in functions, evaluation order}{159}
+\entry {built-in variables}{134}
+\entry {built-in variables, \code {-v} option\comma {} setting with}{28}
+\entry {built-in variables, conveying information}{137}
+\entry {built-in variables, user-modifiable}{135}
+\entry {Busybox Awk}{422}
+\initial {C}
+\entry {call by reference}{190}
+\entry {call by value}{189}
+\entry {call stack, display in debugger}{312}
+\entry {caret (\code {^}), \code {^} operator}{117}
+\entry {caret (\code {^}), \code {^=} operator}{107, 118}
+\entry {caret (\code {^}), in bracket expressions}{47}
+\entry {caret (\code {^}), regexp operator}{44, 49}
+\entry {\code {case} keyword}{129}
+\entry {case sensitivity, and regexps}{136}
+\entry {case sensitivity, and string comparisons}{136}
+\entry {case sensitivity, array indices and}{146}
+\entry {case sensitivity, converting case}{169}
+\entry {case sensitivity, example programs}{201}
+\entry {case sensitivity, \command {gawk}}{50}
+\entry {case sensitivity, regexps and}{49}
+\entry {CGI, \command {awk} scripts for}{29}
+\entry {changing precision of a number}{331}
+\entry {character classes, See bracket expressions}{45}
+\entry {character lists in regular expression}{47}
+\entry {character lists, See bracket expressions}{45}
+\entry {character sets (machine character encodings)}{208, 440}
+\entry {character sets, See Also bracket expressions}{45}
+\entry {characters, counting}{251}
+\entry {characters, transliterating}{257}
+\entry {characters, values of as numbers}{207}
+\entry {Chassell, Robert J.\:}{10}
+\entry {\code {chdir()} extension function}{378}
+\entry {\command {chem} utility}{441}
+\entry {\code {chr()} extension function}{383}
+\entry {\code {chr()} user-defined function}{207}
+\entry {\code {clear} debugger command}{309}
+\entry {Cliff random numbers}{206}
+\entry {\code {cliff_rand()} user-defined function}{206}
+\entry {close file or coprocess}{173}
+\entry {\code {close()} function}{94, 173}
+\entry {\code {close()} function, portability}{95}
+\entry {\code {close()} function, return value}{96}
+\entry {\code {close()} function, two-way pipes and}{286}
+\entry {Close, Diane}{8, 403}
+\entry {Collado, Manuel}{10}
+\entry {collating elements}{48}
+\entry {collating symbols}{48}
+\entry {Colombo, Antonio}{10, 405}
+\entry {columns, aligning}{82}
+\entry {columns, cutting}{233}
+\entry {comma (\code {,}), in range patterns}{121}
+\entry {command completion, in debugger}{316}
+\entry {command line, arguments}{33, 137, 143}
+\entry {command line, directories on}{79}
+\entry {command line, formats}{13}
+\entry {command line, \code {FS} on\comma {} setting}{63}
+\entry {command line, invoking \command {awk} from}{27}
+\entry {command line, option \option {-f}}{14}
+\entry {command line, options}{27}
+\entry {command line, options, end of}{28}
+\entry {command line, variables\comma {} assigning on}{100}
+\entry {command-line options, processing}{216}
+\entry {command-line options, string extraction}{297}
+\entry {\code {commands} debugger command}{310}
+\entry {commands to execute at breakpoint}{310}
+\entry {commenting}{16}
+\entry {commenting, backslash continuation and}{24}
+\entry {common extensions, \code {**} operator}{104}
+\entry {common extensions, \code {**=} operator}{108}
+\entry {common extensions, \code {/dev/stderr} special file}{93}
+\entry {common extensions, \code {/dev/stdin} special file}{93}
+\entry {common extensions, \code {/dev/stdout} special file}{93}
+\entry {common extensions, \code {{\tt \backslashcurfont }x} escape 
sequence}{42}
+\entry {common extensions, \code {BINMODE} variable}{415}
+\entry {common extensions, \code {delete} to delete entire arrays}{152}
+\entry {common extensions, \code {func} keyword}{185}
+\entry {common extensions, \code {length()} applied to an array}{164}
+\entry {common extensions, \code {RS} as a regexp}{55}
+\entry {common extensions, single character fields}{63}
+\entry {\code {comp.lang.awk} newsgroup}{420}
+\entry {comparison expressions}{110}
+\entry {comparison expressions, as patterns}{120}
+\entry {comparison expressions, string vs.\: regexp}{113}
+\entry {compatibility mode (\command {gawk}), extensions}{393}
+\entry {compatibility mode (\command {gawk}), file names}{94}
+\entry {compatibility mode (\command {gawk}), hexadecimal numbers}{98}
+\entry {compatibility mode (\command {gawk}), octal numbers}{98}
+\entry {compatibility mode (\command {gawk}), specifying}{28}
+\entry {compiled programs}{435, 441}
+\entry {compiling \command {gawk} for Cygwin}{416}
+\entry {compiling \command {gawk} for MS-DOS and MS-Windows}{413}
+\entry {compiling \command {gawk} for VMS}{417}
+\entry {compiling \command {gawk} with EMX for OS/2}{414}
+\entry {\code {compl()} function (\command {gawk})}{181}
+\entry {complement, bitwise}{181}
+\entry {compound statements\comma {} control statements and}{126}
+\entry {concatenating}{104}
+\entry {\code {condition} debugger command}{309}
+\entry {conditional expressions}{115}
+\entry {configuration option, \code {--disable-extensions}}{411}
+\entry {configuration option, \code {--disable-lint}}{411}
+\entry {configuration option, \code {--disable-nls}}{412}
+\entry {configuration option, \code {--with-whiny-user-strftime}}{412}
+\entry {configuration options\comma {} \command {gawk}}{411}
+\entry {constant regexps}{42}
+\entry {constants, floating-point}{330}
+\entry {constants, nondecimal}{279}
+\entry {constants, numeric}{97}
+\entry {constants, types of}{97}
+\entry {context, floating-point}{326}
+\entry {continue program, in debugger}{310}
+\entry {\code {continue} statement}{131}
+\entry {control statements}{126}
+\entry {controlling array scanning order}{149}
+\entry {convert string to lower case}{170}
+\entry {convert string to number}{167}
+\entry {convert string to upper case}{170}
+\entry {converting integer array subscripts}{153}
+\entry {converting, dates to timestamps}{177}
+\entry {converting, numbers to strings}{101, 183}
+\entry {converting, strings to numbers}{101, 183}
+\entry {\code {CONVFMT} variable}{101, 135}
+\entry {\code {CONVFMT} variable, and array subscripts}{153}
+\entry {cookie}{441}
+\entry {coprocesses}{91, 286}
+\entry {coprocesses, closing}{94}
+\entry {coprocesses, \code {getline} from}{75}
+\entry {\code {cos()} function}{160}
+\entry {cosine}{160}
+\entry {counting}{251}
+\entry {\command {csh} utility}{23}
+\entry {\command {csh} utility, \code {|&} operator, comparison with}{286}
+\entry {\command {csh} utility, \env {POSIXLY_CORRECT} environment 
variable}{33}
+\entry {\code {ctime()} user-defined function}{186}
+\entry {currency symbols, localization}{294}
+\entry {current system time}{177}
+\entry {\code {custom.h} file}{412}
+\entry {customized input parser}{345}
+\entry {customized output wrapper}{349}
+\entry {customized two-way processor}{350}
+\entry {\command {cut} utility}{233}
+\entry {\code {cut.awk} program}{234}
+\initial {D}
+\entry {\code {d} debugger command (alias for \code {delete})}{309}
+\entry {d.c., See dark corner}{7}
+\entry {dark corner}{7, 441}
+\entry {dark corner, \code {"0"} is actually true}{110}
+\entry {dark corner, \code {/=} operator vs. \code {/=\dots {}/} regexp 
constant}{108}
+\entry {dark corner, \code {^}, in \code {FS}}{62}
+\entry {dark corner, array subscripts}{154}
+\entry {dark corner, \code {break} statement}{131}
+\entry {dark corner, \code {close()} function}{96}
+\entry {dark corner, command-line arguments}{101}
+\entry {dark corner, \code {continue} statement}{132}
+\entry {dark corner, \code {CONVFMT} variable}{102}
+\entry {dark corner, escape sequences}{33}
+\entry {dark corner, escape sequences, for metacharacters}{44}
+\entry {dark corner, \code {exit} statement}{134}
+\entry {dark corner, field separators}{65}
+\entry {dark corner, \code {FILENAME} variable}{76, 139}
+\entry {dark corner, \code {FNR}/\code {NR} variables}{143}
+\entry {dark corner, format-control characters}{85, 86}
+\entry {dark corner, \code {FS} as null string}{63}
+\entry {dark corner, input files}{55}
+\entry {dark corner, invoking \command {awk}}{27}
+\entry {dark corner, \code {length()} function}{164}
+\entry {dark corner, locale's decimal point character}{102}
+\entry {dark corner, multiline records}{69}
+\entry {dark corner, \code {NF} variable, decrementing}{60}
+\entry {dark corner, \code {OFMT} variable}{84}
+\entry {dark corner, regexp constants}{99}
+\entry {dark corner, regexp constants, \code {/=} operator and}{108}
+\entry {dark corner, regexp constants, as arguments to user-defined 
functions}{99}
+\entry {dark corner, \code {split()} function}{167}
+\entry {dark corner, strings, storing}{56}
+\entry {dark corner, value of \code {ARGV[0]}}{138}
+\entry {data, fixed-width}{66}
+\entry {data-driven languages}{436}
+\entry {database, group, reading}{225}
+\entry {database, users\comma {} reading}{221}
+\entry {\command {date} utility, GNU}{176}
+\entry {\code {date} utility, POSIX}{180}
+\entry {dates, converting to timestamps}{177}
+\entry {dates, information related to\comma {} localization}{295}
+\entry {Davies, Stephen}{10, 404}
+\entry {\code {dcgettext()} function (\command {gawk})}{183, 295}
+\entry {\code {dcgettext()} function (\command {gawk}), portability and}{299}
+\entry {\code {dcngettext()} function (\command {gawk})}{184, 295}
+\entry {\code {dcngettext()} function (\command {gawk}), portability and}{299}
+\entry {deadlocks}{286}
+\entry {debugger commands, \code {b} (\code {break})}{308}
+\entry {debugger commands, \code {backtrace}}{312}
+\entry {debugger commands, \code {break}}{308}
+\entry {debugger commands, \code {bt} (\code {backtrace})}{312}
+\entry {debugger commands, \code {c} (\code {continue})}{310}
+\entry {debugger commands, \code {clear}}{309}
+\entry {debugger commands, \code {commands}}{310}
+\entry {debugger commands, \code {condition}}{309}
+\entry {debugger commands, \code {continue}}{310}
+\entry {debugger commands, \code {d} (\code {delete})}{309}
+\entry {debugger commands, \code {delete}}{309}
+\entry {debugger commands, \code {disable}}{309}
+\entry {debugger commands, \code {display}}{311}
+\entry {debugger commands, \code {down}}{313}
+\entry {debugger commands, \code {dump}}{314}
+\entry {debugger commands, \code {e} (\code {enable})}{309}
+\entry {debugger commands, \code {enable}}{309}
+\entry {debugger commands, \code {end}}{310}
+\entry {debugger commands, \code {eval}}{311}
+\entry {debugger commands, \code {f} (\code {frame})}{313}
+\entry {debugger commands, \code {finish}}{310}
+\entry {debugger commands, \code {frame}}{313}
+\entry {debugger commands, \code {h} (\code {help})}{315}
+\entry {debugger commands, \code {help}}{315}
+\entry {debugger commands, \code {i} (\code {info})}{313}
+\entry {debugger commands, \code {ignore}}{310}
+\entry {debugger commands, \code {info}}{313}
+\entry {debugger commands, \code {l} (\code {list})}{315}
+\entry {debugger commands, \code {list}}{315}
+\entry {debugger commands, \code {n} (\code {next})}{310}
+\entry {debugger commands, \code {next}}{310}
+\entry {debugger commands, \code {nexti}}{310}
+\entry {debugger commands, \code {ni} (\code {nexti})}{310}
+\entry {debugger commands, \code {o} (\code {option})}{314}
+\entry {debugger commands, \code {option}}{314}
+\entry {debugger commands, \code {p} (\code {print})}{311}
+\entry {debugger commands, \code {print}}{311}
+\entry {debugger commands, \code {printf}}{312}
+\entry {debugger commands, \code {q} (\code {quit})}{316}
+\entry {debugger commands, \code {quit}}{316}
+\entry {debugger commands, \code {r} (\code {run})}{311}
+\entry {debugger commands, \code {return}}{310}
+\entry {debugger commands, \code {run}}{311}
+\entry {debugger commands, \code {s} (\code {step})}{311}
+\entry {debugger commands, \code {set}}{312}
+\entry {debugger commands, \code {si} (\code {stepi})}{311}
+\entry {debugger commands, \code {silent}}{310}
+\entry {debugger commands, \code {step}}{311}
+\entry {debugger commands, \code {stepi}}{311}
+\entry {debugger commands, \code {t} (\code {tbreak})}{310}
+\entry {debugger commands, \code {tbreak}}{310}
+\entry {debugger commands, \code {trace}}{316}
+\entry {debugger commands, \code {u} (\code {until})}{311}
+\entry {debugger commands, \code {undisplay}}{312}
+\entry {debugger commands, \code {until}}{311}
+\entry {debugger commands, \code {unwatch}}{312}
+\entry {debugger commands, \code {up}}{313}
+\entry {debugger commands, \code {w} (\code {watch})}{312}
+\entry {debugger commands, \code {watch}}{312}
+\entry {debugger default list amount}{314}
+\entry {debugger history file}{314}
+\entry {debugger history size}{314}
+\entry {debugger options}{314}
+\entry {debugger prompt}{314}
+\entry {debugger, how to start}{305}
+\entry {debugger, read commands from a file}{314}
+\entry {debugging \command {awk} programs}{303}
+\entry {debugging \command {gawk}, bug reports}{420}
+\entry {decimal point character, locale specific}{31}
+\entry {decrement operators}{109}
+\entry {\code {default} keyword}{129}
+\entry {Deifik, Scott}{10, 404, 421}
+\entry {\code {delete} \var {array}}{152}
+\entry {delete breakpoint at location}{309}
+\entry {delete breakpoint by number}{309}
+\entry {\code {delete} debugger command}{309}
+\entry {\code {delete} statement}{151}
+\entry {delete watchpoint}{312}
+\entry {deleting elements in arrays}{151}
+\entry {deleting entire arrays}{152}
+\entry {Demaille, Akim}{10}
+\entry {describe call stack frame, in debugger}{313}
+\entry {differences between \command {gawk} and \command {awk}}{164}
+\entry {differences in \command {awk} and \command {gawk}, \code {ARGC}/\code 
{ARGV} variables}{144}
+\entry {differences in \command {awk} and \command {gawk}, \code {ARGIND} 
variable}{138}
+\entry {differences in \command {awk} and \command {gawk}, array elements, 
deleting}{152}
+\entry {differences in \command {awk} and \command {gawk}, \code {AWKLIBPATH} 
environment variable}{35}
+\entry {differences in \command {awk} and \command {gawk}, \code {AWKPATH} 
environment variable}{34}
+\entry {differences in \command {awk} and \command {gawk}, \code {BEGIN}/\code 
{END} patterns}{123}
+\entry {differences in \command {awk} and \command {gawk}, \code 
{BEGINFILE}/\code {ENDFILE} patterns}{123}
+\entry {differences in \command {awk} and \command {gawk}, \code {BINMODE} 
variable}{135, 415}
+\entry {differences in \command {awk} and \command {gawk}, \code {close()} 
function}{95, 96}
+\entry {differences in \command {awk} and \command {gawk}, command line 
directories}{79}
+\entry {differences in \command {awk} and \command {gawk}, \code {ERRNO} 
variable}{138}
+\entry {differences in \command {awk} and \command {gawk}, error messages}{92}
+\entry {differences in \command {awk} and \command {gawk}, \code {FIELDWIDTHS} 
variable}{135}
+\entry {differences in \command {awk} and \command {gawk}, \code {FPAT} 
variable}{135}
+\entry {differences in \command {awk} and \command {gawk}, \code {FUNCTAB} 
variable}{139}
+\entry {differences in \command {awk} and \command {gawk}, function arguments 
(\command {gawk})}{159}
+\entry {differences in \command {awk} and \command {gawk}, \code {getline} 
command}{71}
+\entry {differences in \command {awk} and \command {gawk}, \code {IGNORECASE} 
variable}{136}
+\entry {differences in \command {awk} and \command {gawk}, implementation 
limitations}{76, 92}
+\entry {differences in \command {awk} and \command {gawk}, indirect function 
calls}{193}
+\entry {differences in \command {awk} and \command {gawk}, input/output 
operators}{75, 91}
+\entry {differences in \command {awk} and \command {gawk}, line 
continuations}{115}
+\entry {differences in \command {awk} and \command {gawk}, \code {LINT} 
variable}{136}
+\entry {differences in \command {awk} and \command {gawk}, \code {match()} 
function}{165}
+\entry {differences in \command {awk} and \command {gawk}, \code {print}/\code 
{printf} statements}{86}
+\entry {differences in \command {awk} and \command {gawk}, \code {PROCINFO} 
array}{139}
+\entry {differences in \command {awk} and \command {gawk}, record 
separators}{55}
+\entry {differences in \command {awk} and \command {gawk}, regexp 
constants}{99}
+\entry {differences in \command {awk} and \command {gawk}, regular 
expressions}{50}
+\entry {differences in \command {awk} and \command {gawk}, \code {RS}/\code 
{RT} variables}{56}
+\entry {differences in \command {awk} and \command {gawk}, \code {RT} 
variable}{142}
+\entry {differences in \command {awk} and \command {gawk}, single-character 
fields}{63}
+\entry {differences in \command {awk} and \command {gawk}, \code {split()} 
function}{167}
+\entry {differences in \command {awk} and \command {gawk}, strings}{97}
+\entry {differences in \command {awk} and \command {gawk}, strings, 
storing}{56}
+\entry {differences in \command {awk} and \command {gawk}, \code {SYMTAB} 
variable}{142}
+\entry {differences in \command {awk} and \command {gawk}, \code {TEXTDOMAIN} 
variable}{137}
+\entry {differences in \command {awk} and \command {gawk}, trunc-mod 
operation}{104}
+\entry {directories, command line}{79}
+\entry {directories, searching}{274}
+\entry {directories, searching for shared libraries}{35}
+\entry {directories, searching for source files}{34}
+\entry {disable breakpoint}{309}
+\entry {\code {disable} debugger command}{309}
+\entry {\code {display} debugger command}{311}
+\entry {display debugger options}{314}
+\entry {division}{104}
+\entry {\code {do}-\code {while} statement}{128}
+\entry {\code {do}-\code {while} statement, use of regexps in}{41}
+\entry {documentation, of \command {awk} programs}{202}
+\entry {documentation, online}{8}
+\entry {documents\comma {} searching}{253}
+\entry {dollar sign (\code {$}), \code {$} field operator}{57, 117}
+\entry {dollar sign (\code {$}), incrementing fields and arrays}{109}
+\entry {dollar sign (\code {$}), regexp operator}{44}
+\entry {double precision floating-point}{319}
+\entry {double quote (\code {"}) in shell commands}{14}
+\entry {double quote (\code {"}), in regexp constants}{51}
+\entry {double quote (\code {"}), in shell commands}{17}
+\entry {\code {down} debugger command}{313}
+\entry {Drepper, Ulrich}{10}
+\entry {dump all variables of a program}{29}
+\entry {\code {dump} debugger command}{314}
+\entry {\code {dupword.awk} program}{254}
+\entry {dynamic profiling}{291}
+\entry {dynamically loaded extensions}{335}
+\initial {E}
+\entry {\code {e} debugger command (alias for \code {enable})}{309}
+\entry {EBCDIC}{208}
+\entry {effective group ID of \command {gawk} user}{140}
+\entry {effective user ID of \command {gawk} user}{140}
+\entry {\command {egrep} utility}{47, 238}
+\entry {\code {egrep.awk} program}{239}
+\entry {elements in arrays, assigning values}{147}
+\entry {elements in arrays, deleting}{151}
+\entry {elements in arrays, order of access by \code {in} operator}{149}
+\entry {elements in arrays, scanning}{148}
+\entry {elements of arrays}{146}
+\entry {email address for bug reports, \code address@hidden
+\entry {\code {EMISTERED}}{287}
+\entry {empty array elements}{147}
+\entry {empty pattern}{124}
+\entry {empty strings}{55}
+\entry {empty strings, See null strings}{62}
+\entry {enable breakpoint}{309}
+\entry {\code {enable} debugger command}{309}
+\entry {\code {end} debugger command}{310}
+\entry {\code {END} pattern}{122}
+\entry {\code {END} pattern, and profiling}{289}
+\entry {\code {END} pattern, \code {assert()} user-defined function and}{205}
+\entry {\code {END} pattern, backslash continuation and}{242}
+\entry {\code {END} pattern, Boolean patterns and}{121}
+\entry {\code {END} pattern, \code {exit} statement and}{134}
+\entry {\code {END} pattern, \code {next}/\code {nextfile} statements 
and}{123, 133}
+\entry {\code {END} pattern, operators and}{122}
+\entry {\code {END} pattern, \code {print} statement and}{123}
+\entry {\code {endfile()} user-defined function}{213}
+\entry {\code {ENDFILE} pattern}{123}
+\entry {\code {ENDFILE} pattern, Boolean patterns and}{121}
+\entry {\code {endgrent()} function (C library)}{229}
+\entry {\code {endgrent()} user-defined function}{229}
+\entry {\code {endpwent()} function (C library)}{225}
+\entry {\code {endpwent()} user-defined function}{225}
+\entry {\code {ENVIRON} array}{138}
+\entry {environment variables used by \command {gawk}}{34}
+\entry {environment variables, in \code {ENVIRON} array}{138}
+\entry {epoch, definition of}{442}
+\entry {equals sign (\code {=}), \code {=} operator}{106}
+\entry {equals sign (\code {=}), \code {==} operator}{111, 118}
+\entry {EREs (Extended Regular Expressions)}{47}
+\entry {\code {ERRNO} variable}{138, 288}
+\entry {\code {ERRNO} variable, with \code {BEGINFILE} pattern}{124}
+\entry {\code {ERRNO} variable, with \command {close()} function}{96}
+\entry {\code {ERRNO} variable, with \command {getline} command}{71}
+\entry {error handling}{92}
+\entry {error handling, \code {ERRNO} variable and}{138}
+\entry {error output}{92}
+\entry {escape processing, \code {gsub()}/\code {gensub()}/\code {sub()} 
functions}{170}
+\entry {escape sequences, in strings}{42}
+\entry {\code {eval} debugger command}{311}
+\entry {evaluate expressions, in debugger}{311}
+\entry {evaluation order}{109}
+\entry {evaluation order, concatenation}{105}
+\entry {evaluation order, functions}{159}
+\entry {examining fields}{56}
+\entry {exclamation point (\code {!}), \code {!} operator}{114, 117, 241}
+\entry {exclamation point (\code {!}), \code {!=} operator}{111, 118}
+\entry {exclamation point (\code {!}), \code {!~} operator}{41, 50, 51, 98, 
111, 113, 118, 120}
+\entry {\code {exit} statement}{134}
+\entry {exit status, of \command {gawk}}{37}
+\entry {exit status, of VMS}{419}
+\entry {exit the debugger}{316}
+\entry {\code {exp()} function}{160}
+\entry {\command {expand} utility}{20}
+\entry {Expat XML parser library}{387}
+\entry {exponent}{160}
+\entry {expressions}{97}
+\entry {expressions, as patterns}{119}
+\entry {expressions, assignment}{106}
+\entry {expressions, Boolean}{113}
+\entry {expressions, comparison}{110}
+\entry {expressions, conditional}{115}
+\entry {expressions, matching, See comparison expressions}{110}
+\entry {expressions, selecting}{115}
+\entry {Extended Regular Expressions (EREs)}{47}
+\entry {extension API}{337}
+\entry {extension API informational variables}{365}
+\entry {extension API version}{365}
+\entry {extension API, version number}{141}
+\entry {extension example}{368}
+\entry {extension registration}{344}
+\entry {extension search path}{368}
+\entry {extensions distributed with \command {gawk}}{378}
+\entry {extensions, allocating memory}{342}
+\entry {extensions, Brian Kernighan's \command {awk}}{393, 401}
+\entry {extensions, common\comma {} \code {**} operator}{104}
+\entry {extensions, common\comma {} \code {**=} operator}{108}
+\entry {extensions, common\comma {} \code {/dev/stderr} special file}{93}
+\entry {extensions, common\comma {} \code {/dev/stdin} special file}{93}
+\entry {extensions, common\comma {} \code {/dev/stdout} special file}{93}
+\entry {extensions, common\comma {} \code {{\tt \backslashcurfont }x} escape 
sequence}{42}
+\entry {extensions, common\comma {} \code {BINMODE} variable}{415}
+\entry {extensions, common\comma {} \code {delete} to delete entire 
arrays}{152}
+\entry {extensions, common\comma {} \code {fflush()} function}{174}
+\entry {extensions, common\comma {} \code {func} keyword}{185}
+\entry {extensions, common\comma {} \code {length()} applied to an array}{164}
+\entry {extensions, common\comma {} \code {RS} as a regexp}{55}
+\entry {extensions, common\comma {} single character fields}{63}
+\entry {extensions, in \command {gawk}, not in POSIX \command {awk}}{393}
+\entry {extensions, \command {mawk}}{401}
+\entry {extensions, where to find}{387}
+\entry {\code {extract.awk} program}{264}
+\entry {extraction, of marked strings (internationalization)}{297}
+\initial {F}
+\entry {\code {f} debugger command (alias for \code {frame})}{313}
+\entry {false, logical}{109}
+\entry {FDL (Free Documentation License)}{461}
+\entry {features, adding to \command {gawk}}{426}
+\entry {features, advanced, See advanced features}{39}
+\entry {features, deprecated}{39}
+\entry {features, undocumented}{39}
+\entry {Fenlason, Jay}{4, 403}
+\entry {\code {fflush()} function}{173}
+\entry {field numbers}{57}
+\entry {field operator \code {$}}{57}
+\entry {field operators\comma {} dollar sign as}{57}
+\entry {field separator, in multiline records}{69}
+\entry {field separator, on command line}{63}
+\entry {field separator, POSIX and}{65}
+\entry {field separators}{60, 135, 137}
+\entry {field separators, choice of}{61}
+\entry {field separators, \code {FIELDWIDTHS} variable and}{135}
+\entry {field separators, \code {FPAT} variable and}{135}
+\entry {field separators, POSIX and}{56}
+\entry {field separators, regular expressions as}{61}
+\entry {field separators, See Also \code {OFS}}{59}
+\entry {field separators, spaces as}{235}
+\entry {fields}{53, 56, 436}
+\entry {fields, adding}{59}
+\entry {fields, changing contents of}{58}
+\entry {fields, cutting}{233}
+\entry {fields, examining}{56}
+\entry {fields, number of}{57}
+\entry {fields, numbers}{57}
+\entry {fields, printing}{81}
+\entry {fields, separating}{60}
+\entry {fields, single-character}{63}
+\entry {\code {FIELDWIDTHS} variable}{66, 135}
+\entry {file descriptors}{92}
+\entry {file names, distinguishing}{138}
+\entry {file names, in compatibility mode}{94}
+\entry {file names, standard streams in \command {gawk}}{93}
+\entry {\code {FILENAME} variable}{53, 139}
+\entry {\code {FILENAME} variable, \code {getline}\comma {} setting with}{76}
+\entry {filenames, assignments as}{216}
+\entry {files, \code {.gmo}}{294}
+\entry {files, \code {.gmo}, converting from \code {.po}}{300}
+\entry {files, \code {.gmo}, specifying directory of}{294, 295}
+\entry {files, \code {.po}}{293, 297}
+\entry {files, \code {.po}, converting to \code {.gmo}}{300}
+\entry {files, \code {.pot}}{293}
+\entry {files, \code {/dev/\dots {}} special files}{93}
+\entry {files, \code {/inet/\dots {}} (\command {gawk})}{287}
+\entry {files, \code {/inet4/\dots {}} (\command {gawk})}{287}
+\entry {files, \code {/inet6/\dots {}} (\command {gawk})}{287}
+\entry {files, \command {awk} programs in}{14}
+\entry {files, \code {awkprof.out}}{289}
+\entry {files, \file {awkvars.out}}{29}
+\entry {files, closing}{173}
+\entry {files, descriptors, See file descriptors}{92}
+\entry {files, group}{225}
+\entry {files, initialization and cleanup}{212}
+\entry {files, input, See input files}{14}
+\entry {files, log\comma {} timestamps in}{176}
+\entry {files, managing}{212}
+\entry {files, managing, data file boundaries}{212}
+\entry {files, message object}{294}
+\entry {files, message object, converting from portable object files}{300}
+\entry {files, message object, specifying directory of}{294, 295}
+\entry {files, multiple passes over}{34}
+\entry {files, multiple\comma {} duplicating output into}{246}
+\entry {files, output, See output files}{94}
+\entry {files, password}{221}
+\entry {files, portable object}{293, 297}
+\entry {files, portable object template}{293}
+\entry {files, portable object, converting to message object files}{300}
+\entry {files, portable object, generating}{29}
+\entry {files, processing\comma {} \code {ARGIND} variable and}{138}
+\entry {files, reading}{214}
+\entry {files, reading, multiline records}{69}
+\entry {files, searching for regular expressions}{238}
+\entry {files, skipping}{214}
+\entry {files, source\comma {} search path for}{274}
+\entry {files, splitting}{244}
+\entry {files, Texinfo\comma {} extracting programs from}{263}
+\entry {find substring in string}{163}
+\entry {finding extensions}{368}
+\entry {\code {finish} debugger command}{310}
+\entry {Fish, Fred}{404}
+\entry {fixed-width data}{66}
+\entry {flag variables}{114, 246}
+\entry {floating-point, numbers}{319, 320}
+\entry {floating-point, numbers\comma {} arbitrary precision}{319}
+\entry {floating-point, VAX/VMS}{419}
+\entry {flush buffered output}{173}
+\entry {\code {fnmatch()} extension function}{381}
+\entry {\code {FNR} variable}{53, 139}
+\entry {\code {FNR} variable, changing}{143}
+\entry {\code {for} statement}{128}
+\entry {\code {for} statement, looping over arrays}{148}
+\entry {\code {fork()} extension function}{382}
+\entry {format specifiers}{84}
+\entry {format specifiers, mixing regular with positional specifiers}{298}
+\entry {format specifiers, \code {printf} statement}{85}
+\entry {format specifiers, \code {strftime()} function (\command {gawk})}{178}
+\entry {format time string}{177}
+\entry {formats\comma {} numeric output}{84}
+\entry {formatting output}{84}
+\entry {formatting strings}{167}
+\entry {forward slash (\code {/}) to enclose regular expressions}{41}
+\entry {forward slash (\code {/}), \code {/} operator}{117}
+\entry {forward slash (\code {/}), \code {/=} operator}{107, 118}
+\entry {forward slash (\code {/}), \code {/=} operator, vs. \code {/=\dots 
{}/} regexp constant}{108}
+\entry {forward slash (\code {/}), patterns and}{120}
+\entry {\code {FPAT} variable}{68, 135}
+\entry {\code {frame} debugger command}{313}
+\entry {Free Documentation License (FDL)}{461}
+\entry {Free Software Foundation (FSF)}{8, 407, 443}
+\entry {FreeBSD}{448}
+\entry {\code {FS} variable}{60, 135}
+\entry {\code {FS} variable, \code {--field-separator} option and}{27}
+\entry {\code {FS} variable, as null string}{63}
+\entry {\code {FS} variable, as TAB character}{31}
+\entry {\code {FS} variable, changing value of}{61}
+\entry {\code {FS} variable, running \command {awk} programs and}{234}
+\entry {\code {FS} variable, setting from command line}{63}
+\entry {\code {FS}, containing \code {^}}{62}
+\entry {\code {FS}, in multiline records}{69}
+\entry {FSF (Free Software Foundation)}{8, 407, 443}
+\entry {\code {fts()} extension function}{379}
+\entry {\code {FUNCTAB} array}{139}
+\entry {function calls}{115}
+\entry {function calls, indirect}{193}
+\entry {function definition example}{185}
+\entry {function pointers}{193}
+\entry {functions, arrays as parameters to}{190}
+\entry {functions, built-in}{115, 159}
+\entry {functions, built-in, evaluation order}{159}
+\entry {functions, defining}{184}
+\entry {functions, library}{201}
+\entry {functions, library, assertions}{204}
+\entry {functions, library, associative arrays and}{202}
+\entry {functions, library, C library}{216}
+\entry {functions, library, character values as numbers}{207}
+\entry {functions, library, Cliff random numbers}{206}
+\entry {functions, library, command-line options}{216}
+\entry {functions, library, example program for using}{268}
+\entry {functions, library, group database\comma {} reading}{225}
+\entry {functions, library, managing data files}{212}
+\entry {functions, library, managing time}{209}
+\entry {functions, library, merging arrays into strings}{209}
+\entry {functions, library, rounding numbers}{206}
+\entry {functions, library, user database\comma {} reading}{221}
+\entry {functions, names of}{145, 184}
+\entry {functions, recursive}{185}
+\entry {functions, string-translation}{183}
+\entry {functions, undefined}{190}
+\entry {functions, user-defined}{184}
+\entry {functions, user-defined, calling}{187}
+\entry {functions, user-defined, counts, in a profile}{291}
+\entry {functions, user-defined, library of}{201}
+\entry {functions, user-defined, \code {next}/\code {nextfile} statements 
and}{133}
+\initial {G}
+\entry {G-d}{10}
+\entry {Garfinkle, Scott}{404}
+\entry {\command {gawk} program, dynamic profiling}{291}
+\entry {\command {gawk} version}{141}
+\entry {\command {gawk}, \code {ARGIND} variable in}{33}
+\entry {\command {gawk}, \command {awk} and}{3, 5}
+\entry {\command {gawk}, bitwise operations in}{181}
+\entry {\command {gawk}, \code {break} statement in}{131}
+\entry {\command {gawk}, built-in variables and}{135}
+\entry {\command {gawk}, character classes and}{48}
+\entry {\command {gawk}, coding style in}{426}
+\entry {\command {gawk}, command-line options, and regular expressions}{49}
+\entry {\command {gawk}, comparison operators and}{112}
+\entry {\command {gawk}, configuring}{412}
+\entry {\command {gawk}, configuring, options}{411}
+\entry {\command {gawk}, \code {continue} statement in}{132}
+\entry {\command {gawk}, distribution}{408}
+\entry {\command {gawk}, \code {ERRNO} variable in}{71, 96, 124, 138, 288}
+\entry {\command {gawk}, escape sequences}{44}
+\entry {\command {gawk}, extensions\comma {} disabling}{31}
+\entry {\command {gawk}, features, adding}{426}
+\entry {\command {gawk}, features, advanced}{279}
+\entry {\command {gawk}, field separators and}{136}
+\entry {\command {gawk}, \code {FIELDWIDTHS} variable in}{66, 135}
+\entry {\command {gawk}, file names in}{92}
+\entry {\command {gawk}, format-control characters}{85, 86}
+\entry {\command {gawk}, \code {FPAT} variable in}{68, 135}
+\entry {\command {gawk}, \code {FUNCTAB} array in}{139}
+\entry {\command {gawk}, function arguments and}{159}
+\entry {\command {gawk}, hexadecimal numbers and}{98}
+\entry {\command {gawk}, \code {IGNORECASE} variable in}{50, 136, 146, 162, 
285}
+\entry {\command {gawk}, implementation issues}{425}
+\entry {\command {gawk}, implementation issues, debugging}{425}
+\entry {\command {gawk}, implementation issues, downward compatibility}{425}
+\entry {\command {gawk}, implementation issues, limits}{76}
+\entry {\command {gawk}, implementation issues, pipes}{92}
+\entry {\command {gawk}, installing}{407}
+\entry {\command {gawk}, internationalization and, See 
internationalization}{293}
+\entry {\command {gawk}, interpreter\comma {} adding code to}{376}
+\entry {\command {gawk}, interval expressions and}{46}
+\entry {\command {gawk}, line continuation in}{115}
+\entry {\command {gawk}, \code {LINT} variable in}{136}
+\entry {\command {gawk}, list of contributors to}{403}
+\entry {\command {gawk}, MS-DOS version of}{415}
+\entry {\command {gawk}, MS-Windows version of}{415}
+\entry {\command {gawk}, newlines in}{23}
+\entry {\command {gawk}, octal numbers and}{98}
+\entry {\command {gawk}, OS/2 version of}{415}
+\entry {\command {gawk}, \code {PROCINFO} array in}{139, 141, 177, 287}
+\entry {\command {gawk}, regexp constants and}{99}
+\entry {\command {gawk}, regular expressions, case sensitivity}{50}
+\entry {\command {gawk}, regular expressions, operators}{48}
+\entry {\command {gawk}, regular expressions, precedence}{46}
+\entry {\command {gawk}, \code {RT} variable in}{55, 71, 142}
+\entry {\command {gawk}, See Also \command {awk}}{3}
+\entry {\command {gawk}, source code\comma {} obtaining}{407}
+\entry {\command {gawk}, splitting fields and}{67}
+\entry {\command {gawk}, string-translation functions}{183}
+\entry {\command {gawk}, \code {SYMTAB} array in}{142}
+\entry {\command {gawk}, \code {TEXTDOMAIN} variable in}{137}
+\entry {\command {gawk}, timestamps}{176}
+\entry {\command {gawk}, uses for}{3}
+\entry {\command {gawk}, versions of, information about\comma {} printing}{32}
+\entry {\command {gawk}, VMS version of}{417}
+\entry {\command {gawk}, word-boundary operator}{49}
+\entry {\code {gawkextlib}}{387}
+\entry {\code {gawkextlib} project}{387}
+\entry {General Public License (GPL)}{443}
+\entry {General Public License, See GPL}{8}
+\entry {generate time values}{177}
+\entry {\code {gensub()} function (\command {gawk})}{99, 162}
+\entry {\code {gensub()} function (\command {gawk}), escape processing}{170}
+\entry {\code {getaddrinfo()} function (C library)}{288}
+\entry {\code {getgrent()} function (C library)}{225, 229}
+\entry {\code {getgrent()} user-defined function}{225, 229}
+\entry {\code {getgrgid()} function (C library)}{229}
+\entry {\code {getgrgid()} user-defined function}{229}
+\entry {\code {getgrnam()} function (C library)}{228}
+\entry {\code {getgrnam()} user-defined function}{228}
+\entry {\code {getgruser()} function (C library)}{229}
+\entry {\code {getgruser()} function, user-defined}{229}
+\entry {\code {getline} command}{53}
+\entry {\code {getline} command, \code {_gr_init()} user-defined function}{227}
+\entry {\code {getline} command, \code {_pw_init()} function}{224}
+\entry {\code {getline} command, coprocesses\comma {} using from}{75, 94}
+\entry {\code {getline} command, deadlock and}{286}
+\entry {\code {getline} command, explicit input with}{71}
+\entry {\code {getline} command, \code {FILENAME} variable and}{76}
+\entry {\code {getline} command, return values}{71}
+\entry {\code {getline} command, variants}{77}
+\entry {\code {getline} from a file}{73}
+\entry {\code {getline} into a variable}{72}
+\entry {\code {getline} statement, \code {BEGINFILE}/\code {ENDFILE} patterns 
and}{124}
+\entry {\code {getlocaltime()} user-defined function}{209}
+\entry {\code {getopt()} function (C library)}{216}
+\entry {\code {getopt()} user-defined function}{218}
+\entry {\code {getpwent()} function (C library)}{221, 225}
+\entry {\code {getpwent()} user-defined function}{221, 225}
+\entry {\code {getpwnam()} function (C library)}{224}
+\entry {\code {getpwnam()} user-defined function}{224}
+\entry {\code {getpwuid()} function (C library)}{224}
+\entry {\code {getpwuid()} user-defined function}{224}
+\entry {\code {gettext} library}{293}
+\entry {\code {gettext} library, locale categories}{294}
+\entry {\code {gettext()} function (C library)}{294}
+\entry {\code {gettimeofday()} extension function}{386}
+\entry {\command {git} utility}{387, 422, 425, 427}
+\entry {\command {git}, use of for \command {gawk} source code}{429}
+\entry {GMP}{328}
+\entry {GNITS mailing list}{10}
+\entry {GNU \command {awk}, See \command {gawk}}{3}
+\entry {GNU Free Documentation License}{461}
+\entry {GNU General Public License}{443}
+\entry {GNU Lesser General Public License}{445}
+\entry {GNU long options}{27}
+\entry {GNU long options, printing list of}{30}
+\entry {GNU Project}{8, 443}
+\entry {GNU/Linux}{8, 300, 448}
+\entry {Gordon, Assaf}{404}
+\entry {GPL (General Public License)}{8, 443}
+\entry {GPL (General Public License), printing}{28}
+\entry {\command {grcat} program}{225}
+\entry {Grigera, Juan}{404}
+\entry {group database, reading}{225}
+\entry {group file}{225}
+\entry {group ID of \command {gawk} user}{140}
+\entry {groups\comma {} information about}{225}
+\entry {\code {gsub()} function}{99, 163}
+\entry {\code {gsub()} function, arguments of}{169}
+\entry {\code {gsub()} function, escape processing}{170}
+\initial {H}
+\entry {\code {h} debugger command (alias for \code {help})}{315}
+\entry {Hankerson, Darrel}{10, 404}
+\entry {Haque, John}{404}
+\entry {Hartholz, Elaine}{10}
+\entry {Hartholz, Marshall}{10}
+\entry {Hasegawa, Isamu}{404}
+\entry {\code {help} debugger command}{315}
+\entry {hexadecimal numbers}{97}
+\entry {hexadecimal values\comma {} enabling interpretation of}{30}
+\entry {history expansion, in debugger}{316}
+\entry {\code {histsort.awk} program}{262}
+\entry {Hughes, Phil}{10}
+\entry {\code {HUP} signal, for dynamic profiling}{292}
+\entry {hyphen (\code {-}), \code {-} operator}{117, 118}
+\entry {hyphen (\code {-}), \code {--} operator}{109, 117}
+\entry {hyphen (\code {-}), \code {-=} operator}{107, 118}
+\entry {hyphen (\code {-}), filenames beginning with}{28}
+\entry {hyphen (\code {-}), in bracket expressions}{47}
+\initial {I}
+\entry {\code {i} debugger command (alias for \code {info})}{313}
+\entry {\command {id} utility}{242}
+\entry {\code {id.awk} program}{242}
+\entry {IEEE-754 format}{325}
+\entry {\code {if} statement}{126}
+\entry {\code {if} statement, actions\comma {} changing}{121}
+\entry {\code {if} statement, use of regexps in}{41}
+\entry {\code {igawk.sh} program}{269}
+\entry {ignore breakpoint}{310}
+\entry {\code {ignore} debugger command}{310}
+\entry {\code {IGNORECASE} variable}{136}
+\entry {\code {IGNORECASE} variable, and array indices}{146}
+\entry {\code {IGNORECASE} variable, and array sorting functions}{285}
+\entry {\code {IGNORECASE} variable, in example programs}{201}
+\entry {\code {IGNORECASE} variable, with \code {~} and \code {!~} 
operators}{50}
+\entry {Illumos}{423}
+\entry {Illumos, POSIX-compliant \command {awk}}{423}
+\entry {implementation issues, \command {gawk}}{425}
+\entry {implementation issues, \command {gawk}, limits}{76, 92}
+\entry {implementation issues\comma {} \command {gawk}, debugging}{425}
+\entry {\code {in} operator}{111, 118, 129}
+\entry {\code {in} operator, index existence in multidimensional arrays}{154}
+\entry {\code {in} operator, order of array access}{149}
+\entry {\code {in} operator, testing if array element exists}{147}
+\entry {\code {in} operator, use in loops}{148}
+\entry {increment operators}{108}
+\entry {\code {index()} function}{163}
+\entry {indexing arrays}{146}
+\entry {indirect function calls}{193}
+\entry {infinite precision}{319}
+\entry {\code {info} debugger command}{313}
+\entry {initialization, automatic}{22}
+\entry {\code {inplace} extension}{383}
+\entry {input files}{53}
+\entry {input files, closing}{94}
+\entry {input files, counting elements in}{251}
+\entry {input files, examples}{18}
+\entry {input files, reading}{53}
+\entry {input files, running \command {awk} without}{14}
+\entry {input files, variable assignments and}{33}
+\entry {input pipeline}{74}
+\entry {input record, length of}{164}
+\entry {input redirection}{73}
+\entry {input, data\comma {} nondecimal}{279}
+\entry {input, explicit}{71}
+\entry {input, files, See input files}{69}
+\entry {input, multiline records}{69}
+\entry {input, splitting into records}{53}
+\entry {input, standard}{14, 92}
+\entry {input/output functions}{173}
+\entry {input/output, binary}{135}
+\entry {input/output, from \code {BEGIN} and \code {END}}{123}
+\entry {input/output, two-way}{286}
+\entry {insomnia, cure for}{254}
+\entry {installation, VMS}{417}
+\entry {installing \command {gawk}}{407}
+\entry {instruction tracing, in debugger}{314}
+\entry {\code {int()} function}{160}
+\entry {\code {INT} signal (MS-Windows)}{292}
+\entry {integer array indices}{153}
+\entry {integers}{319}
+\entry {integers, arbitrary precision}{332}
+\entry {integers, unsigned}{319}
+\entry {interacting with other programs}{174}
+\entry {internationalization}{183, 293}
+\entry {internationalization, localization}{137, 293}
+\entry {internationalization, localization, character classes}{48}
+\entry {internationalization, localization, \command {gawk} and}{293}
+\entry {internationalization, localization, locale categories}{294}
+\entry {internationalization, localization, marked strings}{295}
+\entry {internationalization, localization, portability and}{298}
+\entry {internationalizing a program}{293}
+\entry {interpreted programs}{435, 444}
+\entry {interval expressions, regexp operator}{46}
+\entry {\code {inventory-shipped} file}{19}
+\entry {invoke shell command}{174}
+\entry {\code {isarray()} function (\command {gawk})}{183}
+\entry {ISO}{444}
+\entry {ISO 8859-1}{440}
+\entry {ISO Latin-1}{440}
+\initial {J}
+\entry {Jacobs, Andrew}{223}
+\entry {Jaegermann, Michal}{10, 404}
+\entry {Java implementation of \command {awk}}{423}
+\entry {Java programming language}{444}
+\entry {\command {jawk}}{423}
+\entry {Jedi knights}{39}
+\entry {\code {join()} user-defined function}{209}
+\initial {K}
+\entry {Kahrs, J\"urgen}{10, 404}
+\entry {Kasal, Stepan}{10}
+\entry {Kenobi, Obi-Wan}{39}
+\entry {Kernighan, Brian}{4, 7, 10, 74, 104, 201, 393, 403, 421, 437, 441}
+\entry {\command {kill} command\comma {} dynamic profiling}{292}
+\entry {Knights, jedi}{39}
+\entry {Knuth, Donald}{319}
+\entry {Kwok, Conrad}{404}
+\initial {L}
+\entry {\code {l} debugger command (alias for \code {list})}{315}
+\entry {\code {labels.awk} program}{259}
+\entry {languages\comma {} data-driven}{436}
+\entry {Laurie, Dirk}{331}
+\entry {\code {LC_ALL} locale category}{295}
+\entry {\code {LC_COLLATE} locale category}{294}
+\entry {\code {LC_CTYPE} locale category}{294}
+\entry {\code {LC_MESSAGES} locale category}{294}
+\entry {\code {LC_MESSAGES} locale category, \code {bindtextdomain()} function 
(\command {gawk})}{296}
+\entry {\code {LC_MONETARY} locale category}{294}
+\entry {\code {LC_NUMERIC} locale category}{295}
+\entry {\code {LC_RESPONSE} locale category}{295}
+\entry {\code {LC_TIME} locale category}{295}
+\entry {left angle bracket (\code {<}), \code {<} operator}{111, 118}
+\entry {left angle bracket (\code {<}), \code {<} operator (I/O)}{73}
+\entry {left angle bracket (\code {<}), \code {<=} operator}{111, 118}
+\entry {left shift}{181}
+\entry {left shift, bitwise}{181}
+\entry {leftmost longest match}{69}
+\entry {length of input record}{164}
+\entry {length of string}{164}
+\entry {\code {length()} function}{164}
+\entry {Lesser General Public License (LGPL)}{445}
+\entry {LGPL (Lesser General Public License)}{445}
+\entry {libmawk}{423}
+\entry {libraries of \command {awk} functions}{201}
+\entry {libraries of \command {awk} functions, assertions}{204}
+\entry {libraries of \command {awk} functions, associative arrays and}{202}
+\entry {libraries of \command {awk} functions, character values as 
numbers}{207}
+\entry {libraries of \command {awk} functions, command-line options}{216}
+\entry {libraries of \command {awk} functions, example program for using}{268}
+\entry {libraries of \command {awk} functions, group database, reading}{225}
+\entry {libraries of \command {awk} functions, managing, data files}{212}
+\entry {libraries of \command {awk} functions, managing, time}{209}
+\entry {libraries of \command {awk} functions, merging arrays into 
strings}{209}
+\entry {libraries of \command {awk} functions, rounding numbers}{206}
+\entry {libraries of \command {awk} functions, user database, reading}{221}
+\entry {line breaks}{23}
+\entry {line continuations}{114}
+\entry {line continuations, \command {gawk}}{115}
+\entry {line continuations, in \code {print} statement}{82}
+\entry {line continuations, with C shell}{22}
+\entry {lines, blank, printing}{81}
+\entry {lines, counting}{251}
+\entry {lines, duplicate\comma {} removing}{262}
+\entry {lines, matching ranges of}{121}
+\entry {lines, skipping between markers}{121}
+\entry {lint checking}{136}
+\entry {lint checking, array elements}{152}
+\entry {lint checking, array subscripts}{154}
+\entry {lint checking, empty programs}{27}
+\entry {lint checking, issuing warnings}{30}
+\entry {lint checking, \env {POSIXLY_CORRECT} environment variable}{33}
+\entry {lint checking, undefined functions}{191}
+\entry {\code {LINT} variable}{136}
+\entry {Linux}{8, 300, 448}
+\entry {list all global variables, in debugger}{313}
+\entry {\code {list} debugger command}{315}
+\entry {list function definitions, in debugger}{313}
+\entry {loading, library}{30}
+\entry {local variables, in a function}{187}
+\entry {locale categories}{294}
+\entry {locale decimal point character}{31}
+\entry {locale, definition of}{118}
+\entry {localization}{293}
+\entry {localization, See internationalization\comma {} localization}{293}
+\entry {log files, timestamps in}{176}
+\entry {\code {log()} function}{160}
+\entry {logarithm}{160}
+\entry {logical false/true}{109}
+\entry {logical operators, See Boolean expressions}{113}
+\entry {login information}{221}
+\entry {long options}{27}
+\entry {loops}{127}
+\entry {loops, \code {break} statement and}{130}
+\entry {loops, \code {continue} statements and}{129}
+\entry {loops, count for header, in a profile}{291}
+\entry {loops, \code {do}-\code {while}}{128}
+\entry {loops, exiting}{130}
+\entry {loops, \code {for}, array scanning}{148}
+\entry {loops, \code {for}, iterative}{128}
+\entry {loops, See Also \code {while} statement}{127}
+\entry {loops, \code {while}}{127}
+\entry {\command {ls} utility}{22}
+\entry {\code {lshift()} function (\command {gawk})}{181}
+\entry {lvalues/rvalues}{106}
+\initial {M}
+\entry {\code {mail-list} file}{18}
+\entry {mailing labels\comma {} printing}{259}
+\entry {mailing list, GNITS}{10}
+\entry {Malmberg, John}{10, 421}
+\entry {mark parity}{208}
+\entry {marked string extraction (internationalization)}{297}
+\entry {marked strings\comma {} extracting}{297}
+\entry {Marx, Groucho}{109}
+\entry {match regexp in string}{164}
+\entry {\code {match()} function}{164}
+\entry {\code {match()} function, \code {RSTART}/\code {RLENGTH} 
variables}{164}
+\entry {matching, expressions, See comparison expressions}{110}
+\entry {matching, leftmost longest}{69}
+\entry {matching, null strings}{173}
+\entry {\command {mawk} utility}{44, 75, 105, 133, 422}
+\entry {maximum precision supported by MPFR library}{141}
+\entry {McPhee, Patrick}{404}
+\entry {message object files}{294}
+\entry {message object files, converting from portable object files}{300}
+\entry {message object files, specifying directory of}{294, 295}
+\entry {messages from extensions}{351}
+\entry {metacharacters in regular expressions}{44}
+\entry {metacharacters, escape sequences for}{44}
+\entry {minimum precision supported by MPFR library}{141}
+\entry {\code {mktime()} function (\command {gawk})}{177}
+\entry {modifiers\comma {} in format specifiers}{86}
+\entry {monetary information, localization}{294}
+\entry {MPFR}{328}
+\entry {\command {msgfmt} utility}{300}
+\entry {multiple precision}{319}
+\entry {multiple-line records}{69}
+\initial {N}
+\entry {\code {n} debugger command (alias for \code {next})}{310}
+\entry {names, arrays/variables}{145, 202}
+\entry {names, functions}{184, 202}
+\entry {namespace issues}{145, 202}
+\entry {namespace issues, functions}{184}
+\entry {\command {nawk} utility}{4}
+\entry {negative zero}{321}
+\entry {NetBSD}{448}
+\entry {networks, programming}{287}
+\entry {networks, support for}{93}
+\entry {newlines}{23, 31, 114}
+\entry {newlines, as field separators}{61}
+\entry {newlines, as record separators}{53}
+\entry {newlines, in dynamic regexps}{52}
+\entry {newlines, in regexp constants}{52}
+\entry {newlines, printing}{81}
+\entry {newlines, separating statements in actions}{125, 126}
+\entry {\code {next} debugger command}{310}
+\entry {\code {next file} statement}{398}
+\entry {\code {next} statement}{115, 132}
+\entry {\code {next} statement, \code {BEGIN}/\code {END} patterns and}{123}
+\entry {\code {next} statement, \code {BEGINFILE}/\code {ENDFILE} patterns 
and}{124}
+\entry {\code {next} statement, user-defined functions and}{133}
+\entry {\code {nextfile} statement}{133}
+\entry {\code {nextfile} statement, \code {BEGIN}/\code {END} patterns 
and}{123}
+\entry {\code {nextfile} statement, \code {BEGINFILE}/\code {ENDFILE} patterns 
and}{124}
+\entry {\code {nextfile} statement, user-defined functions and}{133}
+\entry {\code {nexti} debugger command}{310}
+\entry {\code {NF} variable}{57, 139}
+\entry {\code {NF} variable, decrementing}{60}
+\entry {\code {ni} debugger command (alias for \code {nexti})}{310}
+\entry {\code {noassign.awk} program}{216}
+\entry {non-existent array elements}{147}
+\entry {not Boolean-logic operator}{113}
+\entry {\code {NR} variable}{53, 139}
+\entry {\code {NR} variable, changing}{143}
+\entry {null strings}{55, 62, 109, 437}
+\entry {null strings in \command {gawk} arguments, quoting and}{17}
+\entry {null strings, and deleting array elements}{152}
+\entry {null strings, as array subscripts}{154}
+\entry {null strings, converting numbers to strings}{101}
+\entry {null strings, matching}{173}
+\entry {number as string of bits}{183}
+\entry {number of array elements}{164}
+\entry {number sign (\code {#}), \code {#!} (executable scripts)}{15}
+\entry {number sign (\code {#}), commenting}{16}
+\entry {numbers, as array subscripts}{153}
+\entry {numbers, as values of characters}{207}
+\entry {numbers, Cliff random}{206}
+\entry {numbers, converting}{101, 183}
+\entry {numbers, converting, to strings}{135, 136}
+\entry {numbers, floating-point}{319}
+\entry {numbers, hexadecimal}{97}
+\entry {numbers, octal}{97}
+\entry {numbers, rounding}{206}
+\entry {numeric constants}{97}
+\entry {numeric functions}{159}
+\entry {numeric, output format}{84}
+\entry {numeric, strings}{110}
+\initial {O}
+\entry {\code {o} debugger command (alias for \code {option})}{314}
+\entry {\command {oawk} utility}{4}
+\entry {obsolete features}{39}
+\entry {octal numbers}{97}
+\entry {octal values\comma {} enabling interpretation of}{30}
+\entry {\code {OFMT} variable}{84, 102, 136}
+\entry {\code {OFMT} variable, POSIX \command {awk} and}{84}
+\entry {\code {OFS} variable}{59, 83, 137}
+\entry {OpenBSD}{448}
+\entry {OpenSolaris}{422}
+\entry {operating systems, BSD-based}{8}
+\entry {operating systems, PC, \command {gawk} on}{415}
+\entry {operating systems, PC\comma {} \command {gawk} on, installing}{413}
+\entry {operating systems, porting \command {gawk} to}{427}
+\entry {operating systems, See Also GNU/Linux\comma {} PC operating 
systems\comma {} Unix}{407}
+\entry {operations, bitwise}{181}
+\entry {operators, arithmetic}{103}
+\entry {operators, assignment}{106}
+\entry {operators, assignment, evaluation order}{107}
+\entry {operators, Boolean, See Boolean expressions}{113}
+\entry {operators, decrement/increment}{108}
+\entry {operators, GNU-specific}{48}
+\entry {operators, input/output}{73, 74, 75, 90, 91, 118}
+\entry {operators, logical, See Boolean expressions}{113}
+\entry {operators, precedence}{109, 117}
+\entry {operators, relational, See operators\comma {} comparison}{110}
+\entry {operators, short-circuit}{114}
+\entry {operators, string}{104}
+\entry {operators, string-matching}{41}
+\entry {operators, string-matching, for buffers}{49}
+\entry {operators, word-boundary (\command {gawk})}{49}
+\entry {\code {option} debugger command}{314}
+\entry {options, command-line}{27}
+\entry {options, command-line, end of}{28}
+\entry {options, command-line, invoking \command {awk}}{27}
+\entry {options, command-line, processing}{216}
+\entry {options, deprecated}{39}
+\entry {options, long}{27}
+\entry {options, printing list of}{30}
+\entry {or Boolean-logic operator}{113}
+\entry {\code {or()} function (\command {gawk})}{181}
+\entry {OR bitwise operation}{181}
+\entry {\code {ord()} extension function}{383}
+\entry {\code {ord()} user-defined function}{207}
+\entry {order of evaluation, concatenation}{105}
+\entry {\code {ORS} variable}{83, 137}
+\entry {output field separator, See \code {OFS} variable}{59}
+\entry {output record separator, See \code {ORS} variable}{83}
+\entry {output redirection}{90}
+\entry {output wrapper}{349}
+\entry {output, buffering}{173, 176}
+\entry {output, duplicating into files}{246}
+\entry {output, files\comma {} closing}{94}
+\entry {output, format specifier\comma {} \code {OFMT}}{84}
+\entry {output, formatted}{84}
+\entry {output, pipes}{90}
+\entry {output, printing, See printing}{81}
+\entry {output, records}{83}
+\entry {output, standard}{92}
+\initial {P}
+\entry {\code {p} debugger command (alias for \code {print})}{311}
+\entry {P1003.1 POSIX standard}{445}
+\entry {parent process ID of \command {gawk} process}{140}
+\entry {parentheses \code {()}, in a profile}{291}
+\entry {parentheses \code {()}, regexp operator}{45}
+\entry {password file}{221}
+\entry {\code {patsplit()} function (\command {gawk})}{166}
+\entry {patterns}{119}
+\entry {patterns, comparison expressions as}{120}
+\entry {patterns, counts, in a profile}{291}
+\entry {patterns, default}{20}
+\entry {patterns, empty}{124}
+\entry {patterns, expressions as}{119}
+\entry {patterns, ranges in}{121}
+\entry {patterns, regexp constants as}{120}
+\entry {patterns, types of}{119}
+\entry {\command {pawk} (profiling version of Brian Kernighan's \command 
{awk})}{422}
+\entry {\code {pawk}, \command {awk}-like facilities for Python}{423}
+\entry {PC operating systems, \command {gawk} on}{415}
+\entry {PC operating systems\comma {} \command {gawk} on, installing}{413}
+\entry {percent sign (\code {%}), \code {%} operator}{117}
+\entry {percent sign (\code {%}), \code {%=} operator}{107, 118}
+\entry {period (\code {.}), regexp operator}{45}
+\entry {Perl}{430}
+\entry {Peters, Arno}{404}
+\entry {Peterson, Hal}{404}
+\entry {pipe, closing}{94}
+\entry {pipe, input}{74}
+\entry {pipe, output}{90}
+\entry {Pitts, Dave}{10, 421}
+\entry {Plauger, P.J.\:}{201}
+\entry {plug-in}{335}
+\entry {plus sign (\code {+}), \code {+} operator}{117, 118}
+\entry {plus sign (\code {+}), \code {++} operator}{108, 109, 117}
+\entry {plus sign (\code {+}), \code {+=} operator}{107, 118}
+\entry {plus sign (\code {+}), regexp operator}{45}
+\entry {pointers to functions}{193}
+\entry {portability}{43}
+\entry {portability, \code {#!} (executable scripts)}{16}
+\entry {portability, \code {**} operator and}{104}
+\entry {portability, \code {**=} operator and}{108}
+\entry {portability, \code {ARGV} variable}{16}
+\entry {portability, backslash continuation and}{23}
+\entry {portability, backslash in escape sequences}{44}
+\entry {portability, \code {close()} function and}{95}
+\entry {portability, data files as single record}{56}
+\entry {portability, deleting array elements}{152}
+\entry {portability, example programs}{201}
+\entry {portability, functions\comma {} defining}{185}
+\entry {portability, \command {gawk}}{427}
+\entry {portability, \code {gettext} library and}{293}
+\entry {portability, internationalization and}{298}
+\entry {portability, \code {length()} function}{164}
+\entry {portability, new \command {awk} vs.\: old \command {awk}}{102}
+\entry {portability, \code {next} statement in user-defined functions}{191}
+\entry {portability, \code {NF} variable\comma {} decrementing}{60}
+\entry {portability, operators}{109}
+\entry {portability, operators, not in POSIX \command {awk}}{118}
+\entry {portability, \env {POSIXLY_CORRECT} environment variable}{33}
+\entry {portability, \code {substr()} function}{169}
+\entry {portable object files}{293, 297}
+\entry {portable object files, converting to message object files}{300}
+\entry {portable object files, generating}{29}
+\entry {portable object template files}{293}
+\entry {porting \command {gawk}}{427}
+\entry {positional specifiers, \code {printf} statement}{86, 297}
+\entry {positional specifiers, \code {printf} statement, mixing with regular 
formats}{298}
+\entry {positive zero}{321}
+\entry {POSIX \command {awk}}{5, 108}
+\entry {POSIX \command {awk}, \code {**} operator and}{118}
+\entry {POSIX \command {awk}, \code {**=} operator and}{108}
+\entry {POSIX \command {awk}, \code {<} operator and}{73}
+\entry {POSIX \command {awk}, \code {|} I/O operator and}{75}
+\entry {POSIX \command {awk}, arithmetic operators and}{104}
+\entry {POSIX \command {awk}, backslashes in string constants}{44}
+\entry {POSIX \command {awk}, \code {BEGIN}/\code {END} patterns}{123}
+\entry {POSIX \command {awk}, bracket expressions and}{47}
+\entry {POSIX \command {awk}, bracket expressions and, character classes}{47, 
48}
+\entry {POSIX \command {awk}, \code {break} statement and}{131}
+\entry {POSIX \command {awk}, changes in \command {awk} versions}{392}
+\entry {POSIX \command {awk}, \code {continue} statement and}{132}
+\entry {POSIX \command {awk}, \code {CONVFMT} variable and}{135}
+\entry {POSIX \command {awk}, \code {date} utility and}{180}
+\entry {POSIX \command {awk}, field separators and}{56, 65}
+\entry {POSIX \command {awk}, \code {FS} variable and}{136}
+\entry {POSIX \command {awk}, \code {function} keyword in}{185}
+\entry {POSIX \command {awk}, functions and, \code {gsub()}/\code {sub()}}{171}
+\entry {POSIX \command {awk}, functions and, \code {length()}}{164}
+\entry {POSIX \command {awk}, GNU long options and}{27}
+\entry {POSIX \command {awk}, interval expressions in}{46}
+\entry {POSIX \command {awk}, \code {next}/\code {nextfile} statements 
and}{133}
+\entry {POSIX \command {awk}, numeric strings and}{110}
+\entry {POSIX \command {awk}, \code {OFMT} variable and}{84, 102}
+\entry {POSIX \command {awk}, period (\code {.})\comma {} using}{45}
+\entry {POSIX \command {awk}, \code {printf} format strings and}{88}
+\entry {POSIX \command {awk}, regular expressions and}{46}
+\entry {POSIX \command {awk}, timestamps and}{176}
+\entry {POSIX mode}{31, 33}
+\entry {POSIX, \command {awk} and}{3}
+\entry {POSIX, \command {gawk} extensions not included in}{393}
+\entry {POSIX, programs\comma {} implementing in \command {awk}}{233}
+\entry {\env {POSIXLY_CORRECT} environment variable}{33}
+\entry {\code {PREC} variable}{137, 329}
+\entry {precedence}{109, 117}
+\entry {precedence, regexp operators}{46}
+\entry {\code {print} debugger command}{311}
+\entry {\code {print} statement}{81}
+\entry {\code {print} statement, \code {BEGIN}/\code {END} patterns and}{123}
+\entry {\code {print} statement, commas, omitting}{82}
+\entry {\code {print} statement, I/O operators in}{118}
+\entry {\code {print} statement, line continuations and}{82}
+\entry {\code {print} statement, \code {OFMT} variable and}{137}
+\entry {\code {print} statement, See Also redirection\comma {} of output}{90}
+\entry {\code {print} statement, \code {sprintf()} function and}{206}
+\entry {print variables, in debugger}{311}
+\entry {\code {printf} debugger command}{312}
+\entry {\code {printf} statement}{81, 84}
+\entry {\code {printf} statement, columns\comma {} aligning}{82}
+\entry {\code {printf} statement, format-control characters}{85}
+\entry {\code {printf} statement, I/O operators in}{118}
+\entry {\code {printf} statement, modifiers}{86}
+\entry {\code {printf} statement, positional specifiers}{86, 297}
+\entry {\code {printf} statement, positional specifiers, mixing with regular 
formats}{298}
+\entry {\code {printf} statement, See Also redirection\comma {} of output}{90}
+\entry {\code {printf} statement, \code {sprintf()} function and}{206}
+\entry {\code {printf} statement, syntax of}{84}
+\entry {printing}{81}
+\entry {printing messages from extensions}{351}
+\entry {printing, list of options}{30}
+\entry {printing, mailing labels}{259}
+\entry {printing, unduplicated lines of text}{247}
+\entry {printing, user information}{242}
+\entry {private variables}{202}
+\entry {process group idIDof \command {gawk} process}{140}
+\entry {process ID of \command {gawk} process}{140}
+\entry {processes, two-way communications with}{286}
+\entry {processing data}{435}
+\entry {\code {PROCINFO} array}{139, 177, 221}
+\entry {\code {PROCINFO} array, and communications via ptys}{287}
+\entry {\code {PROCINFO} array, and group membership}{225}
+\entry {\code {PROCINFO} array, and user and group ID numbers}{242}
+\entry {\code {PROCINFO} array, testing the field splitting}{224}
+\entry {\code {PROCINFO} array, uses}{141}
+\entry {\code {PROCINFO}, values of \code {sorted_in}}{150}
+\entry {profiling \command {awk} programs}{289}
+\entry {profiling \command {awk} programs, dynamically}{291}
+\entry {program identifiers}{140}
+\entry {program, definition of}{13}
+\entry {programmers, attractiveness of}{285}
+\entry {programming conventions, \code {--non-decimal-data} option}{279}
+\entry {programming conventions, \code {ARGC}/\code {ARGV} variables}{138}
+\entry {programming conventions, \code {exit} statement}{134}
+\entry {programming conventions, function parameters}{191}
+\entry {programming conventions, functions, calling}{159}
+\entry {programming conventions, functions, writing}{185}
+\entry {programming conventions, \command {gawk} extensions}{371}
+\entry {programming conventions, private variable names}{202}
+\entry {programming language, recipe for}{4}
+\entry {programming languages, Ada}{439}
+\entry {programming languages, Java}{444}
+\entry {programming languages\comma {} data-driven vs.\: procedural}{13}
+\entry {programming, basic steps}{435}
+\entry {programming, concepts}{435}
+\entry {\command {pwcat} program}{221}
+\initial {Q}
+\entry {\code {q} debugger command (alias for \code {quit})}{316}
+\entry {QSE Awk}{423}
+\entry {Quanstrom, Erik}{254}
+\entry {question mark (\code {?}), \code {?:} operator}{118}
+\entry {question mark (\code {?}), regexp operator}{46, 49}
+\entry {QuikTrim Awk}{423}
+\entry {\code {quit} debugger command}{316}
+\entry {\code {QUIT} signal (MS-Windows)}{292}
+\entry {quoting in \command {gawk} command lines}{15}
+\entry {quoting in \command {gawk} command lines, tricks for}{17}
+\entry {quoting, for small awk programs}{16}
+\initial {R}
+\entry {\code {r} debugger command (alias for \code {run})}{311}
+\entry {Rakitzis, Byron}{262}
+\entry {Ramey, Chet}{10, 339}
+\entry {\code {rand()} function}{160}
+\entry {random numbers, Cliff}{206}
+\entry {random numbers, \code {rand()}/\code {srand()} functions}{160}
+\entry {random numbers, seed of}{160}
+\entry {range expressions (regexps)}{47}
+\entry {range patterns}{121}
+\entry {range patterns, line continuation and}{122}
+\entry {Rankin, Pat}{10, 107, 404, 421}
+\entry {\code {reada()} extension function}{385}
+\entry {readable data files\comma {} checking}{214}
+\entry {\code {readable.awk} program}{214}
+\entry {\code {readdir} extension}{384}
+\entry {\code {readfile()} extension function}{386}
+\entry {\code {readfile()} user-defined function}{211}
+\entry {reading input files}{53}
+\entry {recipe for a programming language}{4}
+\entry {record separators}{53, 137}
+\entry {record separators, changing}{54}
+\entry {record separators, regular expressions as}{55}
+\entry {record separators, with multiline records}{69}
+\entry {records}{53, 436}
+\entry {records, multiline}{69}
+\entry {records, printing}{81}
+\entry {records, splitting input into}{53}
+\entry {records, terminating}{55}
+\entry {records, treating files as}{56}
+\entry {recursive functions}{185}
+\entry {redirect \command {gawk} output, in debugger}{314}
+\entry {redirection of input}{73}
+\entry {redirection of output}{90}
+\entry {reference counting, sorting arrays}{285}
+\entry {regexp}{41}
+\entry {regexp constants}{42, 98, 113}
+\entry {regexp constants, \code {/=\dots {}/}, \code {/=} operator and}{108}
+\entry {regexp constants, as patterns}{120}
+\entry {regexp constants, in \command {gawk}}{99}
+\entry {regexp constants, slashes vs.\: quotes}{51}
+\entry {regexp constants, vs.\: string constants}{51}
+\entry {register extension}{344}
+\entry {regular expressions}{41}
+\entry {regular expressions as field separators}{61}
+\entry {regular expressions, anchors in}{44}
+\entry {regular expressions, as field separators}{61}
+\entry {regular expressions, as patterns}{41, 119}
+\entry {regular expressions, as record separators}{55}
+\entry {regular expressions, case sensitivity}{49, 136}
+\entry {regular expressions, computed}{51}
+\entry {regular expressions, constants, See regexp constants}{42}
+\entry {regular expressions, dynamic}{51}
+\entry {regular expressions, dynamic, with embedded newlines}{52}
+\entry {regular expressions, \command {gawk}, command-line options}{49}
+\entry {regular expressions, interval expressions and}{32}
+\entry {regular expressions, leftmost longest match}{50}
+\entry {regular expressions, operators}{41, 44}
+\entry {regular expressions, operators, for buffers}{49}
+\entry {regular expressions, operators, for words}{48}
+\entry {regular expressions, operators, \command {gawk}}{48}
+\entry {regular expressions, operators, precedence of}{46}
+\entry {regular expressions, searching for}{238}
+\entry {relational operators, See comparison operators}{110}
+\entry {replace in string}{168}
+\entry {\code {return} debugger command}{310}
+\entry {\code {return} statement\comma {} user-defined functions}{191}
+\entry {return value\comma {} \code {close()} function}{96}
+\entry {\code {rev()} user-defined function}{186}
+\entry {\code {revoutput} extension}{384}
+\entry {\code {revtwoway} extension}{385}
+\entry {\code {rewind()} user-defined function}{214}
+\entry {right angle bracket (\code {>}), \code {>} operator}{111, 118}
+\entry {right angle bracket (\code {>}), \code {>} operator (I/O)}{90}
+\entry {right angle bracket (\code {>}), \code {>=} operator}{111, 118}
+\entry {right angle bracket (\code {>}), \code {>>} operator (I/O)}{90, 118}
+\entry {right shift}{182}
+\entry {right shift, bitwise}{181}
+\entry {Ritchie, Dennis}{437}
+\entry {\code {RLENGTH} variable}{141}
+\entry {\code {RLENGTH} variable, \code {match()} function and}{164}
+\entry {Robbins, Arnold}{64, 75, 223, 254, 339, 405, 420, 430}
+\entry {Robbins, Bill}{75}
+\entry {Robbins, Harry}{10}
+\entry {Robbins, Jean}{10}
+\entry {Robbins, Miriam}{10, 75, 223}
+\entry {Rommel, Kai Uwe}{404}
+\entry {round to nearest integer}{160}
+\entry {\code {round()} user-defined function}{206}
+\entry {rounding mode, floating-point}{326}
+\entry {rounding numbers}{206}
+\entry {\code {ROUNDMODE} variable}{137, 330}
+\entry {\code {RS} variable}{53, 137}
+\entry {\code {RS} variable, multiline records and}{69}
+\entry {\code {rshift()} function (\command {gawk})}{182}
+\entry {\code {RSTART} variable}{141}
+\entry {\code {RSTART} variable, \code {match()} function and}{164}
+\entry {\code {RT} variable}{55, 71, 142}
+\entry {Rubin, Paul}{4, 403}
+\entry {rule, definition of}{13}
+\entry {\code {run} debugger command}{311}
+\entry {rvalues/lvalues}{106}
+\initial {S}
+\entry {\code {s} debugger command (alias for \code {step})}{311}
+\entry {sample debugging session}{304}
+\entry {sandbox mode}{32}
+\entry {save debugger options}{314}
+\entry {scalar or array}{183}
+\entry {scalar values}{436}
+\entry {scanning arrays}{148}
+\entry {scanning multidimensional arrays}{155}
+\entry {Schorr, Andrew}{10, 405}
+\entry {Schreiber, Bert}{10}
+\entry {Schreiber, Rita}{10}
+\entry {search and replace in strings}{162}
+\entry {search in string}{163}
+\entry {search paths}{274, 415, 419}
+\entry {search paths, for shared libraries}{35}
+\entry {search paths, for source files}{34, 274, 415, 419}
+\entry {searching, files for regular expressions}{238}
+\entry {searching, for words}{253}
+\entry {\command {sed} utility}{65, 266, 439}
+\entry {seeding random number generator}{160}
+\entry {semicolon (\code {;}), \code {AWKPATH} variable and}{415}
+\entry {semicolon (\code {;}), separating statements in actions}{24, 125, 126}
+\entry {separators, field}{135, 137}
+\entry {separators, field, \code {FIELDWIDTHS} variable and}{135}
+\entry {separators, field, \code {FPAT} variable and}{135}
+\entry {separators, field, POSIX and}{56}
+\entry {separators, for records}{53, 54, 137}
+\entry {separators, for records, regular expressions as}{55}
+\entry {separators, for statements in actions}{125}
+\entry {separators, subscript}{137}
+\entry {set breakpoint}{308}
+\entry {\code {set} debugger command}{312}
+\entry {set directory of message catalogs}{183}
+\entry {set watchpoint}{312}
+\entry {setting rounding mode}{330}
+\entry {setting working precision}{329}
+\entry {shadowing of variable values}{185}
+\entry {shell quoting, double quote}{14}
+\entry {shell quoting, rules for}{17}
+\entry {shells, piping commands into}{92}
+\entry {shells, quoting}{124}
+\entry {shells, quoting, rules for}{17}
+\entry {shells, scripts}{13}
+\entry {shells, sea}{39}
+\entry {shells, variables}{124}
+\entry {shift, bitwise}{181}
+\entry {short-circuit operators}{114}
+\entry {show all source files, in debugger}{313}
+\entry {show breakpoints}{313}
+\entry {show function arguments, in debugger}{313}
+\entry {show local variables, in debugger}{313}
+\entry {show name of current source file, in debugger}{313}
+\entry {show watchpoints}{313}
+\entry {\code {si} debugger command (alias for \code {stepi})}{311}
+\entry {side effects}{105, 108, 109}
+\entry {side effects, array indexing}{147}
+\entry {side effects, \code {asort()} function}{284}
+\entry {side effects, assignment expressions}{106}
+\entry {side effects, Boolean operators}{114}
+\entry {side effects, conditional expressions}{115}
+\entry {side effects, decrement/increment operators}{108}
+\entry {side effects, \code {FILENAME} variable}{76}
+\entry {side effects, function calls}{116}
+\entry {side effects, statements}{126}
+\entry {sidebar, A Constant's Base Does Not Affect Its Value}{98}
+\entry {sidebar, Backslash Before Regular Characters}{44}
+\entry {sidebar, Changing \code {FS} Does Not Affect the Fields}{65}
+\entry {sidebar, Changing \code {NR} and \code {FNR}}{143}
+\entry {sidebar, Controlling Output Buffering with \code {system()}}{175}
+\entry {sidebar, Escape Sequences for Metacharacters}{44}
+\entry {sidebar, \code {FS} and \code {IGNORECASE}}{65}
+\entry {sidebar, Interactive Versus Noninteractive Buffering}{175}
+\entry {sidebar, Matching the Null String}{173}
+\entry {sidebar, Operator Evaluation Order}{109}
+\entry {sidebar, Piping into \command {sh}}{92}
+\entry {sidebar, Portability Issues with \samp {#!}}{15}
+\entry {sidebar, Recipe For A Programming Language}{4}
+\entry {sidebar, \code {RS = "{\tt \backslashcurfont }0"} Is Not Portable}{56}
+\entry {sidebar, So Why Does \command {gawk} have \code {BEGINFILE} and \code 
{ENDFILE}?}{213}
+\entry {sidebar, Syntactic Ambiguities Between \samp {/=} and Regular 
Expressions}{108}
+\entry {sidebar, Understanding \code {$0}}{60}
+\entry {sidebar, Using \code {{\tt \backslashcurfont }n} in Bracket 
Expressions of Dynamic Regexps}{52}
+\entry {sidebar, Using \code {close()}'s Return Value}{96}
+\entry {\code {SIGHUP} signal, for dynamic profiling}{292}
+\entry {\code {SIGINT} signal (MS-Windows)}{292}
+\entry {signals, \code {HUP}/\code {SIGHUP}, for profiling}{292}
+\entry {signals, \code {INT}/\code {SIGINT} (MS-Windows)}{292}
+\entry {signals, \code {QUIT}/\code {SIGQUIT} (MS-Windows)}{292}
+\entry {signals, \code {USR1}/\code {SIGUSR1}, for profiling}{292}
+\entry {signature program}{276}
+\entry {\code {SIGQUIT} signal (MS-Windows)}{292}
+\entry {\code {SIGUSR1} signal, for dynamic profiling}{292}
+\entry {\code {silent} debugger command}{310}
+\entry {\code {sin()} function}{161}
+\entry {sine}{161}
+\entry {single precision floating-point}{319}
+\entry {single quote (\code {'})}{13}
+\entry {single quote (\code {'}) in \command {gawk} command lines}{15}
+\entry {single quote (\code {'}), in shell commands}{17}
+\entry {single quote (\code {'}), vs.\: apostrophe}{16}
+\entry {single quote (\code {'}), with double quotes}{17}
+\entry {single-character fields}{63}
+\entry {single-step execution, in the debugger}{310}
+\entry {Skywalker, Luke}{39}
+\entry {\command {sleep} utility}{256}
+\entry {\code {sleep()} extension function}{386}
+\entry {Solaris, POSIX-compliant \command {awk}}{422}
+\entry {sort array}{161}
+\entry {sort array indices}{161}
+\entry {sort function, arrays, sorting}{284}
+\entry {\command {sort} utility}{261}
+\entry {\command {sort} utility, coprocesses and}{287}
+\entry {sorting characters in different languages}{294}
+\entry {source code, \command {awka}}{422}
+\entry {source code, Brian Kernighan's \command {awk}}{421}
+\entry {source code, Busybox Awk}{422}
+\entry {source code, \command {gawk}}{407}
+\entry {source code, Illumos \command {awk}}{423}
+\entry {source code, \command {jawk}}{423}
+\entry {source code, libmawk}{423}
+\entry {source code, \command {mawk}}{422}
+\entry {source code, mixing}{29}
+\entry {source code, \command {pawk}}{422}
+\entry {source code, \command {pawk} (Python version)}{423}
+\entry {source code, QSE Awk}{423}
+\entry {source code, QuikTrim Awk}{423}
+\entry {source code, Solaris \command {awk}}{422}
+\entry {source files\comma {} search path for}{274}
+\entry {sparse arrays}{146}
+\entry {Spencer, Henry}{439}
+\entry {split string into array}{166}
+\entry {\code {split} utility}{244}
+\entry {\code {split()} function}{166}
+\entry {\code {split()} function, array elements\comma {} deleting}{152}
+\entry {\code {split.awk} program}{244}
+\entry {\code {sprintf()} function}{84, 167}
+\entry {\code {sprintf()} function, \code {OFMT} variable and}{137}
+\entry {\code {sprintf()} function, \code {print}/\code {printf} statements 
and}{206}
+\entry {\code {sqrt()} function}{161}
+\entry {square brackets (\code {[]}), regexp operator}{45}
+\entry {square root}{161}
+\entry {\code {srand()} function}{161}
+\entry {stack frame}{303}
+\entry {Stallman, Richard}{8, 9, 403, 443}
+\entry {standard error}{92}
+\entry {standard input}{14, 92}
+\entry {standard output}{92}
+\entry {starting the debugger}{305}
+\entry {\code {stat()} extension function}{378}
+\entry {statements, compound\comma {} control statements and}{126}
+\entry {statements, control, in actions}{126}
+\entry {statements, multiple}{24}
+\entry {\code {step} debugger command}{311}
+\entry {\code {stepi} debugger command}{311}
+\entry {stop automatic display, in debugger}{312}
+\entry {stream editors}{65, 266}
+\entry {\code {strftime()} function (\command {gawk})}{177}
+\entry {string constants}{97}
+\entry {string constants, vs.\: regexp constants}{51}
+\entry {string extraction (internationalization)}{297}
+\entry {string length}{164}
+\entry {string operators}{104}
+\entry {string, regular expression match}{164}
+\entry {string-manipulation functions}{161}
+\entry {string-matching operators}{41}
+\entry {string-translation functions}{183}
+\entry {strings splitting, example}{166}
+\entry {strings, converting}{101, 183}
+\entry {strings, converting letter case}{169}
+\entry {strings, converting, numbers to}{135, 136}
+\entry {strings, empty, See null strings}{55}
+\entry {strings, extracting}{297}
+\entry {strings, for localization}{295}
+\entry {strings, length limitations}{97}
+\entry {strings, merging arrays into}{209}
+\entry {strings, null}{62}
+\entry {strings, numeric}{110}
+\entry {\code {strtonum()} function (\command {gawk})}{167}
+\entry {\code {strtonum()} function (\command {gawk}), \code 
{--non-decimal-data} option and}{279}
+\entry {\code {sub()} function}{99, 168}
+\entry {\code {sub()} function, arguments of}{169}
+\entry {\code {sub()} function, escape processing}{170}
+\entry {subscript separators}{137}
+\entry {subscripts in arrays, multidimensional}{154}
+\entry {subscripts in arrays, multidimensional, scanning}{155}
+\entry {subscripts in arrays, numbers as}{153}
+\entry {subscripts in arrays, uninitialized variables as}{153}
+\entry {\code {SUBSEP} variable}{137}
+\entry {\code {SUBSEP} variable, and multidimensional arrays}{154}
+\entry {substitute in string}{162}
+\entry {\code {substr()} function}{169}
+\entry {substring}{169}
+\entry {Sumner, Andrew}{422}
+\entry {supplementary groups of \command {gawk} process}{141}
+\entry {\code {switch} statement}{129}
+\entry {\code {SYMTAB} array}{142}
+\entry {syntactic ambiguity: \code {/=} operator vs. \code {/=\dots {}/} 
regexp constant}{108}
+\entry {\code {system()} function}{174}
+\entry {\code {systime()} function (\command {gawk})}{177}
+\initial {T}
+\entry {\code {t} debugger command (alias for \code {tbreak})}{310}
+\entry {\code {tbreak} debugger command}{310}
+\entry {Tcl}{202}
+\entry {TCP/IP}{287}
+\entry {TCP/IP, support for}{93}
+\entry {\code {tee} utility}{246}
+\entry {\code {tee.awk} program}{246}
+\entry {temporary breakpoint}{310}
+\entry {terminating records}{55}
+\entry {\code {testbits.awk} program}{182}
+\entry {\code {testext} extension}{386}
+\entry {Texinfo}{7, 201, 253, 263, 409, 427}
+\entry {Texinfo, chapter beginnings in files}{44}
+\entry {Texinfo, extracting programs from source files}{263}
+\entry {text, printing}{81}
+\entry {text\comma {} printing, unduplicated lines of}{247}
+\entry {\code {textdomain()} function (C library)}{293}
+\entry {\code {TEXTDOMAIN} variable}{137, 295}
+\entry {\code {TEXTDOMAIN} variable, \code {BEGIN} pattern and}{296}
+\entry {\code {TEXTDOMAIN} variable, portability and}{298}
+\entry {tilde (\code {~}), \code {~} operator}{41, 50, 51, 98, 111, 113, 118, 
120}
+\entry {time functions}{176}
+\entry {time, alarm clock example program}{254}
+\entry {time, localization and}{295}
+\entry {time, managing}{209}
+\entry {time, retrieving}{176}
+\entry {timeout, reading input}{77}
+\entry {timestamps}{176, 177}
+\entry {timestamps, converting dates to}{177}
+\entry {timestamps, formatted}{209}
+\entry {\code {tolower()} function}{170}
+\entry {\code {toupper()} function}{170}
+\entry {\command {tr} utility}{257}
+\entry {\code {trace} debugger command}{316}
+\entry {traceback, display in debugger}{312}
+\entry {translate string}{183}
+\entry {\code {translate.awk} program}{257}
+\entry {treating files, as single records}{56}
+\entry {troubleshooting, \code {--non-decimal-data} option}{30}
+\entry {troubleshooting, \code {==} operator}{112}
+\entry {troubleshooting, \command {awk} uses \code {FS} not \code {IFS}}{61}
+\entry {troubleshooting, backslash before nonspecial character}{44}
+\entry {troubleshooting, division}{104}
+\entry {troubleshooting, fatal errors, field widths\comma {} specifying}{66}
+\entry {troubleshooting, fatal errors, \code {printf} format strings}{88}
+\entry {troubleshooting, \code {fflush()} function}{174}
+\entry {troubleshooting, function call syntax}{116}
+\entry {troubleshooting, \command {gawk}}{425}
+\entry {troubleshooting, \command {gawk}, bug reports}{420}
+\entry {troubleshooting, \command {gawk}, fatal errors\comma {} function 
arguments}{159}
+\entry {troubleshooting, \code {getline} function}{215}
+\entry {troubleshooting, \code {gsub()}/\code {sub()} functions}{169}
+\entry {troubleshooting, \code {match()} function}{166}
+\entry {troubleshooting, \code {patsplit()} function}{166}
+\entry {troubleshooting, \code {print} statement\comma {} omitting commas}{82}
+\entry {troubleshooting, printing}{91}
+\entry {troubleshooting, quotes with file names}{93}
+\entry {troubleshooting, readable data files}{214}
+\entry {troubleshooting, regexp constants vs.\: string constants}{51}
+\entry {troubleshooting, string concatenation}{105}
+\entry {troubleshooting, \code {substr()} function}{169}
+\entry {troubleshooting, \code {system()} function}{174}
+\entry {troubleshooting, typographical errors\comma {} global variables}{29}
+\entry {true, logical}{109}
+\entry {Trueman, David}{4, 10, 403}
+\entry {trunc-mod operation}{104}
+\entry {truth values}{109}
+\entry {type conversion}{101}
+\initial {U}
+\entry {\code {u} debugger command (alias for \code {until})}{311}
+\entry {unassigned array elements}{147}
+\entry {undefined functions}{190}
+\entry {underscore (\code {_}), C macro}{294}
+\entry {underscore (\code {_}), in names of private variables}{202}
+\entry {underscore (\code {_}), translatable string}{296}
+\entry {\code {undisplay} debugger command}{312}
+\entry {undocumented features}{39}
+\entry {Unicode}{208, 402, 440}
+\entry {uninitialized variables, as array subscripts}{153}
+\entry {\command {uniq} utility}{247}
+\entry {\code {uniq.awk} program}{248}
+\entry {Unix}{448}
+\entry {Unix \command {awk}, backslashes in escape sequences}{44}
+\entry {Unix \command {awk}, \code {close()} function and}{96}
+\entry {Unix \command {awk}, password files\comma {} field separators and}{64}
+\entry {Unix, \command {awk} scripts and}{15}
+\entry {\code {UNIXROOT} variable, on OS/2 systems}{415}
+\entry {unsigned integers}{319}
+\entry {\code {until} debugger command}{311}
+\entry {\code {unwatch} debugger command}{312}
+\entry {\code {up} debugger command}{313}
+\entry {user database\comma {} reading}{221}
+\entry {user-defined functions}{184}
+\entry {user-defined, functions, counts, in a profile}{291}
+\entry {user-defined, variables}{100}
+\entry {user-modifiable variables}{135}
+\entry {users, information about, printing}{242}
+\entry {users, information about, retrieving}{221}
+\entry {\code {USR1} signal, for dynamic profiling}{292}
+\initial {V}
+\entry {values, numeric}{436}
+\entry {values, string}{436}
+\entry {variable assignments and input files}{33}
+\entry {variable typing}{110}
+\entry {variables}{24, 436}
+\entry {variables, assigning on command line}{100}
+\entry {variables, built-in}{100, 134}
+\entry {variables, built-in, \code {-v} option\comma {} setting with}{28}
+\entry {variables, built-in, conveying information}{137}
+\entry {variables, flag}{114}
+\entry {variables, \code {getline} command into\comma {} using}{72, 73, 75, 76}
+\entry {variables, global, for library functions}{202}
+\entry {variables, global, printing list of}{29}
+\entry {variables, initializing}{100}
+\entry {variables, local to a function}{187}
+\entry {variables, names of}{145}
+\entry {variables, private}{202}
+\entry {variables, setting}{28}
+\entry {variables, shadowing}{185}
+\entry {variables, types of}{106}
+\entry {variables, types of, comparison expressions and}{110}
+\entry {variables, uninitialized\comma {} as array subscripts}{153}
+\entry {variables, user-defined}{100}
+\entry {version of \command {gawk}}{141}
+\entry {version of \command {gawk} extension API}{141}
+\entry {version of GNU MP library}{141}
+\entry {version of GNU MPFR library}{141}
+\entry {vertical bar (\code {|})}{45}
+\entry {vertical bar (\code {|}), \code {|} operator (I/O)}{74, 118}
+\entry {vertical bar (\code {|}), \code {|&} operator (I/O)}{75, 118, 286}
+\entry {vertical bar (\code {|}), \code {||} operator}{114, 118}
+\entry {Vinschen, Corinna}{10}
+\initial {W}
+\entry {\code {w} debugger command (alias for \code {watch})}{312}
+\entry {\command {w} utility}{66}
+\entry {\code {wait()} extension function}{382}
+\entry {\code {waitpid()} extension function}{382}
+\entry {\code {walk_array()} user-defined function}{230}
+\entry {Wall, Larry}{145, 430}
+\entry {Wallin, Anders}{404}
+\entry {warnings, issuing}{30}
+\entry {\code {watch} debugger command}{312}
+\entry {watchpoint}{304}
+\entry {\command {wc} utility}{251}
+\entry {\code {wc.awk} program}{251}
+\entry {Weinberger, Peter}{4, 403}
+\entry {\code {while} statement}{127}
+\entry {\code {while} statement, use of regexps in}{41}
+\entry {whitespace, as field separators}{61}
+\entry {whitespace, functions\comma {} calling}{159}
+\entry {whitespace, newlines as}{31}
+\entry {Williams, Kent}{404}
+\entry {Woehlke, Matthew}{404}
+\entry {Woods, John}{403}
+\entry {word boundaries\comma {} matching}{48}
+\entry {word, regexp definition of}{48}
+\entry {word-boundary operator (\command {gawk})}{49}
+\entry {\code {wordfreq.awk} program}{261}
+\entry {words, counting}{251}
+\entry {words, duplicate\comma {} searching for}{253}
+\entry {words, usage counts\comma {} generating}{261}
+\entry {\code {writea()} extension function}{385}
+\initial {X}
+\entry {\code {xgettext} utility}{297}
+\entry {\code {xor()} function (\command {gawk})}{182}
+\entry {XOR bitwise operation}{181}
+\initial {Y}
+\entry {Yawitz, Efraim}{405}
+\initial {Z}
+\entry {Zaretskii, Eli}{10, 404, 421}
+\entry {zero\comma {} negative vs.\: positive}{321}
+\entry {\code {zerofile.awk} program}{215}
+\entry {Zoulas, Christos}{404}

Added: trunk/texindex/tests/texinfo.cp
===================================================================
--- trunk/texindex/tests/texinfo.cp                             (rev 0)
+++ trunk/texindex/tests/texinfo.cp     2014-12-03 00:57:15 UTC (rev 5946)
@@ -0,0 +1,1471 @@
+\entry{Copying conditions}{2}{Copying conditions}
+\entry{Conditions for copying Texinfo}{2}{Conditions for copying Texinfo}
+\entry{Free software}{2}{Free software}
+\entry{Libre software}{2}{Libre software}
+\entry{Overview of Texinfo}{3}{Overview of Texinfo}
+\entry{Texinfo overview}{3}{Texinfo overview}
+\entry{Semantic markup}{3}{Semantic markup}
+\entry{Limited scope of Texinfo}{3}{Limited scope of Texinfo}
+\entry{Pronounciation of Texinfo}{3}{Pronounciation of Texinfo}
+\entry{Spelling of Texinfo}{3}{Spelling of Texinfo}
+\entry{Bugs, reporting}{3}{Bugs, reporting}
+\entry{Suggestions for Texinfo, making}{3}{Suggestions for Texinfo, making}
+\entry{Reporting bugs}{3}{Reporting bugs}
+\entry{Checklist for bug reports}{3}{Checklist for bug reports}
+\entry{Patches, contributing}{3}{Patches, contributing}
+\entry{Using Texinfo in general}{4}{Using Texinfo in general}
+\entry{Texinfo, introduction to}{4}{Texinfo, introduction to}
+\entry{Introduction to Texinfo}{4}{Introduction to Texinfo}
+\entry{Source file format}{4}{Source file format}
+\entry{Output formats}{4}{Output formats}
+\entry{Back-end output formats}{4}{Back-end output formats}
+\entry{Info output, overview}{4}{Info output, overview}
+\entry{Plain text output, overview}{4}{Plain text output, overview}
+\entry{HTML output, overview}{4}{HTML output, overview}
+\entry{W3 consortium}{4}{W3 consortium}
+\entry{Mozilla}{4}{Mozilla}
+\entry{Lynx}{4}{Lynx}
+\entry{Emacs-W3}{4}{Emacs-W3}
+\entry{DVI output, overview}{4}{DVI output, overview}
+\entry{dvips}{4}{\code {dvips}}
+\entry{xdvi}{4}{\code {xdvi}}
+\entry{PostScript output, overview}{5}{PostScript output, overview}
+\entry{PDF output, overview}{5}{PDF output, overview}
+\entry{Beebe, Nelson}{5}{Beebe, Nelson}
+\entry{Docbook output, overview}{5}{Docbook output, overview}
+\entry{XML Docbook output, overview}{5}{XML Docbook output, overview}
+\entry{XML Texinfo output, overview}{5}{XML Texinfo output, overview}
+\entry{Texinfo XML output, overview}{5}{Texinfo XML output, overview}
+\entry{DTD, for Texinfo XML}{5}{DTD, for Texinfo XML}
+\entry{texinfo.dtd}{5}{\code {texinfo.dtd}}
+\entry{txixml2texi}{5}{\code {txixml2texi}}
+\entry{Additional output formats}{5}{Additional output formats}
+\entry{Man page output, not supported}{5}{Man page output, not supported}
+\entry{help2man}{5}{\code {help2man}}
+\entry{O'Dea, Brendan}{5}{O'Dea, Brendan}
+\entry{Output formats, supporting more}{6}{Output formats, supporting more}
+\entry{SGML-tools output format}{6}{SGML-tools output format}
+\entry{Texinfo parsers, discouraging more}{6}{Texinfo parsers, discouraging 
more}
+\entry{Texinfo document structure}{6}{Texinfo document structure}
+\entry{Document structure, of Texinfo}{6}{Document structure, of Texinfo}
+\entry{Structure, of Texinfo documents}{6}{Structure, of Texinfo documents}
+\entry{Double structure, of Texinfo documents}{6}{Double structure, of Texinfo 
documents}
+\entry{Info files}{7}{Info files}
+\entry{URI syntax for Info}{7}{URI syntax for Info}
+\entry{Printed book and manual characteristics}{7}{Printed book and manual 
characteristics}
+\entry{Manual characteristics, printed}{7}{Manual characteristics, printed}
+\entry{Book characteristics, printed}{7}{Book characteristics, printed}
+\entry{Texinfo printed book characteristics}{7}{Texinfo printed book 
characteristics}
+\entry{Characteristics, printed books or manuals}{7}{Characteristics, printed 
books or manuals}
+\entry{Knuth, Donald}{7}{Knuth, Donald}
+\entry{Literate programming}{8}{Literate programming}
address@hidden@-commands}
+\entry{Formatting commands}{8}{Formatting commands}
+\entry{Braces, when to use}{8}{Braces, when to use}
+\entry{General syntactic conventions}{9}{General syntactic conventions}
+\entry{Syntactic conventions}{9}{Syntactic conventions}
+\entry{Conventions, syntactic}{9}{Conventions, syntactic}
+\entry{Characters, basic input}{9}{Characters, basic input}
+\entry{Source files, characters used}{9}{Source files, characters used}
+\entry{Multiple dashes in source}{9}{Multiple dashes in source}
+\entry{Dashes in source}{9}{Dashes in source}
+\entry{Hyphens in source, two or three in a row}{9}{Hyphens in source, two or 
three in a row}
+\entry{Em dash, producing}{9}{Em dash, producing}
+\entry{En dash, producing}{9}{En dash, producing}
+\entry{Form feed characters}{9}{Form feed characters}
+\entry{CTRL-l}{9}{\kbd {CTRL-l}}
+\entry{Tabs; don't use!}{9}{Tabs; don't use!}
+\entry{Comments}{10}{Comments}
+\entry{Catcode for comments in TeX{}}{10}{Catcode for comments in \TeX {}}
+\entry{Ignored text}{10}{Ignored text}
+\entry{Unprocessed text}{10}{Unprocessed text}
+\entry{Minimal Texinfo file (requirements)}{10}{Minimal Texinfo file 
(requirements)}
+\entry{Must have in Texinfo file}{10}{Must have in Texinfo file}
+\entry{Required in Texinfo file}{10}{Required in Texinfo file}
+\entry{Texinfo file minimum}{10}{Texinfo file minimum}
+\entry{Sample Texinfo file, with comments}{12}{Sample Texinfo file, with 
comments}
+\entry{Stallman, Richard M.}{14}{Stallman, Richard M.}
+\entry{Chassell, Robert J.}{14}{Chassell, Robert J.}
+\entry{Fox, Brian}{14}{Fox, Brian}
+\entry{Berry, Karl}{14}{Berry, Karl}
+\entry{Pinard, Francois}{14}{Pinard, Fran\,{c}ois}
+\entry{Schwab, Andreas}{14}{Schwab, Andreas}
+\entry{Weinberg, Zack}{14}{Weinberg, Zack}
+\entry{Weisshaus, Melissa}{14}{Weisshaus, Melissa}
+\entry{Zaretskii, Eli}{14}{Zaretskii, Eli}
+\entry{Zuhn, David D.}{14}{Zuhn, David D.}
+\entry{History of Texinfo}{14}{History of Texinfo}
+\entry{Texinfo history}{14}{Texinfo history}
+\entry{Scribe}{14}{Scribe}
+\entry{Reid, Brian}{14}{Reid, Brian}
+\entry{Bolio}{14}{Bolio}
+\entry{BoTeX{}}{14}{Bo\TeX {}}
+\entry{Cons, Lionel}{15}{Cons, Lionel}
+\entry{Dumas, Patrice}{15}{Dumas, Patrice}
+\entry{Texinfo mode}{16}{Texinfo mode}
+\entry{Mode, using Texinfo}{16}{Mode, using Texinfo}
+\entry{GNU Emacs}{16}{GNU Emacs}
+\entry{Emacs}{16}{Emacs}
+\entry{Inserting frequently used commands}{17}{Inserting frequently used 
commands}
+\entry{Frequently used commands, inserting}{17}{Frequently used commands, 
inserting}
+\entry{Commands, inserting them}{17}{Commands, inserting them}
+\entry{Menu description, start}{18}{Menu description, start}
+\entry{Description for menu, start}{18}{Description for menu, start}
+\entry{Showing the sectioning structure of a file}{19}{Showing the sectioning 
structure of a file}
+\entry{Sectioning structure of a file, showing}{19}{Sectioning structure of a 
file, showing}
+\entry{Structure of a file, showing}{19}{Structure of a file, showing}
+\entry{Outline of file structure, showing}{19}{Outline of file structure, 
showing}
+\entry{Contents-like outline of file structure}{19}{Contents-like outline of 
file structure}
+\entry{File sectioning structure, showing}{19}{File sectioning structure, 
showing}
+\entry{Texinfo file sectioning structure, showing}{19}{Texinfo file sectioning 
structure, showing}
+\entry{page-delimiter}{19}{\code {page-delimiter}}
+\entry{Page delimiter in Texinfo mode}{19}{Page delimiter in Texinfo mode}
+\entry{Updating nodes and menus}{19}{Updating nodes and menus}
+\entry{Create nodes, menus automatically}{19}{Create nodes, menus 
automatically}
+\entry{Insert nodes, menus automatically}{19}{Insert nodes, menus 
automatically}
+\entry{Automatically insert nodes, menus}{19}{Automatically insert nodes, 
menus}
+\entry{Updating requirements}{22}{Updating requirements}
+\entry{Requirements for updating commands}{22}{Requirements for updating 
commands}
+\entry{Formatting for Info}{24}{Formatting for Info}
+\entry{Running an Info formatter}{24}{Running an Info formatter}
+\entry{Info formatting}{24}{Info formatting}
+\entry{Formatting for printing}{24}{Formatting for printing}
+\entry{Printing a region or buffer}{24}{Printing a region or buffer}
+\entry{Region formatting and printing}{24}{Region formatting and printing}
+\entry{Buffer formatting and printing}{24}{Buffer formatting and printing}
+\entry{Part of file formatting and printing}{24}{Part of file formatting and 
printing}
+\entry{Beginning a Texinfo file}{28}{Beginning a Texinfo file}
+\entry{Texinfo file beginning}{28}{Texinfo file beginning}
+\entry{File beginning}{28}{File beginning}
+\entry{Frontmatter, text in}{28}{Frontmatter, text in}
+\entry{Example beginning of Texinfo file}{28}{Example beginning of Texinfo 
file}
+\entry{Header for Texinfo files}{29}{Header for Texinfo files}
+\entry{Texinfo file header}{29}{Texinfo file header}
+\entry{First line of a Texinfo file}{30}{First line of a Texinfo file}
+\entry{Beginning line of a Texinfo file}{30}{Beginning line of a Texinfo file}
+\entry{Header of a Texinfo file}{30}{Header of a Texinfo file}
+\entry{Start of header line}{30}{Start of header line}
+\entry{Texinfo requires @setfilename}{30}{Texinfo requires \code address@hidden
+\entry{Output file name, required}{30}{Output file name, required}
+\entry{Ignored before @setfilename}{30}{Ignored before \code address@hidden
+\entry{{\tt \indexbackslash }input source line ignored}{30}{\samp {{\tt 
\backslashcurfont }input} source line ignored}
+\entry{Length of file names}{30}{Length of file names}
+\entry{File name collision}{30}{File name collision}
+\entry{Info file name, choosing}{30}{Info file name, choosing}
+\entry{texinfo.cnf}{31}{\code {texinfo.cnf}}
+\entry{Document title, specifying}{31}{Document title, specifying}
+\entry{<title> HTML tag}{31}{\code {<title>} HTML tag}
+\entry{End of header line}{32}{End of header line}
+\entry{Document Permissions}{32}{Document Permissions}
+\entry{Copying Permissions}{32}{Copying Permissions}
+\entry{Copyright word, always in English}{32}{Copyright word, always in 
English}
+\entry{Years, in copyright line}{33}{Years, in copyright line}
+\entry{Copyright holder for FSF works}{33}{Copyright holder for FSF works}
+\entry{Holder of copyright for FSF works}{33}{Holder of copyright for FSF 
works}
+\entry{Owner of copyright for FSF works}{33}{Owner of copyright for FSF works}
+\entry{Copying text, including}{33}{Copying text, including}
+\entry{Permissions text, including}{33}{Permissions text, including}
+\entry{Including permissions text}{33}{Including permissions text}
+\entry{Title page}{33}{Title page}
+\entry{Bastard title page}{34}{Bastard title page}
+\entry{Title page, bastard}{34}{Title page, bastard}
+\entry{Copyright page}{36}{Copyright page}
+\entry{Printed permissions}{36}{Printed permissions}
+\entry{Permissions, printed}{36}{Permissions, printed}
+\entry{Headings, page, begin to appear}{37}{Headings, page, begin to appear}
+\entry{Titlepage end starts headings}{37}{Titlepage end starts headings}
+\entry{End titlepage starts headings}{37}{End titlepage starts headings}
+\entry{Generating page headings}{37}{Generating page headings}
+\entry{Table of contents}{37}{Table of contents}
+\entry{Contents, table of}{37}{Contents, table of}
+\entry{Short table of contents}{37}{Short table of contents}
+\entry{Contents, after title page}{38}{Contents, after title page}
+\entry{Table of contents, after title page}{38}{Table of contents, after title 
page}
+\entry{Top node}{38}{Top node}
+\entry{Node, `Top'}{38}{Node, `Top'}
+\entry{Top node example}{39}{Top node example}
+\entry{Master menu}{39}{Master menu}
+\entry{Menu, master}{39}{Menu, master}
+\entry{Parts of a master menu}{39}{Parts of a master menu}
+\entry{Detailed menu}{39}{Detailed menu}
+\entry{Global Document Commands}{40}{Global Document Commands}
+\entry{Document description}{40}{Document description}
+\entry{Description of document}{40}{Description of document}
+\entry{Summary of document}{40}{Summary of document}
+\entry{Abstract of document}{40}{Abstract of document}
+\entry{<meta> HTML tag, and document description}{40}{<meta> HTML tag, and 
document description}
+\entry{Starting chapters}{40}{Starting chapters}
+\entry{Pages, starting odd}{40}{Pages, starting odd}
+\entry{Indenting paragraphs, control of}{42}{Indenting paragraphs, control of}
+\entry{Paragraph indentation control}{42}{Paragraph indentation control}
+\entry{First paragraph, suppressing indentation of}{43}{First paragraph, 
suppressing indentation of}
+\entry{Suppressing first paragraph indentation}{43}{Suppressing first 
paragraph indentation}
+\entry{Preventing first paragraph indentation}{43}{Preventing first paragraph 
indentation}
+\entry{Indenting, suppressing of first paragraph}{43}{Indenting, suppressing 
of first paragraph}
+\entry{Headings, indentation after}{43}{Headings, indentation after}
+\entry{Indenting environments}{43}{Indenting environments}
+\entry{Environment indentation}{43}{Environment indentation}
+\entry{Example indentation}{43}{Example indentation}
+\entry{Ending a Texinfo file}{44}{Ending a Texinfo file}
+\entry{Texinfo file ending}{44}{Texinfo file ending}
+\entry{File ending}{44}{File ending}
+\entry{Printing an index}{44}{Printing an index}
+\entry{Indices, printing and menus}{44}{Indices, printing and menus}
+\entry{Generating menus with indices}{44}{Generating menus with indices}
+\entry{Menus generated with indices}{44}{Menus generated with indices}
+\entry{Chapter structuring}{46}{Chapter structuring}
+\entry{Structuring of chapters}{46}{Structuring of chapters}
+\entry{Sectioning}{46}{Sectioning}
+\entry{Tree structuring}{46}{Tree structuring}
+\entry{Docbook and prefatory sections}{48}{Docbook and prefatory sections}
+\entry{Preface, etc., and Docbook}{48}{Preface, etc., and Docbook}
+\entry{<acknowledgements> Docbook tag}{48}{\code {<acknowledgements>} Docbook 
tag}
+\entry{<colophon> Docbook tag}{48}{\code {<colophon>} Docbook tag}
+\entry{<dedication> Docbook tag}{48}{\code {<dedication>} Docbook tag}
+\entry{<preface> Docbook tag}{48}{\code {<preface>} Docbook tag}
+\entry{<chapter> Docbook tag}{48}{\code {<chapter>} Docbook tag}
+\entry{<title> Docbook tag}{48}{\code {<title>} Docbook tag}
+\entry{Subsection-like commands}{49}{Subsection-like commands}
+\entry{Subsub sectioning commands}{50}{Subsub sectioning commands}
+\entry{Part pages}{50}{Part pages}
+\entry{Raising and lowering sections}{51}{Raising and lowering sections}
+\entry{Lowering and raising sections}{51}{Lowering and raising sections}
+\entry{Sections, raising and lowering}{51}{Sections, raising and lowering}
+\entry{Include files, and section levels}{51}{Include files, and section 
levels}
+\entry{Node, defined}{53}{Node, defined}
+\entry{accesskey, in HTML output of nodes}{53}{\code {accesskey\r {, in HTML 
output of nodes}}}
+\entry{Node names, choosing}{54}{Node names, choosing}
+\entry{Writing an @node line}{54}{Writing an \code address@hidden line}
address@hidden line writing}{54}{\code address@hidden line writing}
+\entry{Node line writing}{54}{Node line writing}
+\entry{Node line requirements}{55}{Node line requirements}
+\entry{Restrictions on node names}{55}{Restrictions on node names}
+\entry{Unique node names requirement}{55}{Unique node names requirement}
+\entry{Node names must be unique}{55}{Node names must be unique}
+\entry{Commands in node names}{55}{Commands in node names}
address@hidden in node address@hidden in node names}
+\entry{Colon in node name}{56}{Colon in node name}
+\entry{Comma in node name}{56}{Comma in node name}
+\entry{Parentheses in node name}{56}{Parentheses in node name}
+\entry{Period in node name}{56}{Period in node name}
+\entry{Characters, invalid in node name}{56}{Characters, invalid in node name}
+\entry{Invalid characters in node names}{56}{Invalid characters in node names}
+\entry{Node names, invalid characters in}{56}{Node names, invalid characters 
in}
+\entry{Case in node name}{56}{Case in node name}
+\entry{White space in node name}{56}{White space in node name}
+\entry{Spaces in node name}{56}{Spaces in node name}
+\entry{Top node is first}{56}{Top node is first}
+\entry{First node}{56}{First node}
+\entry{Up node of Top node}{56}{Up node of Top node}
+\entry{(dir) as Up node of Top node}{56}{(dir) as Up node of Top node}
+\entry{Next node of Top node}{57}{Next node of Top node}
+\entry{Creating pointers with makeinfo}{57}{Creating pointers with \code 
{makeinfo}}
+\entry{Pointer creation with makeinfo}{57}{Pointer creation with \code 
{makeinfo}}
+\entry{Automatic pointer creation with makeinfo}{57}{Automatic pointer 
creation with \code {makeinfo}}
+\entry{Implicit pointer creation with makeinfo}{57}{Implicit pointer creation 
with \code {makeinfo}}
+\entry{Detail menu}{58}{Detail menu}
+\entry{Anchors}{58}{Anchors}
+\entry{Cross reference targets, arbitrary}{58}{Cross reference targets, 
arbitrary}
+\entry{Targets for cross references, arbitrary}{58}{Targets for cross 
references, arbitrary}
+\entry{Nodes, deleting or renaming}{58}{Nodes, deleting or renaming}
+\entry{Menus}{61}{Menus}
+\entry{Menu location}{61}{Menu location}
+\entry{Location of menus}{61}{Location of menus}
+\entry{Info format, and menus}{61}{Info format, and menus}
+\entry{Hierarchical documents, and menus}{61}{Hierarchical documents, and 
menus}
+\entry{Writing a menu}{61}{Writing a menu}
+\entry{Menu writing}{61}{Menu writing}
+\entry{Spaces, in menus}{61}{Spaces, in menus}
+\entry{accesskey, in HTML output of menus}{62}{\code {accesskey\r {, in HTML 
output of menus}}}
+\entry{Parts of a menu}{62}{Parts of a menu}
+\entry{Menu parts}{62}{Menu parts}
address@hidden parts}{62}{\code address@hidden parts}
+\entry{Two part menu entry}{62}{Two part menu entry}
+\entry{Double-colon menu entries}{62}{Double-colon menu entries}
+\entry{Menu entries with two colons}{62}{Menu entries with two colons}
+\entry{Less cluttered menu entry}{62}{Less cluttered menu entry}
+\entry{Uncluttered menu entry}{62}{Uncluttered menu entry}
+\entry{Menu example}{63}{Menu example}
+\entry{Example menu}{63}{Example menu}
+\entry{Referring to other Info files}{63}{Referring to other Info files}
+\entry{Nodes in other Info files}{63}{Nodes in other Info files}
+\entry{Other Info files' nodes}{63}{Other Info files' nodes}
+\entry{Going to other Info files' nodes}{63}{Going to other Info files' nodes}
+\entry{Info; other files' nodes}{63}{Info; other files' nodes}
+\entry{Making cross references}{65}{Making cross references}
+\entry{Cross references}{65}{Cross references}
+\entry{References}{65}{References}
+\entry{Different cross reference commands}{65}{Different cross reference 
commands}
+\entry{Cross reference parts}{66}{Cross reference parts}
+\entry{Parts of a cross reference}{66}{Parts of a cross reference}
+\entry{Cross references using @xref}{67}{Cross references using \code 
address@hidden
+\entry{References using @xref}{67}{References using \code address@hidden
+\entry{One-argument form of cross references}{68}{One-argument form of cross 
references}
+\entry{Two-argument form of cross references}{68}{Two-argument form of cross 
references}
+\entry{Three-argument form of cross references}{69}{Three-argument form of 
cross references}
+\entry{Four- and five argument forms of cross references}{70}{Four- and five 
argument forms of cross references}
+\entry{Naming a `Top' Node in references}{71}{Naming a `Top' Node in 
references}
+\entry{`Top' node naming for references}{71}{`Top' node naming for references}
+\entry{Manual, referring to as a whole}{71}{Manual, referring to as a whole}
+\entry{Referring to an entire manual}{71}{Referring to an entire manual}
+\entry{Cross references using @ref}{72}{Cross references using \code 
address@hidden
+\entry{References using @ref}{72}{References using \code address@hidden
+\entry{Hurricanes}{72}{Hurricanes}
+\entry{Sea surges}{72}{Sea surges}
+\entry{Cross references using @pxref}{72}{Cross references using \code 
address@hidden
+\entry{References using @pxref}{72}{References using \code address@hidden
+\entry{Flooding}{72}{Flooding}
+\entry{Cross references using @inforef}{73}{Cross references using \code 
address@hidden
+\entry{References using @inforef}{73}{References using \code address@hidden
+\entry{Uniform resource locator, referring to}{74}{Uniform resource locator, 
referring to}
+\entry{URL, referring to}{74}{URL, referring to}
+\entry{href, producing HTML}{74}{\code {href}, producing HTML}
+\entry{Man page, reference to}{74}{Man page, reference to}
+\entry{Line breaking, and urls}{74}{Line breaking, and urls}
+\entry{Breakpoints within urls}{74}{Breakpoints within urls}
+\entry{after, value for @urefbreakstyle}{74}{\code {after\r {, value for \code 
address@hidden
+\entry{before, value for @urefbreakstyle}{74}{\code {before\r {, value for 
\code address@hidden
+\entry{none, value for @urefbreakstyle}{74}{\code {none\r {, value for \code 
address@hidden
+\entry{<URL...> convention, not used}{75}{\code {<URL...>} convention, not 
used}
+\entry{Paragraph, marking text within}{76}{Paragraph, marking text within}
+\entry{Marking words and phrases}{76}{Marking words and phrases}
+\entry{Words and phrases, marking them}{76}{Words and phrases, marking them}
+\entry{Marking text within a paragraph}{76}{Marking text within a paragraph}
+\entry{Text, marking up}{76}{Text, marking up}
+\entry{Highlighting text}{76}{Highlighting text}
+\entry{Indicating commands, definitions, etc.}{76}{Indicating commands, 
definitions, etc.}
+\entry{Syntactic tokens, indicating}{77}{Syntactic tokens, indicating}
+\entry{Expressions in a program, indicating}{77}{Expressions in a program, 
indicating}
+\entry{Keywords, indicating}{77}{Keywords, indicating}
+\entry{Reserved words, indicating}{77}{Reserved words, indicating}
+\entry{Case, not altering in @code}{77}{Case, not altering in \code 
address@hidden
+\entry{Keyboard input}{78}{Keyboard input}
+\entry{User input}{78}{User input}
+\entry{Slanted typewriter font, for @kbd}{78}{Slanted typewriter font, for 
\code address@hidden
+\entry{distinct, value for @kbdinputstyle}{78}{\code {distinct\r {, value for 
\code address@hidden
+\entry{example, value for @kbdinputstyle}{78}{\code {example\r {, value for 
\code address@hidden
+\entry{code, value for @kbdinputstyle}{78}{\code {code\r {, value for \code 
address@hidden
+\entry{Recommended names for keys}{79}{Recommended names for keys}
+\entry{Keys, recommended names}{79}{Keys, recommended names}
+\entry{Names recommended for keys}{79}{Names recommended for keys}
+\entry{Abbreviations for keys}{79}{Abbreviations for keys}
+\entry{Control keys, specifying}{79}{Control keys, specifying}
+\entry{Meta keys, specifying}{79}{Meta keys, specifying}
+\entry{META key}{79}{META key}
+\entry{Verbatim in-line text}{80}{Verbatim in-line text}
+\entry{Delimiter character, for verbatim}{80}{Delimiter character, for 
verbatim}
+\entry{Command names, indicating}{82}{Command names, indicating}
+\entry{Program names, indicating}{82}{Program names, indicating}
+\entry{Abbreviations, tagging}{83}{Abbreviations, tagging}
+\entry{<abbr> and <abbrev> tags}{83}{\code {<abbr>} and \code {<abbrev>} tags}
+\entry{NASA, as acronym}{83}{NASA, as acronym}
+\entry{Acronyms, tagging}{83}{Acronyms, tagging}
+\entry{<acronym> tag}{83}{\code {<acronym>} tag}
+\entry{Family names, in all capitals}{83}{Family names, in all capitals}
+\entry{Uniform resource locator, indicating}{84}{Uniform resource locator, 
indicating}
+\entry{URL, indicating}{84}{URL, indicating}
+\entry{Mailto link}{84}{Mailto link}
+\entry{Emphasizing text}{84}{Emphasizing text}
+\entry{Emphasizing text, font for}{85}{Emphasizing text, font for}
+\entry{Small caps font}{85}{Small caps font}
+\entry{<small> tag}{85}{\code {<small>} tag}
+\entry{Fonts for printing}{85}{Fonts for printing}
+\entry{Font size, reducing}{85}{Font size, reducing}
+\entry{Reducing font size}{85}{Reducing font size}
+\entry{Smaller fonts}{85}{Smaller fonts}
+\entry{Printing cost, reducing}{85}{Printing cost, reducing}
+\entry{Bold font}{86}{Bold font}
+\entry{Italic font}{86}{Italic font}
+\entry{Roman font}{86}{Roman font}
+\entry{Default font}{86}{Default font}
+\entry{Sans serif font}{86}{Sans serif font}
+\entry{Slanted font}{86}{Slanted font}
+\entry{Oblique font}{86}{Oblique font}
+\entry{Monospace font}{86}{Monospace font}
+\entry{Fixed-width font}{86}{Fixed-width font}
+\entry{Typewriter font}{86}{Typewriter font}
+\entry{<lineannotation> Docbook tag}{86}{<lineannotation> Docbook tag}
+\entry{Quotations}{88}{Quotations}
+\entry{<caution> Docbook tag}{88}{\code {<caution>} Docbook tag}
+\entry{<important> Docbook tag}{88}{\code {<important>} Docbook tag}
+\entry{<note> Docbook tag}{88}{\code {<note>} Docbook tag}
+\entry{<tip> Docbook tag}{88}{\code {<tip>} Docbook tag}
+\entry{<warning> Docbook tag}{88}{\code {<warning>} Docbook tag}
+\entry{<blockquote> HTML tag}{88}{\code {<blockquote>} HTML tag}
+\entry{Indented text block}{89}{Indented text block}
+\entry{Examples, formatting them}{89}{Examples, formatting them}
+\entry{Formatting examples}{89}{Formatting examples}
+\entry{Verbatim environment}{90}{Verbatim environment}
+\entry{Verbatim, small}{91}{Verbatim, small}
+\entry{Small verbatim}{91}{Small verbatim}
+\entry{Verbatim, include file}{91}{Verbatim, include file}
+\entry{Including a file verbatim}{91}{Including a file verbatim}
+\entry{Lisp example}{91}{Lisp example}
+\entry{Small examples}{92}{Small examples}
+\entry{Examples in smaller fonts}{92}{Examples in smaller fonts}
+\entry{Quotations in smaller fonts}{92}{Quotations in smaller fonts}
+\entry{Lisp examples in smaller fonts}{92}{Lisp examples in smaller fonts}
+\entry{Display formatting}{92}{Display formatting}
+\entry{Indentation undoing}{93}{Indentation undoing}
+\entry{Ragged right, without filling}{93}{Ragged right, without filling}
+\entry{Ragged left, without filling}{93}{Ragged left, without filling}
+\entry{Ragged right, with filling}{94}{Ragged right, with filling}
+\entry{Omitting indentation}{94}{Omitting indentation}
+\entry{Suppressing indentation}{94}{Suppressing indentation}
+\entry{Indentation, omitting}{94}{Indentation, omitting}
+\entry{Forcing indentation}{95}{Forcing indentation}
+\entry{Inserting indentation}{95}{Inserting indentation}
+\entry{Indentation, forcing}{95}{Indentation, forcing}
+\entry{Box with rounded corners}{96}{Box with rounded corners}
+\entry{Rounded rectangles, around text}{96}{Rounded rectangles, around text}
+\entry{Making lists and tables}{97}{Making lists and tables}
+\entry{Lists and tables, making}{97}{Lists and tables, making}
+\entry{Tables and lists, making}{97}{Tables and lists, making}
+\entry{Itemization}{98}{Itemization}
address@hidden, for blank items}{98}{\code address@hidden, for blank items}
+\entry{Enumeration}{99}{Enumeration}
+\entry{Tables, making two-column}{100}{Tables, making two-column}
+\entry{Definition lists, typesetting}{101}{Definition lists, typesetting}
+\entry{Tables with indexing}{102}{Tables with indexing}
+\entry{Indexing table entries automatically}{102}{Indexing table entries 
automatically}
+\entry{Two named items for @table}{102}{Two named items for \code 
address@hidden
+\entry{Tables, making multi-column}{102}{Tables, making multi-column}
+\entry{Multitable column widths}{103}{Multitable column widths}
+\entry{Column widths, defining for multitables}{103}{Column widths, defining 
for multitables}
+\entry{Widths, defining multitable column}{103}{Widths, defining multitable 
column}
+\entry{Line length, column widths as fraction of}{103}{Line length, column 
widths as fraction of}
+\entry{Prototype row, column widths defined by}{103}{Prototype row, column 
widths defined by}
+\entry{Multitable rows}{103}{Multitable rows}
+\entry{Rows, of a multitable}{103}{Rows, of a multitable}
+\entry{Heading row, in table}{103}{Heading row, in table}
+\entry{<thead> HTML/XML tag}{103}{\code {<thead>} HTML/XML tag}
+\entry{Font for multitable heading rows}{103}{Font for multitable heading rows}
+\entry{Special displays}{105}{Special displays}
+\entry{Floats, in general}{105}{Floats, in general}
+\entry{Floating, not yet implemented}{105}{Floating, not yet implemented}
+\entry{Float environment}{105}{Float environment}
+\entry{Floats, making unnumbered}{105}{Floats, making unnumbered}
+\entry{Unnumbered float, creating}{105}{Unnumbered float, creating}
+\entry{Floats, numbering of}{106}{Floats, numbering of}
+\entry{Numbering of floats}{106}{Numbering of floats}
+\entry{Captions, for floats}{106}{Captions, for floats}
+\entry{Short captions, for lists of floats}{106}{Short captions, for lists of 
floats}
+\entry{List of floats}{106}{List of floats}
+\entry{Floats, list of}{106}{Floats, list of}
+\entry{Table of contents, for floats}{106}{Table of contents, for floats}
+\entry{Images, inserting}{107}{Images, inserting}
+\entry{Pictures, inserting}{107}{Pictures, inserting}
+\entry{Formats for images}{107}{Formats for images}
+\entry{Image formats}{107}{Image formats}
+\entry{eps image format}{107}{\code {eps image format}}
+\entry{pdftex, and images}{107}{\code {pdftex\r {, and images}}}
+\entry{png image format}{107}{\code {png image format}}
+\entry{jpeg image format}{107}{\code {jpeg image format}}
+\entry{pdf image inclusions}{107}{\code {pdf image inclusions}}
+\entry{SVG images, used in Docbook}{107}{SVG images, used in Docbook}
+\entry{XPM image format}{107}{\code {XPM image format}}
+\entry{Alt attribute for images}{108}{Alt attribute for images}
+\entry{Images, alternate text for}{108}{Images, alternate text for}
address@hidden for images in Info}{108}{\samp address@hidden for images in Info}
+\entry{Images, scaling}{108}{Images, scaling}
+\entry{Scaling images}{108}{Scaling images}
+\entry{Width of images}{108}{Width of images}
+\entry{Height of images}{108}{Height of images}
+\entry{Aspect ratio of images}{108}{Aspect ratio of images}
+\entry{Distorting images}{108}{Distorting images}
+\entry{Dimensions and image sizes}{108}{Dimensions and image sizes}
+\entry{Points (dimension)}{108}{Points (dimension)}
+\entry{Picas}{108}{Picas}
+\entry{Big points}{108}{Big points}
+\entry{Inches}{108}{Inches}
+\entry{Centimeters}{109}{Centimeters}
+\entry{Millimeters}{109}{Millimeters}
+\entry{Didot points}{109}{Did\^ot points}
+\entry{Ciceros}{109}{Ciceros}
+\entry{Scaled points}{109}{Scaled points}
+\entry{ridt.eps}{109}{\code {ridt.eps}}
+\entry{epsf.tex}{109}{\code {epsf.tex}}
+\entry{Footnotes}{109}{Footnotes}
+\entry{End node footnote style}{110}{\samp {\r {End}} node footnote style}
+\entry{Separate footnote style}{110}{\samp {\r {Separate}} footnote style}
+\entry{Indices}{112}{Indices}
+\entry{Index entries, making}{112}{Index entries, making}
+\entry{Entries, making index}{112}{Entries, making index}
+\entry{cp (concept) index}{112}{\code {cp} (concept) index}
+\entry{fn (function) index}{112}{\code {fn} (function) index}
+\entry{ky (keystroke) index}{112}{\code {ky} (keystroke) index}
+\entry{pg (program) index}{112}{\code {pg} (program) index}
+\entry{tp (data type) index}{112}{\code {tp} (data type) index}
+\entry{vr (variable) index}{112}{\code {vr} (variable) index}
+\entry{Defining indexing entries}{113}{Defining indexing entries}
+\entry{Index entries}{113}{Index entries}
+\entry{Entries for an index}{113}{Entries for an index}
+\entry{Specifying index entries}{113}{Specifying index entries}
+\entry{Creating index entries}{113}{Creating index entries}
+\entry{Writing index entries}{113}{Writing index entries}
+\entry{Index entries, advice on writing}{113}{Index entries, advice on writing}
+\entry{Advice on writing entries}{113}{Advice on writing entries}
+\entry{Capitalization of index entries}{113}{Capitalization of index entries}
+\entry{Unique index entries}{113}{Unique index entries}
+\entry{Index font types}{114}{Index font types}
+\entry{Combining indices}{114}{Combining indices}
+\entry{Indices, combining them}{114}{Indices, combining them}
+\entry{Predefined names for indices}{114}{Predefined names for indices}
+\entry{Two letter names for indices}{114}{Two letter names for indices}
+\entry{Indices, two letter names}{114}{Indices, two letter names}
+\entry{Names for indices}{114}{Names for indices}
+\entry{Fonts for indices}{115}{Fonts for indices}
+\entry{Defining new indices}{115}{Defining new indices}
+\entry{Indices, defining new}{115}{Indices, defining new}
+\entry{New index defining}{115}{New index defining}
+\entry{Inserting special characters and symbols}{117}{Inserting special 
characters and symbols}
+\entry{Special insertions}{117}{Special insertions}
+\entry{Special characters, inserting}{117}{Special characters, inserting}
+\entry{Commands to insert special characters}{117}{Commands to insert special 
characters}
+\entry{At sign, inserting}{117}{At sign, inserting}
+\entry{Inserting @ (literal @)}{117}{Inserting @ \r {(literal \samp 
address@hidden)}}
+\entry{Braces, inserting}{117}{Braces, inserting}
+\entry{Comma, inserting}{118}{Comma, inserting}
+\entry{Backslash, inserting}{118}{Backslash, inserting}
+\entry{Inserting #}{118}{Inserting #}
+\entry{Hash sign, inserting}{118}{Hash sign, inserting}
+\entry{Number sign, inserting}{118}{Number sign, inserting}
+\entry{Octotherp, inserting}{118}{Octotherp, inserting}
+\entry{Sharp sign (not), inserting}{118}{Sharp sign (not), inserting}
+\entry{Inserting quote characters}{119}{Inserting quote characters}
+\entry{Quote characters, inserting}{119}{Quote characters, inserting}
+\entry{undirected single quote}{119}{undirected single quote}
+\entry{backtick}{119}{backtick}
+\entry{grave accent, standalone}{119}{grave accent, standalone}
+\entry{Inserting space}{119}{Inserting space}
+\entry{Spacing, inserting}{119}{Spacing, inserting}
+\entry{Multiple spaces}{119}{Multiple spaces}
+\entry{Whitespace, inserting}{119}{Whitespace, inserting}
+\entry{Space, inserting horizontal}{119}{Space, inserting horizontal}
+\entry{Not ending a sentence}{120}{Not ending a sentence}
+\entry{Sentence non-ending punctuation}{120}{Sentence non-ending punctuation}
+\entry{Periods, inserting}{120}{Periods, inserting}
+\entry{Spacing, in the middle of sentences}{120}{Spacing, in the middle of 
sentences}
+\entry{Ending a Sentence}{121}{Ending a Sentence}
+\entry{Sentence ending punctuation}{121}{Sentence ending punctuation}
+\entry{Spacing, at ends of sentences}{121}{Spacing, at ends of sentences}
+\entry{French spacing}{121}{French spacing}
+\entry{Sentences, spacing after}{121}{Sentences, spacing after}
+\entry{Space, after sentences}{121}{Space, after sentences}
+\entry{Thin space between number, dimension}{122}{Thin space between number, 
dimension}
+\entry{Dimension formatting}{122}{Dimension formatting}
+\entry{Format a dimension}{122}{Format a dimension}
+\entry{Inserting accents}{122}{Inserting accents}
+\entry{Accents, inserting}{122}{Accents, inserting}
+\entry{Floating accents, inserting}{122}{Floating accents, inserting}
+\entry{Umlaut accent}{122}{Umlaut accent}
+\entry{Acute accent}{122}{Acute accent}
+\entry{Macron accent}{122}{Macron accent}
+\entry{Circumflex accent}{122}{Circumflex accent}
+\entry{Grave accent}{122}{Grave accent}
+\entry{Tilde accent}{122}{Tilde accent}
+\entry{Cedilla accent}{122}{Cedilla accent}
+\entry{Dot accent}{122}{Dot accent}
+\entry{Hungarian umlaut accent}{122}{Hungarian umlaut accent}
+\entry{Ogonek diacritic}{122}{Ogonek diacritic}
+\entry{Ring accent}{122}{Ring accent}
+\entry{Tie-after accent}{122}{Tie-after accent}
+\entry{Breve accent}{122}{Breve accent}
+\entry{Underbar accent}{122}{Underbar accent}
+\entry{Underdot accent}{122}{Underdot accent}
+\entry{Hacek accent}{122}{Hacek accent}
+\entry{Check accent}{122}{Check accent}
+\entry{Caron accent}{122}{Caron accent}
+\entry{?{}}{123}{\questiondown {}}
+\entry{!{}}{123}{\exclamdown {}}
+\entry{aa{}}{123}{\aa {}}
+\entry{AA{}}{123}{\AA {}}
+\entry{ae{}}{123}{\ae {}}
+\entry{AE{}}{123}{\AE {}}
+\entry{Icelandic}{123}{Icelandic}
+\entry{Eth}{123}{Eth}
+\entry{dzz{}}{123}{\dh {}}
+\entry{DZZ{}}{123}{\DH {}}
+\entry{i (dotless i)}{123}{\dotless {i} (dotless i)}
+\entry{j (dotless j)}{123}{\dotless {j} (dotless j)}
+\entry{Dotless i, j}{123}{Dotless i, j}
+\entry{l{}}{123}{\l {}}
+\entry{L{}}{123}{\L {}}
+\entry{o{}}{123}{\o {}}
+\entry{O{}}{123}{\O {}}
+\entry{oe{}}{123}{\oe {}}
+\entry{OE{}}{123}{\OE {}}
+\entry{Romance ordinals}{123}{Romance ordinals}
+\entry{Ordinals, Romance}{123}{Ordinals, Romance}
+\entry{Feminine ordinal}{123}{Feminine ordinal}
+\entry{a{}}{123}{\ordf {}}
+\entry{Masculine ordinal}{123}{Masculine ordinal}
+\entry{o{}}{123}{\ordm {}}
+\entry{ss{}}{123}{\ss {}}
+\entry{Es-zet}{123}{Es-zet}
+\entry{Sharp S}{123}{Sharp S}
+\entry{German S}{123}{German S}
+\entry{Thorn}{123}{Thorn}
+\entry{zzz{}}{123}{\th {}}
+\entry{ZZZ{}}{123}{\TH {}}
+\entry{Inserting quotation marks}{123}{Inserting quotation marks}
+\entry{Quotation marks, inserting}{123}{Quotation marks, inserting}
+\entry{Quotation characters (`'), in source}{123}{Quotation characters (`'), 
in source}
+\entry{Unicode quotation characters}{123}{Unicode quotation characters}
+\entry{Grave accent, vs. left quote}{123}{Grave accent, vs. left quote}
+\entry{UTF-8}{123}{UTF-8}
+\entry{ISO 8859-15}{123}{ISO 8859-15}
+\entry{Latin 9}{123}{Latin 9}
+\entry{ISO 8859-1}{123}{ISO 8859-1}
+\entry{Latin 1}{123}{Latin 1}
+\entry{European Computer Modern fonts}{123}{European Computer Modern fonts}
+\entry{EC fonts}{123}{EC fonts}
+\entry{CM-Super fonts}{124}{CM-Super fonts}
+\entry{Single quotation marks}{124}{Single quotation marks}
+\entry{Double quotation marks}{124}{Double quotation marks}
+\entry{Left quotation marks}{124}{Left quotation marks}
+\entry{Right quotation marks}{124}{Right quotation marks}
+\entry{``}{124}{`\w {}`}
+\entry{`}{124}{`}
+\entry{" (undirected double quote character)}{124}{" (undirected double quote 
character)}
+\entry{''}{124}{'\w {}'}
+\entry{'}{124}{'}
+\entry{Double low-9 quotation mark}{124}{Double low-9 quotation mark}
+\entry{Single low-9 quotation mark}{124}{Single low-9 quotation mark}
+\entry{"{} (double low-9 quotation mark)}{124}{\quotedblbase {} (double low-9 
quotation mark)}
+\entry{,{} (single low-9 quotation mark)}{124}{\quotesinglbase {} (single 
low-9 quotation mark)}
+\entry{Angle quotation marks}{124}{Angle quotation marks}
+\entry{Guillemets}{124}{Guillemets}
+\entry{Guillemots}{124}{Guillemots}
+\entry{French quotation marks}{124}{French quotation marks}
+\entry{Quotation marks, French}{124}{Quotation marks, French}
+\entry{German quotation marks}{124}{German quotation marks}
+\entry{Quotation marks, German}{124}{Quotation marks, German}
+\entry{Double guillemets}{124}{Double guillemets}
+\entry{Single guillemets}{124}{Single guillemets}
+\entry{Double angle quotation marks}{124}{Double angle quotation marks}
+\entry{Single angle quotation marks}{124}{Single angle quotation marks}
+\entry{Left-pointing angle quotation marks}{124}{Left-pointing angle quotation 
marks}
+\entry{Right-pointing angle quotation marks}{124}{Right-pointing angle 
quotation marks}
+\entry{Double left-pointing angle quotation mark}{124}{Double left-pointing 
angle quotation mark}
+\entry{Double right-pointing angle quotation mark}{124}{Double right-pointing 
angle quotation mark}
+\entry{Single left-pointing angle quotation mark}{124}{Single left-pointing 
angle quotation mark}
+\entry{Single right-pointing angle quotation mark}{124}{Single right-pointing 
angle quotation mark}
+\entry{<<{}}{124}{\guillemetleft {}}
+\entry{>>{}}{124}{\guillemetright {}}
+\entry{<{}}{124}{\guilsinglleft {}}
+\entry{>{}}{124}{\guilsinglright {}}
+\entry{Auk, bird species}{124}{Auk, bird species}
+\entry{Mathematical expressions, inserting}{124}{Mathematical expressions, 
inserting}
+\entry{Formulas, mathematical}{124}{Formulas, mathematical}
+\entry{Displayed equations}{125}{Displayed equations}
+\entry{Equations, displayed}{125}{Equations, displayed}
+\entry{Glyphs for text}{125}{Glyphs for text}
+\entry{Textual glyphs}{125}{Textual glyphs}
+\entry{Logos, TeX{}}{125}{Logos, \TeX {}}
+\entry{TeX{} logo}{125}{\TeX {} logo}
+\entry{LaTeX{} logo}{125}{\LaTeX {} logo}
+\entry{Copyright symbol}{125}{Copyright symbol}
+\entry{Registered symbol}{126}{Registered symbol}
+\entry{Inserting dots}{126}{Inserting dots}
+\entry{Inserting ellipsis}{126}{Inserting ellipsis}
+\entry{Dots, inserting}{126}{Dots, inserting}
+\entry{Ellipsis, inserting}{126}{Ellipsis, inserting}
+\entry{Euro symbol}{126}{Euro symbol}
+\entry{ISO 8859-15, and Euro}{126}{ISO 8859-15, and Euro}
+\entry{Latin 9, and Euro}{126}{Latin 9, and Euro}
+\entry{feymr10}{126}{\code {feymr10}}
+\entry{Euro font}{126}{Euro font}
+\entry{Pounds symbol}{126}{Pounds symbol}
+\entry{Degree symbol}{126}{Degree symbol}
+\entry{Minus sign}{127}{Minus sign}
+\entry{Em dash, compared to minus sign}{127}{Em dash, compared to minus sign}
+\entry{Hyphen, compared to minus}{127}{Hyphen, compared to minus}
+\entry{Glyphs for programming}{127}{Glyphs for programming}
+\entry{Examples, glyphs for}{127}{Examples, glyphs for}
+\entry{Programming, glyphs for}{127}{Programming, glyphs for}
+\entry{Result of an expression}{128}{Result of an expression}
+\entry{Indicating evaluation}{128}{Indicating evaluation}
+\entry{Evaluation glyph}{128}{Evaluation glyph}
+\entry{Value of an expression, indicating}{128}{Value of an expression, 
indicating}
+\entry{Expansion, indicating}{128}{Expansion, indicating}
+\entry{Macro expansion, indicating}{128}{Macro expansion, indicating}
+\entry{Printed output, indicating}{128}{Printed output, indicating}
+\entry{Error message, indicating}{129}{Error message, indicating}
+\entry{Equivalence, indicating}{129}{Equivalence, indicating}
+\entry{Point, indicating in a buffer}{129}{Point, indicating in a buffer}
+\entry{Click sequences}{130}{Click sequences}
+\entry{Sequence of clicks}{130}{Sequence of clicks}
+\entry{GUI click sequence}{130}{GUI click sequence}
+\entry{Forcing line and page breaks}{132}{Forcing line and page breaks}
+\entry{Making line and page breaks}{132}{Making line and page breaks}
+\entry{Preventing line and page breaks}{132}{Preventing line and page breaks}
+\entry{Line breaks, awkward}{132}{Line breaks, awkward}
+\entry{Page breaks, awkward}{132}{Page breaks, awkward}
+\entry{Line breaks, controlling}{132}{Line breaks, controlling}
+\entry{Controlling line breaks}{132}{Controlling line breaks}
+\entry{Breaks in a line}{132}{Breaks in a line}
+\entry{Force line break}{132}{Force line break}
+\entry{Allow line break}{132}{Allow line break}
+\entry{Hyphenation, helping TeX{} do}{133}{Hyphenation, helping \TeX {} do}
+\entry{Fine-tuning, and hyphenation}{133}{Fine-tuning, and hyphenation}
+\entry{Breaks, within @code}{133}{Breaks, within \code address@hidden
+\entry{-, breakpoint within @code}{133}{-, breakpoint within \code 
address@hidden
+\entry{Hyphen, breakpoint within @code}{133}{Hyphen, breakpoint within \code 
address@hidden
+\entry{Dash, breakpoint within @code}{133}{Dash, breakpoint within \code 
address@hidden
+\entry{_, breakpoint within @code}{133}{_, breakpoint within \code 
address@hidden
+\entry{Underscore, breakpoint within @code}{133}{Underscore, breakpoint within 
\code address@hidden
+\entry{Line breaks, preventing}{134}{Line breaks, preventing}
+\entry{Non-breakable space, fixed}{134}{Non-breakable space, fixed}
+\entry{Unbreakable space, fixed}{134}{Unbreakable space, fixed}
+\entry{Hyphenation, preventing}{134}{Hyphenation, preventing}
+\entry{Keyword expansion, preventing}{134}{Keyword expansion, preventing}
+\entry{Version control keywords, preventing expansion of}{134}{Version control 
keywords, preventing expansion of}
+\entry{$Id expansion, preventing}{134}{$Id expansion, preventing}
+\entry{Tied space}{134}{Tied space}
+\entry{Non-breakable space, variable}{134}{Non-breakable space, variable}
+\entry{Unbreakable space, variable}{134}{Unbreakable space, variable}
+\entry{Space, inserting vertical}{134}{Space, inserting vertical}
+\entry{Blank lines}{134}{Blank lines}
+\entry{Line spacing}{134}{Line spacing}
+\entry{Page breaks, forcing}{134}{Page breaks, forcing}
+\entry{Group (hold text together vertically)}{135}{Group (hold text together 
vertically)}
+\entry{Holding text together vertically}{135}{Holding text together vertically}
+\entry{Vertically holding text together}{135}{Vertically holding text together}
+\entry{Need space at page bottom}{135}{Need space at page bottom}
+\entry{Mils, argument to @need}{135}{Mils, argument to \code address@hidden
+\entry{Orphans, preventing}{135}{Orphans, preventing}
+\entry{Definition commands}{136}{Definition commands}
+\entry{Definition template}{136}{Definition template}
+\entry{Template for a definition}{136}{Template for a definition}
+\entry{Continuation lines in definition commands}{137}{Continuation lines in 
definition commands}
+\entry{Definition command headings, continuing}{137}{Definition command 
headings, continuing}
+\entry{@ as continuation in definition commands}{137}{\samp address@hidden as 
continuation in definition commands}
+\entry{Whitespace, collapsed around continuations}{137}{Whitespace, collapsed 
around continuations}
+\entry{Collapsing whitespace around continuations}{137}{Collapsing whitespace 
around continuations}
+\entry{Optional and repeated arguments}{138}{Optional and repeated arguments}
+\entry{Repeated and optional arguments}{138}{Repeated and optional arguments}
+\entry{Arguments, repeated and optional}{138}{Arguments, repeated and optional}
+\entry{Syntax, optional & repeated arguments}{138}{Syntax, optional & repeated 
arguments}
+\entry{Meta-syntactic chars for arguments}{138}{Meta-syntactic chars for 
arguments}
+\entry{Two `First' Lines for @deffn}{138}{Two `First' Lines for \code 
address@hidden
+\entry{Grouping two definitions together}{138}{Grouping two definitions 
together}
+\entry{Definitions grouped together}{138}{Definitions grouped together}
+\entry{User options, marking}{141}{User options, marking}
+\entry{Typed functions}{141}{Typed functions}
+\entry{Functions, in typed languages}{141}{Functions, in typed languages}
+\entry{Return type, own line for}{142}{Return type, own line for}
+\entry{Typed variables}{142}{Typed variables}
+\entry{Variables, in typed languages}{142}{Variables, in typed languages}
+\entry{enable}{143}{\code {enable}}
+\entry{Object-oriented programming}{144}{Object-oriented programming}
+\entry{Variables, object-oriented}{144}{Variables, object-oriented}
+\entry{border-pattern of Window}{144}{\code {border-pattern} of\ \code 
{Window}}
+\entry{border-pattern of Window}{144}{\code {border-pattern} of\ \code 
{Window}}
+\entry{border-pattern of Window}{145}{\code {border-pattern} of\ \code 
{Window}}
+\entry{border-pattern of Window}{145}{\code {border-pattern} of\ \code 
{Window}}
+\entry{Methods, object-oriented}{145}{Methods, object-oriented}
+\entry{Definition conventions}{146}{Definition conventions}
+\entry{Conventions for writing definitions}{146}{Conventions for writing 
definitions}
+\entry{Function definitions}{146}{Function definitions}
+\entry{Command definitions}{146}{Command definitions}
+\entry{Macro definitions, programming-language}{146}{Macro definitions, 
programming-language}
+\entry{Sample function definition}{146}{Sample function definition}
+\entry{Internationalization}{149}{Internationalization}
+\entry{Language, declaring}{149}{Language, declaring}
+\entry{Locale, declaring}{149}{Locale, declaring}
+\entry{Document language, declaring}{149}{Document language, declaring}
+\entry{Document strings, translation of}{149}{Document strings, translation of}
+\entry{txi-cc.tex}{149}{\file {txi-\var {cc}.tex}}
+\entry{Hyphenation patterns, language-dependent}{149}{Hyphenation patterns, 
language-dependent}
+\entry{ISO 639-2 language codes}{149}{ISO 639-2 language codes}
+\entry{ISO 3166 country codes}{149}{ISO 3166 country codes}
+\entry{Language codes}{149}{Language codes}
+\entry{Country codes}{149}{Country codes}
+\entry{Encoding, declaring}{150}{Encoding, declaring}
+\entry{Input encoding, declaring}{150}{Input encoding, declaring}
+\entry{Character set, declaring}{150}{Character set, declaring}
+\entry{Document input encoding}{150}{Document input encoding}
+\entry{Local Variables section, for encoding}{150}{Local Variables section, 
for encoding}
+\entry{Info output, and encoding}{150}{Info output, and encoding}
+\entry{HTML output, and encodings}{150}{HTML output, and encodings}
+\entry{http-equiv, and charset specification}{150}{\code {http-equiv}, and 
charset specification}
+\entry{<meta> HTML tag, and charset specification}{150}{\code {<meta>} HTML 
tag, and charset specification}
+\entry{Computer Modern fonts}{150}{Computer Modern fonts}
+\entry{Conditionally visible text}{152}{Conditionally visible text}
+\entry{Text, conditionally visible}{152}{Text, conditionally visible}
+\entry{Visibility of conditional text}{152}{Visibility of conditional text}
+\entry{If text conditionally visible}{152}{If text conditionally visible}
+\entry{Raw formatter commands}{154}{Raw formatter commands}
+\entry{TeX{} commands, using ordinary}{154}{\TeX {} commands, using ordinary}
+\entry{Ordinary TeX{} commands, using}{154}{Ordinary \TeX {} commands, using}
+\entry{Commands using raw TeX{}}{154}{Commands using raw \TeX {}}
+\entry{Plain TeX{}}{154}{Plain \TeX {}}
+\entry{Category codes, of plain TeX{}}{154}{Category codes, of plain \TeX {}}
+\entry{Equation, displayed, in plain TeX{}}{154}{Equation, displayed, in plain 
\TeX {}}
+\entry{Displayed equation, in plain TeX{}}{154}{Displayed equation, in plain 
\TeX {}}
+\entry{HTML, including raw}{154}{HTML, including raw}
+\entry{XML, including raw}{154}{XML, including raw}
+\entry{Docbook, including raw}{155}{Docbook, including raw}
+\entry{Inline conditionals}{155}{Inline conditionals}
+\entry{Conditional commands, inline}{155}{Conditional commands, inline}
+\entry{Brace-delimited conditional text}{155}{Brace-delimited conditional text}
+\entry{Newlines, avoiding in conditionals}{155}{Newlines, avoiding in 
conditionals}
+\entry{Whitespace, controlling in conditionals}{155}{Whitespace, controlling 
in conditionals}
+\entry{Shrubbery}{158}{Shrubbery}
+\entry{Flag conditionals, brace-delimited}{158}{Flag conditionals, 
brace-delimited}
+\entry{Brace-delimited flag conditionals}{158}{Brace-delimited flag 
conditionals}
+\entry{Testing for Texinfo commands}{160}{Testing for Texinfo commands}
+\entry{Checking for Texinfo commands}{160}{Checking for Texinfo commands}
+\entry{Texinfo commands, testing for}{160}{Texinfo commands, testing for}
+\entry{Commands, testing for Texinfo}{160}{Commands, testing for Texinfo}
+\entry{Versions of Texinfo, adapting to}{160}{Versions of Texinfo, adapting to}
+\entry{Features of Texinfo, adapting to}{160}{Features of Texinfo, adapting to}
+\entry{NEWS file for Texinfo}{160}{\code {\file {NEWS} file for Texinfo}}
+\entry{Conditionals, nested}{160}{Conditionals, nested}
+\entry{Nesting conditionals}{160}{Nesting conditionals}
+\entry{Macros}{162}{Macros}
+\entry{Defining new Texinfo commands}{162}{Defining new Texinfo commands}
+\entry{New Texinfo commands, defining}{162}{New Texinfo commands, defining}
+\entry{Texinfo commands, defining new}{162}{Texinfo commands, defining new}
+\entry{User-defined Texinfo commands}{162}{User-defined Texinfo commands}
+\entry{Defining macros}{162}{Defining macros}
+\entry{Macro definitions, Texinfo}{162}{Macro definitions, Texinfo}
+\entry{Macro names, valid characters in}{162}{Macro names, valid characters in}
+\entry{Names of macros, valid characters of}{162}{Names of macros, valid 
characters of}
+\entry{Body of a macro}{162}{Body of a macro}
+\entry{Parameters to macros}{162}{Parameters to macros}
+\entry{Backslash in macros}{162}{Backslash in macros}
+\entry{Spaces in macros}{162}{Spaces in macros}
+\entry{Whitespace in macros}{162}{Whitespace in macros}
+\entry{Recursive macro invocations}{163}{Recursive macro invocations}
+\entry{Macros, undefining}{163}{Macros, undefining}
+\entry{Undefining macros}{163}{Undefining macros}
+\entry{Invoking macros}{163}{Invoking macros}
+\entry{Expanding macros}{163}{Expanding macros}
+\entry{Running macros}{163}{Running macros}
+\entry{Macro invocation}{163}{Macro invocation}
+\entry{Backslash, and macros}{163}{Backslash, and macros}
+\entry{Comma, in macro arguments}{163}{Comma, in macro arguments}
+\entry{Automatic quoting of commas for some macros}{164}{Automatic quoting of 
commas for some macros}
+\entry{Quoting, automatic for some macros}{164}{Quoting, automatic for some 
macros}
+\entry{Braces, in macro arguments}{164}{Braces, in macro arguments}
+\entry{Backslash, in macro arguments}{164}{Backslash, in macro arguments}
+\entry{Macro details}{165}{Macro details}
+\entry{Details of macro usage}{165}{Details of macro usage}
+\entry{Caveats for macro usage}{165}{Caveats for macro usage}
+\entry{Macro expansion, contexts for}{165}{Macro expansion, contexts for}
+\entry{Expansion of macros, contexts for}{165}{Expansion of macros, contexts 
for}
+\entry{Aliases, command}{168}{Aliases, command}
+\entry{Command aliases}{168}{Command aliases}
+\entry{Highlighting, customized}{168}{Highlighting, customized}
+\entry{Customized highlighting}{168}{Customized highlighting}
+\entry{External macro processors}{169}{External macro processors}
+\entry{Macro processors, external}{169}{Macro processors, external}
+\entry{Line numbers, in error messages}{169}{Line numbers, in error messages}
+\entry{Error messages, line numbers in}{169}{Error messages, line numbers in}
+\entry{#line directive}{169}{\samp {#line} directive}
+\entry{CPP_LINE_DIRECTIVES}{170}{\code {CPP_LINE_DIRECTIVES}}
+\entry{TeX{} and #line directives}{170}{\TeX {} and \samp {#line} directives}
+\entry{#line directives, not processing with TeX{}}{170}{\samp {#line} 
directives, not processing with \TeX {}}
+\entry{#line syntax details}{170}{\samp {#line} syntax details}
+\entry{Syntax details, #line}{170}{Syntax details, \samp {#line}}
+\entry{Regular expression, for #line}{170}{Regular expression, for \samp 
{#line}}
+\entry{Include files}{172}{Include files}
+\entry{Include files requirements}{173}{Include files requirements}
+\entry{Requirements for include files}{173}{Requirements for include files}
+\entry{Sample @include file}{173}{Sample \code address@hidden file}
+\entry{Include file sample}{173}{Include file sample}
address@hidden file sample}{173}{\code address@hidden file sample}
+\entry{Format and print hardcopy}{175}{Format and print hardcopy}
+\entry{Printing hardcopy}{175}{Printing hardcopy}
+\entry{Hardcopy, printing it}{175}{Hardcopy, printing it}
+\entry{Making a printed manual}{175}{Making a printed manual}
+\entry{Sorting indices}{175}{Sorting indices}
+\entry{Indices, sorting}{175}{Indices, sorting}
+\entry{TeX{} index sorting}{175}{\TeX {} index sorting}
+\entry{Shell formatting with tex and texindex}{175}{Shell formatting with 
\code {tex} and \code {texindex}}
+\entry{Formatting with tex and texindex}{175}{Formatting with \code {tex} and 
\code {texindex}}
+\entry{DVI file}{175}{DVI file}
+\entry{texindex}{175}{\code {texindex}}
+\entry{Names of index files}{175}{Names of index files}
+\entry{Index file names}{175}{Index file names}
+\entry{Wildcards}{175}{Wildcards}
+\entry{Globbing}{175}{Globbing}
+\entry{texi2dvi}{176}{\code {texi2dvi}}
+\entry{Auxiliary files, avoiding}{176}{Auxiliary files, avoiding}
+\entry{Pointer validation, suppressing}{176}{Pointer validation, suppressing}
+\entry{Chapters, formatting one at a time}{176}{Chapters, formatting one at a 
time}
+\entry{texi2dvi (shell script)}{176}{\code {texi2dvi \r {(shell script)}}}
+\entry{--command, for texi2dvi}{177}{\code {--command\r {, for \command 
{texi2dvi}}}}
+\entry{--pdf, for texi2dvi}{177}{\code {--pdf\r {, for \command {texi2dvi}}}}
+\entry{pdftexi2dvi}{177}{\code {pdftexi2dvi}}
+\entry{--dvipdf, for texi2dvi}{177}{\code {--dvipdf\r {, for \command 
{texi2dvi}}}}
+\entry{dvipdfmx}{177}{\code {dvipdfmx}}
+\entry{--ps, for texi2dvi}{177}{\code {--ps\r {, for \command {texi2dvi}}}}
+\entry{dvips}{177}{\code {dvips}}
+\entry{LaTeX{}, processing with texi2dvi}{177}{\LaTeX {}, processing with 
\command {texi2dvi}}
+\entry{--language, for texi2dvi}{177}{\code {--language\r {, for \command 
{texi2dvi}}}}
+\entry{--translate-file, for texi2dvi}{177}{\code {--translate-file\r {, for 
\command {texi2dvi}}}}
+\entry{--recode, for texi2dvi}{177}{\code {--recode\r {, for \command 
{texi2dvi}}}}
+\entry{--recode-from, for texi2dvi}{177}{\code {--recode-from\r {, for 
\command {texi2dvi}}}}
+\entry{lpr (DVI print command)}{178}{\code {lpr \r {(DVI print command)}}}
+\entry{Shell printing, on MS-DOS/MS-Windows}{178}{Shell printing, on 
MS-DOS/MS-Windows}
+\entry{Printing DVI files, on MS-DOS/MS-Windows}{178}{Printing DVI files, on 
MS-DOS/MS-Windows}
+\entry{lpr-d, replacements on MS-DOS/MS-Windows}{178}{\code {lpr\r {-d, 
replacements on MS-DOS/MS-Windows}}}
+\entry{Print, format from Emacs shell}{179}{Print, format from Emacs shell}
+\entry{Format, print from Emacs shell}{179}{Format, print from Emacs shell}
+\entry{Shell, format, print from}{179}{Shell, format, print from}
+\entry{Emacs shell, format, print from}{179}{Emacs shell, format, print from}
+\entry{GNU Emacs shell, format, print from}{179}{GNU Emacs shell, format, 
print from}
+\entry{Region printing in Texinfo mode}{179}{Region printing in Texinfo mode}
+\entry{Format and print in Texinfo mode}{179}{Format and print in Texinfo mode}
+\entry{Print and format in Texinfo mode}{179}{Print and format in Texinfo mode}
+\entry{Customize Emacs package (Development/Docs/Texinfo)}{180}{Customize 
Emacs package (\t {Development/Docs/Texinfo})}
+\entry{Local variables}{180}{Local variables}
+\entry{Compile command for formatting}{180}{Compile command for formatting}
+\entry{Format with the compile command}{180}{Format with the compile command}
+\entry{Requirements for formatting}{181}{Requirements for formatting}
+\entry{Minimal requirements for formatting}{181}{Minimal requirements for 
formatting}
+\entry{Formatting requirements}{181}{Formatting requirements}
+\entry{Preparing for TeX{}}{181}{Preparing for \TeX {}}
+\entry{TeX{} input initialization}{181}{\TeX {} input initialization}
+\entry{.profile initialization file}{181}{\b {.profile} initialization file}
+\entry{.cshrc initialization file}{181}{\b {.cshrc} initialization file}
+\entry{Initialization file for TeX{} input}{181}{Initialization file for \TeX 
{} input}
+\entry{texinfo.tex, installing}{181}{\code {texinfo.tex\r {, installing}}}
+\entry{epsf.tex, installing}{182}{\code {epsf.tex\r {, installing}}}
+\entry{European Computer Modern fonts, installing}{182}{European Computer 
Modern fonts, installing}
+\entry{EC fonts, installing}{182}{EC fonts, installing}
+\entry{CM-Super fonts, installing}{182}{CM-Super fonts, installing}
+\entry{feymr10, installing}{182}{\code {feymr10\r {, installing}}}
+\entry{Euro font, installing}{182}{Euro font, installing}
+\entry{texinfo.cnf installation}{182}{\code {texinfo.cnf \r {installation}}}
+\entry{Customizing of TeX{} for Texinfo}{182}{Customizing of \TeX {} for 
Texinfo}
+\entry{Site-wide Texinfo configuration file}{182}{Site-wide Texinfo 
configuration file}
+\entry{Environment variable TEXINPUTS}{182}{Environment variable \code 
{TEXINPUTS}}
+\entry{TEXINPUTS}{182}{\code {TEXINPUTS}}
+\entry{Dumping a .fmt file}{182}{Dumping a .fmt file}
+\entry{Format file, dumping}{182}{Format file, dumping}
+\entry{Overfull hboxes}{183}{Overfull \samp {hboxes}}
+\entry{hbox, overfull}{183}{\samp {hbox}, overfull}
+\entry{Final output}{183}{Final output}
+\entry{Black rectangle in hardcopy}{183}{Black rectangle in hardcopy}
+\entry{Rectangle, black in hardcopy}{183}{Rectangle, black in hardcopy}
+\entry{Box, ugly black in hardcopy}{183}{Box, ugly black in hardcopy}
+\entry{Ugly black rectangles in hardcopy}{183}{Ugly black rectangles in 
hardcopy}
+\entry{Small book size}{183}{Small book size}
+\entry{Book, printing small}{183}{Book, printing small}
+\entry{Page sizes for books}{183}{Page sizes for books}
+\entry{Size of printed book}{183}{Size of printed book}
+\entry{A4 paper, printing on}{184}{A4 paper, printing on}
+\entry{A5 paper, printing on}{184}{A5 paper, printing on}
+\entry{Paper size, A4}{184}{Paper size, A4}
+\entry{European A4 paper}{184}{European A4 paper}
+\entry{Custom page sizes}{184}{Custom page sizes}
+\entry{Page sizes, customized}{184}{Page sizes, customized}
+\entry{Text width and height}{184}{Text width and height}
+\entry{Width of text area}{184}{Width of text area}
+\entry{Height of text area}{184}{Height of text area}
+\entry{Depth of text area}{184}{Depth of text area}
+\entry{B5 paper, printing on}{184}{B5 paper, printing on}
+\entry{Legal paper, printing on}{184}{Legal paper, printing on}
+\entry{Margins on page, not controllable}{184}{Margins on page, not 
controllable}
+\entry{Cropmarks for printing}{185}{Cropmarks for printing}
+\entry{Printing cropmarks}{185}{Printing cropmarks}
+\entry{Magnified printing}{185}{Magnified printing}
+\entry{Larger or smaller pages}{185}{Larger or smaller pages}
+\entry{PDF output}{185}{PDF output}
+\entry{pdftex}{185}{\code {pdftex}}
+\entry{Obtaining TeX{}}{186}{Obtaining \TeX {}}
+\entry{TeX{}, how to obtain}{186}{\TeX {}, how to obtain}
+\entry{texi2any, as reference implementation}{187}{\command {texi2any}, as 
reference implementation}
+\entry{Reference implementation}{187}{Reference implementation}
+\entry{Implementation, texi2any as reference}{187}{Implementation, \command 
{texi2any} as reference}
+\entry{Tree representation of documents}{187}{Tree representation of documents}
+\entry{Syntax tree representation of documents}{187}{Syntax tree 
representation of documents}
+\entry{Abstract syntax tree representation of documents}{187}{Abstract syntax 
tree representation of documents}
+\entry{Texinfo language tests}{187}{Texinfo language tests}
+\entry{Tests, of Texinfo language}{187}{Tests, of Texinfo language}
+\entry{Examples of using texi2any}{187}{Examples of using \command {texi2any}}
+\entry{Future of Texinfo implementations}{187}{Future of Texinfo 
implementations}
+\entry{makeinfo}{188}{\code {makeinfo}}
+\entry{texi2any}{188}{\code {texi2any}}
+\entry{makeinfo options}{188}{\code {makeinfo} options}
+\entry{Options for makeinfo}{188}{Options for \code {makeinfo}}
+\entry{texi2any options}{188}{\code {texi2any} options}
+\entry{Options for texi2any}{188}{Options for \code {texi2any}}
+\entry{--commands-in-node-names}{188}{\code {--commands-in-node-names}}
+\entry{--conf-dir=path}{188}{\code {--conf-dir=\var {path}}}
+\entry{--css-include}{188}{\code {--css-include}}
+\entry{--css-ref}{188}{\code {--css-ref}}
+\entry{-D var}{188}{\code {-D \var {var}}}
+\entry{--disable-encoding}{189}{\code {--disable-encoding}}
+\entry{--enable-encoding}{189}{\code {--enable-encoding}}
+\entry{--docbook}{189}{\code {--docbook}}
+\entry{--document-language}{189}{\code {--document-language}}
+\entry{--dvi}{189}{\code {--dvi}}
+\entry{--dvipdf}{189}{\code {--dvipdf}}
+\entry{--error-limit=limit}{189}{\code {--error-limit=\var {limit}}}
+\entry{-e limit}{189}{\code {-e \var {limit}}}
+\entry{--fill-column=width}{189}{\code {--fill-column=\var {width}}}
+\entry{-f width}{189}{\code {-f \var {width}}}
+\entry{--footnote-style=style}{189}{\code {--footnote-style=\var {style}}}
+\entry{-s style}{189}{\code {-s \var {style}}}
+\entry{--force}{189}{\code {--force}}
+\entry{-F}{189}{\code {-F}}
+\entry{--help, for texi2any}{189}{\code {--help\r {, for \command {texi2any}}}}
+\entry{-h}{189}{\code {-h}}
+\entry{--html}{189}{\code {--html}}
+\entry{-I path}{190}{\code {-I \var {path}}}
+\entry{--ifdocbook}{190}{\code {--ifdocbook}}
+\entry{--ifhtml}{190}{\code {--ifhtml}}
+\entry{--ifinfo}{190}{\code {--ifinfo}}
+\entry{--ifplaintext}{190}{\code {--ifplaintext}}
+\entry{--iftex}{190}{\code {--iftex}}
+\entry{--ifxml}{190}{\code {--ifxml}}
+\entry{--info}{190}{\code {--info}}
+\entry{--init-file=file}{190}{\code {--init-file=\var {file}}}
+\entry{--internal-links=file}{190}{\code {--internal-links=\var {file}}}
+\entry{Internal links, of HTML}{190}{Internal links, of HTML}
+\entry{--macro-expand=file}{190}{\code {--macro-expand=\var {file}}}
+\entry{-E file}{190}{\code {-E \var {file}}}
+\entry{--no-headers}{190}{\code {--no-headers}}
+\entry{Node separators, omitting with --no-headers}{190}{Node separators, 
omitting with \option {--no-headers}}
+\entry{Generating plain text files with --no-headers}{190}{Generating plain 
text files with \option {--no-headers}}
+\entry{Menus, omitting with --no-headers}{190}{Menus, omitting with \option 
{--no-headers}}
+\entry{Navigation links, omitting}{190}{Navigation links, omitting}
+\entry{--no-ifdocbook}{191}{\code {--no-ifdocbook}}
+\entry{--no-ifhtml}{191}{\code {--no-ifhtml}}
+\entry{--no-ifinfo}{191}{\code {--no-ifinfo}}
+\entry{--no-ifplaintext}{191}{\code {--no-ifplaintext}}
+\entry{--no-iftex}{191}{\code {--no-iftex}}
+\entry{--no-ifxml}{191}{\code {--no-ifxml}}
+\entry{--no-node-files}{191}{\code {--no-node-files}}
+\entry{--node-files}{191}{\code {--node-files}}
+\entry{--no-number-footnotes}{191}{\code {--no-number-footnotes}}
+\entry{--no-number-sections}{191}{\code {--no-number-sections}}
+\entry{--number-sections}{191}{\code {--number-sections}}
+\entry{--no-pointer-validate}{191}{\code {--no-pointer-validate}}
+\entry{--no-validate}{191}{\code {--no-validate}}
+\entry{Pointer validation, suppressing from command line}{191}{Pointer 
validation, suppressing from command line}
+\entry{--no-warn}{191}{\code {--no-warn}}
+\entry{--output=file}{192}{\code {--output=\var {file}}}
+\entry{-o file}{192}{\code {-o \var {file}}}
+\entry{--outputindent}{192}{\code {--outputindent}}
+\entry{-P path}{192}{\code {-P \var {path}}}
+\entry{--paragraph-indent=indent}{192}{\code {--paragraph-indent=\var 
{indent}}}
+\entry{-p indent}{192}{\code {-p \var {indent}}}
+\entry{--pdf}{192}{\code {--pdf}}
+\entry{--plaintext}{192}{\code {--plaintext}}
+\entry{Plain text output with --plaintext}{192}{Plain text output with \option 
{--plaintext}}
+\entry{ASCII text output with --plaintext}{192}{ASCII text output with \option 
{--plaintext}}
+\entry{Generating plain text files with --plaintext}{192}{Generating plain 
text files with \option {--plaintext}}
+\entry{Node separators, omitting with --plaintext}{192}{Node separators, 
omitting with \option {--plaintext}}
+\entry{Menus, omitting with --plaintext}{192}{Menus, omitting with \option 
{--plaintext}}
+\entry{INSTALL file, generating}{192}{\file {INSTALL} file, generating}
+\entry{--ps}{192}{\code {--ps}}
+\entry{--set-customization-variable var=value}{193}{\code 
{--set-customization-variable \var {var}=\var {value}}}
+\entry{-c var=value}{193}{\code {-c \var {var}=\var {value}}}
+\entry{--split=how}{193}{\code {--split=\var {how}}}
+\entry{--no-split}{193}{\code {--no-split}}
+\entry{Splitting of output files}{193}{Splitting of output files}
+\entry{Output file splitting}{193}{Output file splitting}
+\entry{--split-size=num}{193}{\code {--split-size=\var {num}}}
+\entry{--transliterate-file-names}{193}{\code {--transliterate-file-names}}
+\entry{--verbose}{193}{\code {--verbose}}
+\entry{--version, for texi2any}{193}{\code {--version\r {, for \command 
{texi2any}}}}
+\entry{-V}{193}{\code {-V}}
+\entry{--Xopt str}{193}{\code {--Xopt \var {str}}}
+\entry{--xml}{193}{\code {--xml}}
+\entry{TEXINFO_OUTPUT_FORMAT}{193}{\code {TEXINFO_OUTPUT_FORMAT}}
+\entry{Environment variable TEXINFO_OUTPUT_FORMAT}{193}{Environment variable 
\code {TEXINFO_OUTPUT_FORMAT}}
+\entry{Printed output, through texi2any}{194}{Printed output, through \command 
{texi2any}}
+\entry{Output, printed through texi2any}{194}{Output, printed through \command 
{texi2any}}
+\entry{Pointer validation with makeinfo}{194}{Pointer validation with \code 
{makeinfo}}
+\entry{Validation of pointers}{194}{Validation of pointers}
+\entry{Customization variables for @-commands}{195}{Customization variables 
for @-commands}
address@hidden, customization variables address@hidden, customization variables 
for}
+\entry{Customization variables for options}{196}{Customization variables for 
options}
+\entry{Options, customization variables for}{196}{Options, customization 
variables for}
+\entry{ENABLE_ENCODING}{196}{\code {ENABLE_ENCODING}}
+\entry{documentlanguage}{196}{\code {documentlanguage}}
+\entry{ERROR_LIMIT}{196}{\code {ERROR_LIMIT}}
+\entry{FILLCOLUMN}{196}{\code {FILLCOLUMN}}
+\entry{footnotestyle}{196}{\code {footnotestyle}}
+\entry{FORCE}{196}{\code {FORCE}}
+\entry{INTERNAL_LINKS}{196}{\code {INTERNAL_LINKS}}
+\entry{MACRO_EXPAND}{196}{\code {MACRO_EXPAND}}
+\entry{HEADERS}{196}{\code {HEADERS}}
+\entry{SHOW_MENU}{196}{\code {SHOW_MENU}}
+\entry{NO_WARN}{196}{\code {NO_WARN}}
+\entry{novalidate}{196}{\code {novalidate}}
+\entry{NUMBER_FOOTNOTES}{196}{\code {NUMBER_FOOTNOTES}}
+\entry{NUMBER_SECTIONS}{196}{\code {NUMBER_SECTIONS}}
+\entry{NODE_FILES}{196}{\code {NODE_FILES}}
+\entry{OUT}{196}{\code {OUT}}
+\entry{OUTFILE}{196}{\code {OUTFILE}}
+\entry{SUBDIR}{196}{\code {SUBDIR}}
+\entry{paragraphindent}{196}{\code {paragraphindent}}
+\entry{SILENT}{196}{\code {SILENT}}
+\entry{SPLIT}{196}{\code {SPLIT}}
+\entry{SPLIT_SIZE}{196}{\code {SPLIT_SIZE}}
+\entry{TRANSLITERATE_FILE_NAMES}{196}{\code {TRANSLITERATE_FILE_NAMES}}
+\entry{VERBOSE}{196}{\code {VERBOSE}}
+\entry{TEXINFO_OUTPUT_FORMAT}{196}{\code {TEXINFO_OUTPUT_FORMAT}}
+\entry{tree representation, for debugging}{197}{tree representation, for 
debugging}
+\entry{debugging document, with tree representation}{197}{debugging document, 
with tree representation}
+\entry{raw text output}{197}{raw text output}
+\entry{SXML output}{197}{SXML output}
+\entry{S-expressions, output format}{197}{S-expressions, output format}
+\entry{spell checking}{197}{spell checking}
+\entry{word counting}{197}{word counting}
+\entry{detexinfo}{197}{\code {detexinfo}}
+\entry{stripping Texinfo commands}{197}{stripping Texinfo commands}
+\entry{AVOID_MENU_REDUNDANCY}{197}{\code {AVOID_MENU_REDUNDANCY}}
+\entry{AFTER_BODY_OPEN}{198}{\code {AFTER_BODY_OPEN}}
+\entry{AFTER_ABOUT}{198}{\code {AFTER_ABOUT}}
+\entry{AFTER_OVERVIEW}{198}{\code {AFTER_OVERVIEW}}
+\entry{AFTER_TOC_LINES}{198}{\code {AFTER_TOC_LINES}}
+\entry{BASEFILENAME_LENGTH}{198}{\code {BASEFILENAME_LENGTH}}
+\entry{BEFORE_OVERVIEW}{198}{\code {BEFORE_OVERVIEW}}
+\entry{BEFORE_TOC_LINES}{198}{\code {BEFORE_TOC_LINES}}
+\entry{BIG_RULE}{198}{\code {BIG_RULE}}
+\entry{BODYTEXT}{198}{\code {BODYTEXT}}
+\entry{<body> text, customizing}{198}{\code {<body>} text, customizing}
+\entry{CASE_INSENSITIVE_FILENAMES}{198}{\code {CASE_INSENSITIVE_FILENAMES}}
+\entry{CHAPTER_HEADER_LEVEL}{198}{\code {CHAPTER_HEADER_LEVEL}}
+\entry{CHECK_HTMLXREF}{198}{\code {CHECK_HTMLXREF}}
+\entry{COMPLEX_FORMAT_IN_TABLE}{199}{\code {COMPLEX_FORMAT_IN_TABLE}}
+\entry{CSS_LINES}{199}{\code {CSS_LINES}}
+\entry{DATE_IN_HEADER}{199}{\code {DATE_IN_HEADER}}
+\entry{DEF_TABLE}{199}{\code {DEF_TABLE}}
+\entry{DEFAULT_RULE}{199}{\code {DEFAULT_RULE}}
+\entry{DO_ABOUT}{199}{\code {DO_ABOUT}}
+\entry{EXTERNAL_DIR}{199}{\code {EXTERNAL_DIR}}
+\entry{EXTRA_HEAD}{199}{\code {EXTRA_HEAD}}
+\entry{FOOTNOTE_END_HEADER_LEVEL}{199}{\code {FOOTNOTE_END_HEADER_LEVEL}}
+\entry{FOOTNOTE_SEPARATE_HEADER_LEVEL}{199}{\code 
{FOOTNOTE_SEPARATE_HEADER_LEVEL}}
+\entry{FRAMES}{199}{\code {FRAMES}}
+\entry{FRAMESET_DOCTYPE}{199}{\code {FRAMESET_DOCTYPE}}
+\entry{HEADER_IN_TABLE}{199}{\code {HEADER_IN_TABLE}}
+\entry{ICONS}{199}{\code {ICONS}}
+\entry{IMAGE_LINK_PREFIX}{199}{\code {IMAGE_LINK_PREFIX}}
+\entry{INLINE_CONTENTS}{200}{\code {INLINE_CONTENTS}}
+\entry{INLINE_CSS_STYLE}{200}{\code {INLINE_CSS_STYLE}}
+\entry{KEEP_TOP_EXTERNAL_REF}{200}{\code {KEEP_TOP_EXTERNAL_REF}}
+\entry{L2H}{200}{\code {L2H}}
+\entry{L2H_CLEAN}{200}{\code {L2H_CLEAN}}
+\entry{L2H_FILE}{200}{\code {L2H_FILE}}
+\entry{L2H_HTML_VERSION}{200}{\code {L2H_HTML_VERSION}}
+\entry{L2H_L2H}{200}{\code {L2H_L2H}}
+\entry{L2H_SKIP}{200}{\code {L2H_SKIP}}
+\entry{L2H_TMP}{200}{\code {L2H_TMP}}
+\entry{MAX_HEADER_LEVEL}{200}{\code {MAX_HEADER_LEVEL}}
+\entry{MENU_SYMBOL}{200}{\code {MENU_SYMBOL}}
+\entry{MONOLITHIC}{200}{\code {MONOLITHIC}}
+\entry{NO_CSS}{200}{\code {NO_CSS}}
+\entry{NODE_FILE_EXTENSION}{201}{\code {NODE_FILE_EXTENSION}}
+\entry{PRE_ABOUT}{201}{\code {PRE_ABOUT}}
+\entry{PRE_BODY_CLOSE}{201}{\code {PRE_BODY_CLOSE}}
+\entry{PROGRAM_NAME_IN_FOOTER}{201}{\code {PROGRAM_NAME_IN_FOOTER}}
+\entry{SHORTEXTN}{201}{\code {SHORTEXTN}}
+\entry{SHOW_TITLE}{201}{\code {SHOW_TITLE}}
+\entry{SIMPLE_MENU}{201}{\code {SIMPLE_MENU}}
+\entry{TOC_LINKS}{201}{\code {TOC_LINKS}}
+\entry{TOP_FILE}{201}{\code {TOP_FILE}}
+\entry{TOP_NODE_FILE}{201}{\code {TOP_NODE_FILE}}
+\entry{TOP_NODE_FILE_TARGET}{201}{\code {TOP_NODE_FILE_TARGET}}
+\entry{TOP_NODE_UP_URL}{201}{\code {TOP_NODE_UP_URL}}
+\entry{USE_ACCESSKEY}{201}{\code {USE_ACCESSKEY}}
+\entry{accesskey, customization variable for}{201}{\code {accesskey}, 
customization variable for}
+\entry{USE_ISO}{201}{\code {USE_ISO}}
+\entry{USE_LINKS}{202}{\code {USE_LINKS}}
+\entry{<link> HTML tag, in <head>}{202}{\code {<link>} HTML tag, in \code 
{<head>}}
+\entry{<head> HTML tag, and <link>}{202}{\code {<head>} HTML tag, and \code 
{<link>}}
+\entry{USE_REL_REV}{202}{\code {USE_REL_REV}}
+\entry{VERTICAL_HEAD_NAVIGATION}{202}{\code {VERTICAL_HEAD_NAVIGATION}}
+\entry{WORDS_IN_PAGE}{202}{\code {WORDS_IN_PAGE}}
+\entry{Navigation panel, bottom of page}{202}{Navigation panel, bottom of page}
+\entry{XREF_USE_FLOAT_LABEL}{202}{\code {XREF_USE_FLOAT_LABEL}}
+\entry{XREF_USE_NODE_NAME_ARG}{202}{\code {XREF_USE_NODE_NAME_ARG}}
+\entry{CLOSE_QUOTE_SYMBOL}{202}{\code {CLOSE_QUOTE_SYMBOL}}
+\entry{CPP_LINE_DIRECTIVES}{202}{\code {CPP_LINE_DIRECTIVES}}
+\entry{DEBUG}{202}{\code {DEBUG}}
+\entry{DOCTYPE}{202}{\code {DOCTYPE}}
+\entry{SystemLiteral}{202}{\code {SystemLiteral}}
+\entry{DUMP_TEXI}{202}{\code {DUMP_TEXI}}
+\entry{DUMP_TREE}{203}{\code {DUMP_TREE}}
+\entry{ENABLE_ENCODING_USE_ENTITY}{203}{\code {ENABLE_ENCODING_USE_ENTITY}}
+\entry{EXTERNAL_CROSSREF_SPLIT}{203}{\code {EXTERNAL_CROSSREF_SPLIT}}
+\entry{EXTENSION}{203}{\code {EXTENSION}}
+\entry{FIX_TEXINFO}{203}{\code {FIX_TEXINFO}}
+\entry{IGNORE_BEFORE_SETFILENAME}{203}{\code {IGNORE_BEFORE_SETFILENAME}}
+\entry{IGNORE_SPACE_AFTER_BRACED_COMMAND_NAME}{203}{\code 
{IGNORE_SPACE_AFTER_BRACED_COMMAND_NAME}}
+\entry{INDEX_ENTRY_COLON}{203}{\code {INDEX_ENTRY_COLON}}
+\entry{INFO_SPECIAL_CHARS_WARNING}{203}{\code {INFO_SPECIAL_CHARS_WARNING}}
+\entry{INLINE_INSERTCOPYING}{203}{\code {INLINE_INSERTCOPYING}}
+\entry{INPUT_ENCODING_NAME}{203}{\code {INPUT_ENCODING_NAME}}
+\entry{INPUT_PERL_ENCODING}{204}{\code {INPUT_PERL_ENCODING}}
+\entry{MACRO_BODY_IGNORES_LEADING_SPACE}{204}{\code 
{MACRO_BODY_IGNORES_LEADING_SPACE}}
+\entry{MAX_MACRO_CALL_NESTING}{204}{\code {MAX_MACRO_CALL_NESTING}}
+\entry{MENU_ENTRY_COLON}{204}{\code {MENU_ENTRY_COLON}}
+\entry{NO_USE_SETFILENAME}{204}{\code {NO_USE_SETFILENAME}}
+\entry{NODE_FILENAMES}{204}{\code {NODE_FILENAMES}}
+\entry{NODE_NAME_IN_INDEX}{204}{\code {NODE_NAME_IN_INDEX}}
+\entry{NODE_NAME_IN_MENU}{204}{\code {NODE_NAME_IN_MENU}}
+\entry{OPEN_QUOTE_SYMBOL}{204}{\code {OPEN_QUOTE_SYMBOL}}
+\entry{OUTPUT_ENCODING_NAME}{204}{\code {OUTPUT_ENCODING_NAME}}
+\entry{OVERVIEW_LINK_TO_TOC}{205}{\code {OVERVIEW_LINK_TO_TOC}}
+\entry{PACKAGE}{205}{\code {PACKAGE}}
+\entry{PACKAGE_VERSION}{205}{\code {PACKAGE_VERSION}}
+\entry{PACKAGE_AND_VERSION}{205}{\code {PACKAGE_AND_VERSION}}
+\entry{PACKAGE_URL}{205}{\code {PACKAGE_URL}}
+\entry{PACKAGE_NAME}{205}{\code {PACKAGE_NAME}}
+\entry{PREFIX}{205}{\code {PREFIX}}
+\entry{PROGRAM}{205}{\code {PROGRAM}}
+\entry{RENAMED_NODES_FILE}{205}{\code {RENAMED_NODES_FILE}}
+\entry{RENAMED_NODES_REDIRECTIONS}{205}{\code {RENAMED_NODES_REDIRECTIONS}}
+\entry{SHOW_MENU}{205}{\code {SHOW_MENU}}
+\entry{--no-headers}{205}{\code {--no-headers}}
+\entry{SORT_ELEMENT_COUNT}{205}{\code {SORT_ELEMENT_COUNT}}
+\entry{texi-elements-by-size}{205}{\code {texi-elements-by-size}}
+\entry{Longest nodes, finding}{205}{Longest nodes, finding}
+\entry{Sorting nodes by size}{205}{Sorting nodes by size}
+\entry{SORT_ELEMENT_COUNT_WORDS}{205}{\code {SORT_ELEMENT_COUNT_WORDS}}
+\entry{TEST}{205}{\code {TEST}}
+\entry{TEXI2DVI}{205}{\code {TEXI2DVI}}
+\entry{TEXI2HTML}{206}{\code {TEXI2HTML}}
+\entry{compatibility, with texi2html}{206}{compatibility, with \command 
{texi2html}}
+\entry{TEXINFO_COLUMN_FOR_DESCRIPTION}{206}{\code 
{TEXINFO_COLUMN_FOR_DESCRIPTION}}
+\entry{TEXINFO_DTD_VERSION}{206}{\code {TEXINFO_DTD_VERSION}}
+\entry{TEXTCONTENT_COMMENT}{206}{\code {TEXTCONTENT_COMMENT}}
+\entry{TOP_NODE_UP}{206}{\code {TOP_NODE_UP}}
+\entry{TREE_TRANSFORMATIONS}{206}{\code {TREE_TRANSFORMATIONS}}
+\entry{USE_NODES}{207}{\code {USE_NODES}}
+\entry{USE_NODE_TARGET}{207}{\code {USE_NODE_TARGET}}
+\entry{USE_NUMERIC_ENTITY}{207}{\code {USE_NUMERIC_ENTITY}}
+\entry{USE_UP_NODE_FOR_ELEMENT_UP}{207}{\code {USE_UP_NODE_FOR_ELEMENT_UP}}
+\entry{USE_SETFILENAME_EXTENSION}{207}{\code {USE_SETFILENAME_EXTENSION}}
+\entry{USE_TITLEPAGE_FOR_TITLE}{207}{\code {USE_TITLEPAGE_FOR_TITLE}}
+\entry{USE_UNIDECODE}{207}{\code {USE_UNIDECODE}}
+\entry{Text::Unidecode}{207}{\code {Text::Unidecode}}
+\entry{I18n, of document strings}{207}{I18n, of document strings}
+\entry{Internationalization of document strings}{207}{Internationalization of 
document strings}
+\entry{Document strings, internationalization of}{207}{Document strings, 
internationalization of}
+\entry{Output document strings, internationalization of}{207}{Output document 
strings, internationalization of}
+\entry{Translating strings in output documents}{207}{Translating strings in 
output documents}
+\entry{documentlanguage customization variable}{207}{\code {documentlanguage 
\r {customization variable}}}
+\entry{libintl-perl Gettext implementation}{208}{\code {libintl-perl \r 
{Gettext implementation}}}
+\entry{texinfo_document Gettext domain}{208}{\code {texinfo_document \r 
{Gettext domain}}}
+\entry{Perl format strings for translation}{208}{Perl format strings for 
translation}
+\entry{us-ascii encoding, and translations}{208}{\code {us-ascii} encoding, 
and translations}
+\entry{pod2texi}{209}{\code {pod2texi}}
+\entry{Invoking pod2texi}{209}{Invoking \code {pod2texi}}
+\entry{POD, converting to Texinfo}{209}{POD, converting to Texinfo}
+\entry{Perl POD, converting to Texinfo}{209}{Perl POD, converting to Texinfo}
+\entry{texi2html}{209}{\code {texi2html}}
+\entry{Cons, Lionel}{209}{Cons, Lionel}
+\entry{Options of texi2html}{209}{Options of \command {texi2html}}
+\entry{Command-line options of texi2html}{209}{Command-line options of 
\command {texi2html}}
+\entry{texi2oldapi.texi, for texi2any}{210}{\file {texi2oldapi.texi}, for 
\command {texi2any}}
+\entry{Creating an Info file}{211}{Creating an Info file}
+\entry{Info, creating an online file}{211}{Info, creating an online file}
+\entry{Formatting a file for Info}{211}{Formatting a file for Info}
+\entry{Running makeinfo in Emacs}{211}{Running \code {makeinfo} in Emacs}
+\entry{makeinfo inside Emacs}{211}{\code {makeinfo} inside Emacs}
+\entry{Shell, running makeinfo in}{211}{Shell, running \code {makeinfo} in}
+\entry{Errors, parsing}{211}{Errors, parsing}
+\entry{Parsing errors}{211}{Parsing errors}
+\entry{Batch formatting for Info}{212}{Batch formatting for Info}
+\entry{Info batch formatting}{212}{Info batch formatting}
+\entry{Making a tag table automatically}{213}{Making a tag table automatically}
+\entry{Tag table, making automatically}{213}{Tag table, making automatically}
+\entry{Indirect subfiles}{213}{Indirect subfiles}
+\entry{Installing an Info file}{214}{Installing an Info file}
+\entry{Info file installation}{214}{Info file installation}
+\entry{dir directory for Info installation}{214}{\file {dir} directory for 
Info installation}
+\entry{Adding a new Info file}{215}{Adding a new Info file}
+\entry{Listing a new Info file}{215}{Listing a new Info file}
+\entry{New Info file, listing it in dir file}{215}{New Info file, listing it 
in \file {dir} file}
+\entry{Info file, listing a new}{215}{Info file, listing a new}
+\entry{dir file listing}{215}{\file {dir} file listing}
+\entry{Installing Info in another directory}{215}{Installing Info in another 
directory}
+\entry{Info installed in another directory}{215}{Info installed in another 
directory}
+\entry{Another Info directory}{215}{Another Info directory}
+\entry{dir files and Info directories}{215}{\file {dir} files and Info 
directories}
+\entry{INFOPATH}{215}{\code {INFOPATH}}
+\entry{Environment variable INFOPATH}{215}{Environment variable \code 
{INFOPATH}}
+\entry{autoexec.bat}{216}{\code {autoexec.bat}}
+\entry{Colon, last in INFOPATH}{216}{Colon, last in \env {INFOPATH}}
+\entry{dir file, creating your own}{216}{\file {dir} file, creating your own}
+\entry{Free Software Directory}{217}{Free Software Directory}
+\entry{Dir categories, choosing}{217}{Dir categories, choosing}
+\entry{Categories, choosing}{217}{Categories, choosing}
+\entry{Invoking nodes, including in dir file}{217}{Invoking nodes, including 
in dir file}
+\entry{install-info}{218}{\code {install-info}}
+\entry{dir, created by install-info}{218}{\file {dir}, created by \code 
{install-info}}
+\entry{Compressed dir files, reading}{218}{Compressed dir files, reading}
+\entry{XZ-compressed dir files, reading}{218}{XZ-compressed dir files, reading}
+\entry{Bzipped dir files, reading}{218}{Bzipped dir files, reading}
+\entry{Lzip-compressed dir files, reading}{218}{Lzip-compressed dir files, 
reading}
+\entry{LZMA-compressed dir files, reading}{218}{LZMA-compressed dir files, 
reading}
+\entry{Dir files, compressed}{218}{Dir files, compressed}
+\entry{--add-once, for install-info}{218}{\code {--add-once\r {, for \command 
{install-info}}}}
+\entry{--align=column, for install-info}{218}{\code {--align=\var {column}\r 
{, for \command {install-info}}}}
+\entry{--append-new-sections, for install-info}{218}{\code 
{--append-new-sections\r {, for \command {install-info}}}}
+\entry{--calign=column, for install-info}{218}{\code {--calign=\var {column}\r 
{, for \command {install-info}}}}
+\entry{--debug, for install-info}{218}{\code {--debug\r {, for \command 
{install-info}}}}
+\entry{--delete, for install-info}{218}{\code {--delete\r {, for \command 
{install-info}}}}
+\entry{--description=text, for install-info}{218}{\code {--description=\var 
{text}\r {, for \command {install-info}}}}
+\entry{--dir-file=name, for install-info}{218}{\code {--dir-file=\var {name}\r 
{, for \command {install-info}}}}
+\entry{--dry-run, for install-info}{219}{\code {--dry-run\r {, for \command 
{install-info}}}}
+\entry{--entry=text, for install-info}{219}{\code {--entry=\var {text}\r {, 
for \command {install-info}}}}
+\entry{--help, for texindex}{219}{\code {--help\r {, for \command {texindex}}}}
+\entry{--info-file=file, for install-info}{219}{\code {--info-file=\var 
{file}\r {, for \command {install-info}}}}
+\entry{--info-dir=dir, for install-info}{219}{\code {--info-dir=\var {dir}\r 
{, for \command {install-info}}}}
+\entry{--infodir=dir, for install-info}{219}{\code {--infodir=\var {dir}\r {, 
for \command {install-info}}}}
+\entry{--item=text, for install-info}{219}{\code {--item=\var {text}\r {, for 
\command {install-info}}}}
+\entry{--keep-old, for install-info}{219}{\code {--keep-old\r {, for \command 
{install-info}}}}
+\entry{--max-width=column, for install-info}{219}{\code {--max-width=\var 
{column}\r {, for \command {install-info}}}}
+\entry{--maxwidth=column, for install-info}{219}{\code {--maxwidth=\var 
{column}\r {, for \command {install-info}}}}
+\entry{--menuentry=text, for install-info}{219}{\code {--menuentry=\var 
{text}\r {, for \command {install-info}}}}
+\entry{--name=text, for install-info}{219}{\code {--name=\var {text}\r {, for 
\command {install-info}}}}
+\entry{--no-indent, for install-info}{219}{\code {--no-indent\r {, for 
\command {install-info}}}}
+\entry{--quiet, for install-info}{219}{\code {--quiet\r {, for \command 
{install-info}}}}
+\entry{--silent, for install-info}{219}{\code {--silent\r {, for \command 
{install-info}}}}
+\entry{--remove, for install-info}{220}{\code {--remove\r {, for \command 
{install-info}}}}
+\entry{--remove-exactly, for install-info}{220}{\code {--remove-exactly\r {, 
for \command {install-info}}}}
+\entry{--section=sec, for install-info}{220}{\code {--section=\var {sec}\r {, 
for \command {install-info}}}}
+\entry{--section regex sec, for install-info}{220}{\code {--section \var 
{regex} \var {sec}\r {, for \command {install-info}}}}
+\entry{--regex=regex, for install-info}{220}{\code {--regex=\var {regex}\r {, 
for \command {install-info}}}}
+\entry{--test, for install-info}{220}{\code {--test\r {, for \command 
{install-info}}}}
+\entry{--version, for install-info}{220}{\code {--version\r {, for \command 
{install-info}}}}
+\entry{Version number, for install-info}{220}{Version number, for install-info}
+\entry{Generating HTML}{221}{Generating HTML}
+\entry{Outputting HTML}{221}{Outputting HTML}
+\entry{Navigation bar, in HTML output}{221}{Navigation bar, in HTML output}
+\entry{Footnote styles, in HTML}{221}{Footnote styles, in HTML}
+\entry{HTML output, browser compatibility of}{221}{HTML output, browser 
compatibility of}
+\entry{Split HTML output}{221}{Split HTML output}
+\entry{HTML output, split}{221}{HTML output, split}
+\entry{HTML, and CSS}{222}{HTML, and CSS}
+\entry{CSS, and HTML output}{222}{CSS, and HTML output}
+\entry{Cascading Style Sheets, and HTML output}{222}{Cascading Style Sheets, 
and HTML output}
+\entry{texinfo-bright-colors.css}{222}{\code {texinfo-bright-colors.css}}
+\entry{Visualizing Texinfo CSS}{222}{Visualizing Texinfo CSS}
address@hidden specifications, in CSS address@hidden specifications, in CSS 
files}
+\entry{Comments, in CSS files}{223}{Comments, in CSS files}
+\entry{HTML cross references}{223}{HTML cross references}
+\entry{Cross references, in HTML output}{223}{Cross references, in HTML output}
+\entry{Dumas, Patrice}{223}{Dumas, Patrice}
+\entry{HTML cross reference link basics}{224}{HTML cross reference link basics}
+\entry{BASEFILENAME_LENGTH}{224}{\code {BASEFILENAME_LENGTH}}
+\entry{HTML cross reference node name expansion}{225}{HTML cross reference 
node name expansion}
+\entry{node name expansion, in HTML cross references}{225}{node name 
expansion, in HTML cross references}
+\entry{expansion, of node names in HTML cross references}{225}{expansion, of 
node names in HTML cross references}
+\entry{HTML cross reference command expansion}{226}{HTML cross reference 
command expansion}
+\entry{HTML cross reference 8-bit character expansion}{227}{HTML cross 
reference 8-bit character expansion}
+\entry{8-bit characters, in HTML cross references}{227}{8-bit characters, in 
HTML cross references}
+\entry{Expansion of 8-bit characters in HTML cross references}{227}{Expansion 
of 8-bit characters in HTML cross references}
+\entry{Transliteration of 8-bit characters in HTML cross 
references}{227}{Transliteration of 8-bit characters in HTML cross references}
+\entry{Normalization Form C, Unicode}{227}{Normalization Form C, Unicode}
+\entry{HTML cross reference mismatch}{228}{HTML cross reference mismatch}
+\entry{Mismatched HTML cross reference source and target}{228}{Mismatched HTML 
cross reference source and target}
+\entry{htmlxref.cnf}{228}{\code {htmlxref.cnf}}
+\entry{HTML cross reference configuration}{228}{HTML cross reference 
configuration}
+\entry{Cross reference configuration, for HTML}{228}{Cross reference 
configuration, for HTML}
+\entry{Configuration, for HTML cross-manual references}{228}{Configuration, 
for HTML cross-manual references}
+\entry{monolithic manuals, for HTML cross references}{229}{monolithic manuals, 
for HTML cross references}
+\entry{split manuals, for HTML cross references}{229}{split manuals, for HTML 
cross references}
+\entry{--node-files, and HTML cross references}{229}{\code {--node-files\r {, 
and HTML cross references}}}
+\entry{noderename.cnf}{230}{\code {noderename.cnf}}
+\entry{manual-noderename.cnf}{230}{\code {\var {manual}-noderename.cnf}}
+\entry{HTML cross reference link preservation}{230}{HTML cross reference link 
preservation}
+\entry{Preserving HTML links to old nodes}{230}{Preserving HTML links to old 
nodes}
+\entry{Old nodes, preserving links to}{230}{Old nodes, preserving links to}
+\entry{Renaming nodes, and preserving links}{230}{Renaming nodes, and 
preserving links}
+\entry{Links, preserving to renamed nodes}{230}{Links, preserving to renamed 
nodes}
+\entry{Node renaming, and preserving links}{230}{Node renaming, and preserving 
links}
+\entry{RENAMED_NODES_FILE}{230}{\code {RENAMED_NODES_FILE}}
+\entry{Alphabetical @-command list}{231}{Alphabetical @-command list}
+\entry{List of @-commands}{231}{List of @-commands}
address@hidden address@hidden list}
+\entry{Reference to @-commands}{231}{Reference to @-commands}
address@hidden address@hidden syntax}
+\entry{Syntax, of @-commands}{253}{Syntax, of @-commands}
+\entry{Command syntax}{253}{Command syntax}
+\entry{Braces and argument syntax}{253}{Braces and argument syntax}
+\entry{Contexts, of @-commands}{254}{Contexts, of @-commands}
+\entry{Tips}{255}{Tips}
+\entry{Usage tips}{255}{Usage tips}
+\entry{Hints}{255}{Hints}
+\entry{Sample Texinfo files}{260}{Sample Texinfo files}
+\entry{Sample Texinfo file, no comments}{260}{Sample Texinfo file, no comments}
+\entry{GNU sample texts}{261}{GNU sample texts}
+\entry{Sample texts, GNU}{261}{Sample texts, GNU}
+\entry{Full texts, GNU}{261}{Full texts, GNU}
+\entry{$Id}{261}{$Id}
+\entry{CVS $Id}{261}{CVS $Id}
+\entry{RCS $Id}{261}{RCS $Id}
+\entry{Documentation identification}{261}{Documentation identification}
+\entry{Identification of documentation}{261}{Identification of documentation}
+\entry{automake, and version info}{262}{\code {automake\r {, and version 
info}}}
+\entry{UPDATED Automake variable}{262}{\code {UPDATED \r {Automake variable}}}
+\entry{VERSION Automake variable}{262}{\code {VERSION \r {Automake variable}}}
+\entry{time-stamp.el}{262}{\code {time-stamp.el}}
+\entry{GNU Free Documentation License, including entire}{262}{GNU Free 
Documentation License, including entire}
+\entry{Free Documentation License, including entire}{262}{Free Documentation 
License, including entire}
+\entry{Verbatim copying license}{264}{Verbatim copying license}
+\entry{License for verbatim copying}{264}{License for verbatim copying}
+\entry{All-permissive copying license}{264}{All-permissive copying license}
+\entry{License for all-permissive copying}{264}{License for all-permissive 
copying}
+\entry{Headings}{266}{Headings}
+\entry{Footings}{266}{Footings}
+\entry{Page numbering}{266}{Page numbering}
+\entry{Page headings}{266}{Page headings}
+\entry{Formatting headings and footings}{266}{Formatting headings and footings}
+\entry{Structure, catching mistakes in}{271}{Structure, catching mistakes in}
+\entry{Nodes, catching mistakes}{271}{Nodes, catching mistakes}
+\entry{Catching mistakes}{271}{Catching mistakes}
+\entry{Correcting mistakes}{271}{Correcting mistakes}
+\entry{Mistakes, catching}{271}{Mistakes, catching}
+\entry{Problems, catching}{271}{Problems, catching}
+\entry{Debugging the Texinfo structure}{271}{Debugging the Texinfo structure}
+\entry{Catching errors with Info formatting}{271}{Catching errors with Info 
formatting}
+\entry{Debugging with Info formatting}{271}{Debugging with Info formatting}
+\entry{Catching errors with TeX{} formatting}{272}{Catching errors with \TeX 
{} formatting}
+\entry{Debugging with TeX{} formatting}{272}{Debugging with \TeX {} formatting}
+\entry{Showing the structure of a file}{274}{Showing the structure of a file}
+\entry{Occurrences, listing with @occur}{275}{Occurrences, listing with \code 
address@hidden
+\entry{Nodes, checking for badly referenced}{275}{Nodes, checking for badly 
referenced}
+\entry{Checking for badly referenced nodes}{275}{Checking for badly referenced 
nodes}
+\entry{Looking for badly referenced nodes}{275}{Looking for badly referenced 
nodes}
+\entry{Finding badly referenced nodes}{275}{Finding badly referenced nodes}
+\entry{Badly referenced nodes}{275}{Badly referenced nodes}
+\entry{Using Info-validate}{276}{Using \code {Info-validate}}
+\entry{Info validating a large file}{276}{Info validating a large file}
+\entry{Validating a large file}{276}{Validating a large file}
+\entry{Creating an unsplit file}{276}{Creating an unsplit file}
+\entry{Unsplit file creation}{276}{Unsplit file creation}
+\entry{Making a tag table manually}{277}{Making a tag table manually}
+\entry{Tag table, making manually}{277}{Tag table, making manually}
+\entry{Splitting an Info file manually}{277}{Splitting an Info file manually}
+\entry{Info file, splitting manually}{277}{Info file, splitting manually}
+\entry{Info format specification}{278}{Info format specification}
+\entry{Specification of Info format}{278}{Specification of Info format}
+\entry{Definition of Info format}{278}{Definition of Info format}
+\entry{Nonsplit manuals, Info format of}{278}{Nonsplit manuals, Info format of}
+\entry{Split manuals, Info format of}{278}{Split manuals, Info format of}
+\entry{Whole manual, in Info format}{278}{Whole manual, in Info format}
+\entry{Preamble, in Info format}{279}{Preamble, in Info format}
+\entry{Indirect tag table, in Info format}{279}{Indirect tag table, in Info 
format}
+\entry{Tag table, in Info format}{280}{Tag table, in Info format}
+\entry{Local variable section, in Info format}{280}{Local variable section, in 
Info format}
+\entry{Info nodes, in Info format}{280}{Info nodes, in Info format}
+\entry{Info format text constructs}{281}{Info format text constructs}
+\entry{text constructs, Info format}{281}{text constructs, Info format}
+\entry{Menus, in Info format}{281}{Menus, in Info format}
+\entry{Images, in Info format}{281}{Images, in Info format}
+\entry{Indices, in Info format}{282}{Indices, in Info format}
+\entry{Cross references, in Info format}{282}{Cross references, in Info format}


Property changes on: trunk/texindex/tests/texinfo.cp
___________________________________________________________________
Added: svn:eol-style
   + native

Added: trunk/texindex/tests/texinfo.cps
===================================================================
--- trunk/texindex/tests/texinfo.cps                            (rev 0)
+++ trunk/texindex/tests/texinfo.cps    2014-12-03 00:57:15 UTC (rev 5946)
@@ -0,0 +1,1502 @@
+\initial {!}
+\entry {\exclamdown {}}{123}
+\initial {"}
+\entry {" (undirected double quote character)}{124}
+\entry {\quotedblbase {} (double low-9 quotation mark)}{124}
+\initial {#}
+\entry {\samp {#line} directive}{169}
+\entry {\samp {#line} directives, not processing with \TeX {}}{170}
+\entry {\samp {#line} syntax details}{170}
+\initial {$}
+\entry {$Id}{261}
+\entry {$Id expansion, preventing}{134}
+\initial {'}
+\entry {'}{124}
+\entry {'\w {}'}{124}
+\initial {(}
+\entry {(dir) as Up node of Top node}{56}
+\initial {,}
+\entry {\quotesinglbase {} (single low-9 quotation mark)}{124}
+\initial {-}
+\entry {-, breakpoint within \code address@hidden
+\entry {\code {--add-once\r {, for \command {install-info}}}}{218}
+\entry {\code {--align=\var {column}\r {, for \command {install-info}}}}{218}
+\entry {\code {--append-new-sections\r {, for \command {install-info}}}}{218}
+\entry {\code {--calign=\var {column}\r {, for \command {install-info}}}}{218}
+\entry {\code {--command\r {, for \command {texi2dvi}}}}{177}
+\entry {\code {--commands-in-node-names}}{188}
+\entry {\code {--conf-dir=\var {path}}}{188}
+\entry {\code {--css-include}}{188}
+\entry {\code {--css-ref}}{188}
+\entry {\code {--debug\r {, for \command {install-info}}}}{218}
+\entry {\code {--delete\r {, for \command {install-info}}}}{218}
+\entry {\code {--description=\var {text}\r {, for \command 
{install-info}}}}{218}
+\entry {\code {--dir-file=\var {name}\r {, for \command {install-info}}}}{218}
+\entry {\code {--disable-encoding}}{189}
+\entry {\code {--docbook}}{189}
+\entry {\code {--document-language}}{189}
+\entry {\code {--dry-run\r {, for \command {install-info}}}}{219}
+\entry {\code {--dvi}}{189}
+\entry {\code {--dvipdf}}{189}
+\entry {\code {--dvipdf\r {, for \command {texi2dvi}}}}{177}
+\entry {\code {--enable-encoding}}{189}
+\entry {\code {--entry=\var {text}\r {, for \command {install-info}}}}{219}
+\entry {\code {--error-limit=\var {limit}}}{189}
+\entry {\code {--fill-column=\var {width}}}{189}
+\entry {\code {--footnote-style=\var {style}}}{189}
+\entry {\code {--force}}{189}
+\entry {\code {--help\r {, for \command {texi2any}}}}{189}
+\entry {\code {--help\r {, for \command {texindex}}}}{219}
+\entry {\code {--html}}{189}
+\entry {\code {--ifdocbook}}{190}
+\entry {\code {--ifhtml}}{190}
+\entry {\code {--ifinfo}}{190}
+\entry {\code {--ifplaintext}}{190}
+\entry {\code {--iftex}}{190}
+\entry {\code {--ifxml}}{190}
+\entry {\code {--info}}{190}
+\entry {\code {--info-dir=\var {dir}\r {, for \command {install-info}}}}{219}
+\entry {\code {--info-file=\var {file}\r {, for \command {install-info}}}}{219}
+\entry {\code {--infodir=\var {dir}\r {, for \command {install-info}}}}{219}
+\entry {\code {--init-file=\var {file}}}{190}
+\entry {\code {--internal-links=\var {file}}}{190}
+\entry {\code {--item=\var {text}\r {, for \command {install-info}}}}{219}
+\entry {\code {--keep-old\r {, for \command {install-info}}}}{219}
+\entry {\code {--language\r {, for \command {texi2dvi}}}}{177}
+\entry {\code {--macro-expand=\var {file}}}{190}
+\entry {\code {--max-width=\var {column}\r {, for \command 
{install-info}}}}{219}
+\entry {\code {--maxwidth=\var {column}\r {, for \command 
{install-info}}}}{219}
+\entry {\code {--menuentry=\var {text}\r {, for \command {install-info}}}}{219}
+\entry {\code {--name=\var {text}\r {, for \command {install-info}}}}{219}
+\entry {\code {--no-headers}}{190, 205}
+\entry {\code {--no-ifdocbook}}{191}
+\entry {\code {--no-ifhtml}}{191}
+\entry {\code {--no-ifinfo}}{191}
+\entry {\code {--no-ifplaintext}}{191}
+\entry {\code {--no-iftex}}{191}
+\entry {\code {--no-ifxml}}{191}
+\entry {\code {--no-indent\r {, for \command {install-info}}}}{219}
+\entry {\code {--no-node-files}}{191}
+\entry {\code {--no-number-footnotes}}{191}
+\entry {\code {--no-number-sections}}{191}
+\entry {\code {--no-pointer-validate}}{191}
+\entry {\code {--no-split}}{193}
+\entry {\code {--no-validate}}{191}
+\entry {\code {--no-warn}}{191}
+\entry {\code {--node-files}}{191}
+\entry {\code {--node-files\r {, and HTML cross references}}}{229}
+\entry {\code {--number-sections}}{191}
+\entry {\code {--output=\var {file}}}{192}
+\entry {\code {--outputindent}}{192}
+\entry {\code {--paragraph-indent=\var {indent}}}{192}
+\entry {\code {--pdf}}{192}
+\entry {\code {--pdf\r {, for \command {texi2dvi}}}}{177}
+\entry {\code {--plaintext}}{192}
+\entry {\code {--ps}}{192}
+\entry {\code {--ps\r {, for \command {texi2dvi}}}}{177}
+\entry {\code {--quiet\r {, for \command {install-info}}}}{219}
+\entry {\code {--recode\r {, for \command {texi2dvi}}}}{177}
+\entry {\code {--recode-from\r {, for \command {texi2dvi}}}}{177}
+\entry {\code {--regex=\var {regex}\r {, for \command {install-info}}}}{220}
+\entry {\code {--remove\r {, for \command {install-info}}}}{220}
+\entry {\code {--remove-exactly\r {, for \command {install-info}}}}{220}
+\entry {\code {--section \var {regex} \var {sec}\r {, for \command 
{install-info}}}}{220}
+\entry {\code {--section=\var {sec}\r {, for \command {install-info}}}}{220}
+\entry {\code {--set-customization-variable \var {var}=\var {value}}}{193}
+\entry {\code {--silent\r {, for \command {install-info}}}}{219}
+\entry {\code {--split-size=\var {num}}}{193}
+\entry {\code {--split=\var {how}}}{193}
+\entry {\code {--test\r {, for \command {install-info}}}}{220}
+\entry {\code {--translate-file\r {, for \command {texi2dvi}}}}{177}
+\entry {\code {--transliterate-file-names}}{193}
+\entry {\code {--verbose}}{193}
+\entry {\code {--version\r {, for \command {install-info}}}}{220}
+\entry {\code {--version\r {, for \command {texi2any}}}}{193}
+\entry {\code {--xml}}{193}
+\entry {\code {--Xopt \var {str}}}{193}
+\entry {\code {-c \var {var}=\var {value}}}{193}
+\entry {\code {-D \var {var}}}{188}
+\entry {\code {-e \var {limit}}}{189}
+\entry {\code {-E \var {file}}}{190}
+\entry {\code {-f \var {width}}}{189}
+\entry {\code {-F}}{189}
+\entry {\code {-h}}{189}
+\entry {\code {-I \var {path}}}{190}
+\entry {\code {-o \var {file}}}{192}
+\entry {\code {-p \var {indent}}}{192}
+\entry {\code {-P \var {path}}}{192}
+\entry {\code {-s \var {style}}}{189}
+\entry {\code {-V}}{193}
+\initial {.}
+\entry {\b {.cshrc} initialization file}{181}
+\entry {\b {.profile} initialization file}{181}
+\initial {<}
+\entry {\guillemetleft {}}{124}
+\entry {\guilsinglleft {}}{124}
+\entry {\code {<abbr>} and \code {<abbrev>} tags}{83}
+\entry {\code {<acknowledgements>} Docbook tag}{48}
+\entry {\code {<acronym>} tag}{83}
+\entry {\code {<blockquote>} HTML tag}{88}
+\entry {\code {<body>} text, customizing}{198}
+\entry {\code {<caution>} Docbook tag}{88}
+\entry {\code {<chapter>} Docbook tag}{48}
+\entry {\code {<colophon>} Docbook tag}{48}
+\entry {\code {<dedication>} Docbook tag}{48}
+\entry {\code {<head>} HTML tag, and \code {<link>}}{202}
+\entry {\code {<important>} Docbook tag}{88}
+\entry {<lineannotation> Docbook tag}{86}
+\entry {\code {<link>} HTML tag, in \code {<head>}}{202}
+\entry {\code {<meta>} HTML tag, and charset specification}{150}
+\entry {<meta> HTML tag, and document description}{40}
+\entry {\code {<note>} Docbook tag}{88}
+\entry {\code {<preface>} Docbook tag}{48}
+\entry {\code {<small>} tag}{85}
+\entry {\code {<thead>} HTML/XML tag}{103}
+\entry {\code {<tip>} Docbook tag}{88}
+\entry {\code {<title>} Docbook tag}{48}
+\entry {\code {<title>} HTML tag}{31}
+\entry {\code {<URL...>} convention, not used}{75}
+\entry {\code {<warning>} Docbook tag}{88}
+\initial {>}
+\entry {\guillemetright {}}{124}
+\entry {\guilsinglright {}}{124}
+\initial {?}
+\entry {\questiondown {}}{123}
+\initial address@hidden
+\entry {\samp address@hidden as continuation in definition commands}{137}
+\entry address@hidden list}{231}
+\entry address@hidden syntax}{253}
+\entry address@hidden
+\entry address@hidden in node names}{55}
+\entry address@hidden, customization variables for}{195}
+\entry address@hidden specifications, in CSS files}{222}
+\entry {\code address@hidden file sample}{173}
+\entry {\code address@hidden parts}{62}
+\entry {\code address@hidden line writing}{54}
+\entry {\code address@hidden, for blank items}{98}
+\initial {^}
+\entry {\samp address@hidden for images in Info}{108}
+\initial {_}
+\entry {_, breakpoint within \code address@hidden
+\initial {`}
+\entry {`}{124}
+\entry {`\w {}`}{124}
+\entry {`Top' node naming for references}{71}
+\initial {\\}
+\entry {\samp {{\tt \backslashcurfont }input} source line ignored}{30}
+\initial {8}
+\entry {8-bit characters, in HTML cross references}{227}
+\initial {A}
+\entry {\ordf {}}{123}
+\entry {A4 paper, printing on}{184}
+\entry {A5 paper, printing on}{184}
+\entry {\aa {}}{123}
+\entry {\AA {}}{123}
+\entry {Abbreviations for keys}{79}
+\entry {Abbreviations, tagging}{83}
+\entry {Abstract of document}{40}
+\entry {Abstract syntax tree representation of documents}{187}
+\entry {Accents, inserting}{122}
+\entry {\code {accesskey}, customization variable for}{201}
+\entry {\code {accesskey\r {, in HTML output of menus}}}{62}
+\entry {\code {accesskey\r {, in HTML output of nodes}}}{53}
+\entry {Acronyms, tagging}{83}
+\entry {Acute accent}{122}
+\entry {Adding a new Info file}{215}
+\entry {Additional output formats}{5}
+\entry {Advice on writing entries}{113}
+\entry {\ae {}}{123}
+\entry {\AE {}}{123}
+\entry {\code {after\r {, value for \code address@hidden
+\entry {\code {AFTER_ABOUT}}{198}
+\entry {\code {AFTER_BODY_OPEN}}{198}
+\entry {\code {AFTER_OVERVIEW}}{198}
+\entry {\code {AFTER_TOC_LINES}}{198}
+\entry {Aliases, command}{168}
+\entry {All-permissive copying license}{264}
+\entry {Allow line break}{132}
+\entry {Alphabetical @-command list}{231}
+\entry {Alt attribute for images}{108}
+\entry {Anchors}{58}
+\entry {Angle quotation marks}{124}
+\entry {Another Info directory}{215}
+\entry {Arguments, repeated and optional}{138}
+\entry {ASCII text output with \option {--plaintext}}{192}
+\entry {Aspect ratio of images}{108}
+\entry {At sign, inserting}{117}
+\entry {Auk, bird species}{124}
+\entry {\code {autoexec.bat}}{216}
+\entry {\code {automake\r {, and version info}}}{262}
+\entry {Automatic pointer creation with \code {makeinfo}}{57}
+\entry {Automatic quoting of commas for some macros}{164}
+\entry {Automatically insert nodes, menus}{19}
+\entry {Auxiliary files, avoiding}{176}
+\entry {\code {AVOID_MENU_REDUNDANCY}}{197}
+\initial {B}
+\entry {B5 paper, printing on}{184}
+\entry {Back-end output formats}{4}
+\entry {Backslash in macros}{162}
+\entry {Backslash, and macros}{163}
+\entry {Backslash, in macro arguments}{164}
+\entry {Backslash, inserting}{118}
+\entry {backtick}{119}
+\entry {Badly referenced nodes}{275}
+\entry {\code {BASEFILENAME_LENGTH}}{198, 224}
+\entry {Bastard title page}{34}
+\entry {Batch formatting for Info}{212}
+\entry {Beebe, Nelson}{5}
+\entry {\code {before\r {, value for \code address@hidden
+\entry {\code {BEFORE_OVERVIEW}}{198}
+\entry {\code {BEFORE_TOC_LINES}}{198}
+\entry {Beginning a Texinfo file}{28}
+\entry {Beginning line of a Texinfo file}{30}
+\entry {Berry, Karl}{14}
+\entry {Big points}{108}
+\entry {\code {BIG_RULE}}{198}
+\entry {Black rectangle in hardcopy}{183}
+\entry {Blank lines}{134}
+\entry {Body of a macro}{162}
+\entry {\code {BODYTEXT}}{198}
+\entry {Bold font}{86}
+\entry {Bolio}{14}
+\entry {Book characteristics, printed}{7}
+\entry {Book, printing small}{183}
+\entry {\code {border-pattern} of\ \code {Window}}{144, 145}
+\entry {Bo\TeX {}}{14}
+\entry {Box with rounded corners}{96}
+\entry {Box, ugly black in hardcopy}{183}
+\entry {Brace-delimited conditional text}{155}
+\entry {Brace-delimited flag conditionals}{158}
+\entry {Braces and argument syntax}{253}
+\entry {Braces, in macro arguments}{164}
+\entry {Braces, inserting}{117}
+\entry {Braces, when to use}{8}
+\entry {Breakpoints within urls}{74}
+\entry {Breaks in a line}{132}
+\entry {Breaks, within \code address@hidden
+\entry {Breve accent}{122}
+\entry {Buffer formatting and printing}{24}
+\entry {Bugs, reporting}{3}
+\entry {Bzipped dir files, reading}{218}
+\initial {C}
+\entry {Capitalization of index entries}{113}
+\entry {Captions, for floats}{106}
+\entry {Caron accent}{122}
+\entry {Cascading Style Sheets, and HTML output}{222}
+\entry {Case in node name}{56}
+\entry {Case, not altering in \code address@hidden
+\entry {\code {CASE_INSENSITIVE_FILENAMES}}{198}
+\entry {Catching errors with Info formatting}{271}
+\entry {Catching errors with \TeX {} formatting}{272}
+\entry {Catching mistakes}{271}
+\entry {Catcode for comments in \TeX {}}{10}
+\entry {Categories, choosing}{217}
+\entry {Category codes, of plain \TeX {}}{154}
+\entry {Caveats for macro usage}{165}
+\entry {Cedilla accent}{122}
+\entry {Centimeters}{109}
+\entry {Chapter structuring}{46}
+\entry {\code {CHAPTER_HEADER_LEVEL}}{198}
+\entry {Chapters, formatting one at a time}{176}
+\entry {Character set, declaring}{150}
+\entry {Characteristics, printed books or manuals}{7}
+\entry {Characters, basic input}{9}
+\entry {Characters, invalid in node name}{56}
+\entry {Chassell, Robert J.}{14}
+\entry {Check accent}{122}
+\entry {\code {CHECK_HTMLXREF}}{198}
+\entry {Checking for badly referenced nodes}{275}
+\entry {Checking for Texinfo commands}{160}
+\entry {Checklist for bug reports}{3}
+\entry {Ciceros}{109}
+\entry {Circumflex accent}{122}
+\entry {Click sequences}{130}
+\entry {\code {CLOSE_QUOTE_SYMBOL}}{202}
+\entry {CM-Super fonts}{124}
+\entry {CM-Super fonts, installing}{182}
+\entry {\code {code\r {, value for \code address@hidden
+\entry {Collapsing whitespace around continuations}{137}
+\entry {Colon in node name}{56}
+\entry {Colon, last in \env {INFOPATH}}{216}
+\entry {Column widths, defining for multitables}{103}
+\entry {Combining indices}{114}
+\entry {Comma in node name}{56}
+\entry {Comma, in macro arguments}{163}
+\entry {Comma, inserting}{118}
+\entry {Command aliases}{168}
+\entry {Command definitions}{146}
+\entry {Command names, indicating}{82}
+\entry {Command syntax}{253}
+\entry {Command-line options of \command {texi2html}}{209}
+\entry {Commands in node names}{55}
+\entry {Commands to insert special characters}{117}
+\entry {Commands using raw \TeX {}}{154}
+\entry {Commands, inserting them}{17}
+\entry {Commands, testing for Texinfo}{160}
+\entry {Comments}{10}
+\entry {Comments, in CSS files}{223}
+\entry {compatibility, with \command {texi2html}}{206}
+\entry {Compile command for formatting}{180}
+\entry {\code {COMPLEX_FORMAT_IN_TABLE}}{199}
+\entry {Compressed dir files, reading}{218}
+\entry {Computer Modern fonts}{150}
+\entry {Conditional commands, inline}{155}
+\entry {Conditionally visible text}{152}
+\entry {Conditionals, nested}{160}
+\entry {Conditions for copying Texinfo}{2}
+\entry {Configuration, for HTML cross-manual references}{228}
+\entry {Cons, Lionel}{15, 209}
+\entry {Contents, after title page}{38}
+\entry {Contents, table of}{37}
+\entry {Contents-like outline of file structure}{19}
+\entry {Contexts, of @-commands}{254}
+\entry {Continuation lines in definition commands}{137}
+\entry {Control keys, specifying}{79}
+\entry {Controlling line breaks}{132}
+\entry {Conventions for writing definitions}{146}
+\entry {Conventions, syntactic}{9}
+\entry {Copying conditions}{2}
+\entry {Copying Permissions}{32}
+\entry {Copying text, including}{33}
+\entry {Copyright holder for FSF works}{33}
+\entry {Copyright page}{36}
+\entry {Copyright symbol}{125}
+\entry {Copyright word, always in English}{32}
+\entry {Correcting mistakes}{271}
+\entry {Country codes}{149}
+\entry {\code {cp} (concept) index}{112}
+\entry {\code {CPP_LINE_DIRECTIVES}}{170, 202}
+\entry {Create nodes, menus automatically}{19}
+\entry {Creating an Info file}{211}
+\entry {Creating an unsplit file}{276}
+\entry {Creating index entries}{113}
+\entry {Creating pointers with \code {makeinfo}}{57}
+\entry {Cropmarks for printing}{185}
+\entry {Cross reference configuration, for HTML}{228}
+\entry {Cross reference parts}{66}
+\entry {Cross reference targets, arbitrary}{58}
+\entry {Cross references}{65}
+\entry {Cross references using \code address@hidden
+\entry {Cross references using \code address@hidden
+\entry {Cross references using \code address@hidden
+\entry {Cross references using \code address@hidden
+\entry {Cross references, in HTML output}{223}
+\entry {Cross references, in Info format}{282}
+\entry {CSS, and HTML output}{222}
+\entry {\code {CSS_LINES}}{199}
+\entry {\kbd {CTRL-l}}{9}
+\entry {Custom page sizes}{184}
+\entry {Customization variables for @-commands}{195}
+\entry {Customization variables for options}{196}
+\entry {Customize Emacs package (\t {Development/Docs/Texinfo})}{180}
+\entry {Customized highlighting}{168}
+\entry {Customizing of \TeX {} for Texinfo}{182}
+\entry {CVS $Id}{261}
+\initial {D}
+\entry {Dash, breakpoint within \code address@hidden
+\entry {Dashes in source}{9}
+\entry {\code {DATE_IN_HEADER}}{199}
+\entry {debugging document, with tree representation}{197}
+\entry {Debugging the Texinfo structure}{271}
+\entry {Debugging with Info formatting}{271}
+\entry {Debugging with \TeX {} formatting}{272}
+\entry {\code {DEBUG}}{202}
+\entry {\code {DEF_TABLE}}{199}
+\entry {Default font}{86}
+\entry {\code {DEFAULT_RULE}}{199}
+\entry {Defining indexing entries}{113}
+\entry {Defining macros}{162}
+\entry {Defining new indices}{115}
+\entry {Defining new Texinfo commands}{162}
+\entry {Definition command headings, continuing}{137}
+\entry {Definition commands}{136}
+\entry {Definition conventions}{146}
+\entry {Definition lists, typesetting}{101}
+\entry {Definition of Info format}{278}
+\entry {Definition template}{136}
+\entry {Definitions grouped together}{138}
+\entry {Degree symbol}{126}
+\entry {Delimiter character, for verbatim}{80}
+\entry {Depth of text area}{184}
+\entry {Description for menu, start}{18}
+\entry {Description of document}{40}
+\entry {Detail menu}{58}
+\entry {Detailed menu}{39}
+\entry {Details of macro usage}{165}
+\entry {\code {detexinfo}}{197}
+\entry {Did\^ot points}{109}
+\entry {Different cross reference commands}{65}
+\entry {Dimension formatting}{122}
+\entry {Dimensions and image sizes}{108}
+\entry {Dir categories, choosing}{217}
+\entry {\file {dir} directory for Info installation}{214}
+\entry {\file {dir} file listing}{215}
+\entry {\file {dir} file, creating your own}{216}
+\entry {\file {dir} files and Info directories}{215}
+\entry {Dir files, compressed}{218}
+\entry {\file {dir}, created by \code {install-info}}{218}
+\entry {Display formatting}{92}
+\entry {Displayed equation, in plain \TeX {}}{154}
+\entry {Displayed equations}{125}
+\entry {\code {distinct\r {, value for \code address@hidden
+\entry {Distorting images}{108}
+\entry {\code {DO_ABOUT}}{199}
+\entry {Docbook and prefatory sections}{48}
+\entry {Docbook output, overview}{5}
+\entry {Docbook, including raw}{155}
+\entry {\code {DOCTYPE}}{202}
+\entry {Document description}{40}
+\entry {Document input encoding}{150}
+\entry {Document language, declaring}{149}
+\entry {Document Permissions}{32}
+\entry {Document strings, internationalization of}{207}
+\entry {Document strings, translation of}{149}
+\entry {Document structure, of Texinfo}{6}
+\entry {Document title, specifying}{31}
+\entry {Documentation identification}{261}
+\entry {\code {documentlanguage}}{196}
+\entry {\code {documentlanguage \r {customization variable}}}{207}
+\entry {Dot accent}{122}
+\entry {Dotless i, j}{123}
+\entry {Dots, inserting}{126}
+\entry {Double angle quotation marks}{124}
+\entry {Double guillemets}{124}
+\entry {Double left-pointing angle quotation mark}{124}
+\entry {Double low-9 quotation mark}{124}
+\entry {Double quotation marks}{124}
+\entry {Double right-pointing angle quotation mark}{124}
+\entry {Double structure, of Texinfo documents}{6}
+\entry {Double-colon menu entries}{62}
+\entry {DTD, for Texinfo XML}{5}
+\entry {Dumas, Patrice}{15, 223}
+\entry {\code {DUMP_TEXI}}{202}
+\entry {\code {DUMP_TREE}}{203}
+\entry {Dumping a .fmt file}{182}
+\entry {DVI file}{175}
+\entry {DVI output, overview}{4}
+\entry {\code {dvipdfmx}}{177}
+\entry {\code {dvips}}{4, 177}
+\entry {\dh {}}{123}
+\entry {\DH {}}{123}
+\initial {E}
+\entry {EC fonts}{123}
+\entry {EC fonts, installing}{182}
+\entry {Ellipsis, inserting}{126}
+\entry {Em dash, compared to minus sign}{127}
+\entry {Em dash, producing}{9}
+\entry {Emacs}{16}
+\entry {Emacs shell, format, print from}{179}
+\entry {Emacs-W3}{4}
+\entry {Emphasizing text}{84}
+\entry {Emphasizing text, font for}{85}
+\entry {En dash, producing}{9}
+\entry {\code {enable}}{143}
+\entry {\code {ENABLE_ENCODING}}{196}
+\entry {\code {ENABLE_ENCODING_USE_ENTITY}}{203}
+\entry {Encoding, declaring}{150}
+\entry {\samp {\r {End}} node footnote style}{110}
+\entry {End of header line}{32}
+\entry {End titlepage starts headings}{37}
+\entry {Ending a Sentence}{121}
+\entry {Ending a Texinfo file}{44}
+\entry {Entries for an index}{113}
+\entry {Entries, making index}{112}
+\entry {Enumeration}{99}
+\entry {Environment indentation}{43}
+\entry {Environment variable \code {INFOPATH}}{215}
+\entry {Environment variable \code {TEXINFO_OUTPUT_FORMAT}}{193}
+\entry {Environment variable \code {TEXINPUTS}}{182}
+\entry {\code {eps image format}}{107}
+\entry {\code {epsf.tex}}{109}
+\entry {\code {epsf.tex\r {, installing}}}{182}
+\entry {Equation, displayed, in plain \TeX {}}{154}
+\entry {Equations, displayed}{125}
+\entry {Equivalence, indicating}{129}
+\entry {Error message, indicating}{129}
+\entry {Error messages, line numbers in}{169}
+\entry {\code {ERROR_LIMIT}}{196}
+\entry {Errors, parsing}{211}
+\entry {Es-zet}{123}
+\entry {Eth}{123}
+\entry {Euro font}{126}
+\entry {Euro font, installing}{182}
+\entry {Euro symbol}{126}
+\entry {European A4 paper}{184}
+\entry {European Computer Modern fonts}{123}
+\entry {European Computer Modern fonts, installing}{182}
+\entry {Evaluation glyph}{128}
+\entry {Example beginning of Texinfo file}{28}
+\entry {Example indentation}{43}
+\entry {Example menu}{63}
+\entry {\code {example\r {, value for \code address@hidden
+\entry {Examples in smaller fonts}{92}
+\entry {Examples of using \command {texi2any}}{187}
+\entry {Examples, formatting them}{89}
+\entry {Examples, glyphs for}{127}
+\entry {Expanding macros}{163}
+\entry {Expansion of 8-bit characters in HTML cross references}{227}
+\entry {Expansion of macros, contexts for}{165}
+\entry {Expansion, indicating}{128}
+\entry {expansion, of node names in HTML cross references}{225}
+\entry {Expressions in a program, indicating}{77}
+\entry {\code {EXTENSION}}{203}
+\entry {External macro processors}{169}
+\entry {\code {EXTERNAL_CROSSREF_SPLIT}}{203}
+\entry {\code {EXTERNAL_DIR}}{199}
+\entry {\code {EXTRA_HEAD}}{199}
+\initial {F}
+\entry {Family names, in all capitals}{83}
+\entry {Features of Texinfo, adapting to}{160}
+\entry {Feminine ordinal}{123}
+\entry {\code {feymr10}}{126}
+\entry {\code {feymr10\r {, installing}}}{182}
+\entry {File beginning}{28}
+\entry {File ending}{44}
+\entry {File name collision}{30}
+\entry {File sectioning structure, showing}{19}
+\entry {\code {FILLCOLUMN}}{196}
+\entry {Final output}{183}
+\entry {Finding badly referenced nodes}{275}
+\entry {Fine-tuning, and hyphenation}{133}
+\entry {First line of a Texinfo file}{30}
+\entry {First node}{56}
+\entry {First paragraph, suppressing indentation of}{43}
+\entry {\code {FIX_TEXINFO}}{203}
+\entry {Fixed-width font}{86}
+\entry {Flag conditionals, brace-delimited}{158}
+\entry {Float environment}{105}
+\entry {Floating accents, inserting}{122}
+\entry {Floating, not yet implemented}{105}
+\entry {Floats, in general}{105}
+\entry {Floats, list of}{106}
+\entry {Floats, making unnumbered}{105}
+\entry {Floats, numbering of}{106}
+\entry {Flooding}{72}
+\entry {\code {fn} (function) index}{112}
+\entry {Font for multitable heading rows}{103}
+\entry {Font size, reducing}{85}
+\entry {Fonts for indices}{115}
+\entry {Fonts for printing}{85}
+\entry {Footings}{266}
+\entry {Footnote styles, in HTML}{221}
+\entry {\code {FOOTNOTE_END_HEADER_LEVEL}}{199}
+\entry {\code {FOOTNOTE_SEPARATE_HEADER_LEVEL}}{199}
+\entry {Footnotes}{109}
+\entry {\code {footnotestyle}}{196}
+\entry {Force line break}{132}
+\entry {\code {FORCE}}{196}
+\entry {Forcing indentation}{95}
+\entry {Forcing line and page breaks}{132}
+\entry {Form feed characters}{9}
+\entry {Format a dimension}{122}
+\entry {Format and print hardcopy}{175}
+\entry {Format and print in Texinfo mode}{179}
+\entry {Format file, dumping}{182}
+\entry {Format with the compile command}{180}
+\entry {Format, print from Emacs shell}{179}
+\entry {Formats for images}{107}
+\entry {Formatting a file for Info}{211}
+\entry {Formatting commands}{8}
+\entry {Formatting examples}{89}
+\entry {Formatting for Info}{24}
+\entry {Formatting for printing}{24}
+\entry {Formatting headings and footings}{266}
+\entry {Formatting requirements}{181}
+\entry {Formatting with \code {tex} and \code {texindex}}{175}
+\entry {Formulas, mathematical}{124}
+\entry {Four- and five argument forms of cross references}{70}
+\entry {Fox, Brian}{14}
+\entry {\code {FRAMES}}{199}
+\entry {\code {FRAMESET_DOCTYPE}}{199}
+\entry {Free Documentation License, including entire}{262}
+\entry {Free software}{2}
+\entry {Free Software Directory}{217}
+\entry {French quotation marks}{124}
+\entry {French spacing}{121}
+\entry {Frequently used commands, inserting}{17}
+\entry {Frontmatter, text in}{28}
+\entry {Full texts, GNU}{261}
+\entry {Function definitions}{146}
+\entry {Functions, in typed languages}{141}
+\entry {Future of Texinfo implementations}{187}
+\initial {G}
+\entry {General syntactic conventions}{9}
+\entry {Generating HTML}{221}
+\entry {Generating menus with indices}{44}
+\entry {Generating page headings}{37}
+\entry {Generating plain text files with \option {--no-headers}}{190}
+\entry {Generating plain text files with \option {--plaintext}}{192}
+\entry {German quotation marks}{124}
+\entry {German S}{123}
+\entry {Global Document Commands}{40}
+\entry {Globbing}{175}
+\entry {Glyphs for programming}{127}
+\entry {Glyphs for text}{125}
+\entry {GNU Emacs}{16}
+\entry {GNU Emacs shell, format, print from}{179}
+\entry {GNU Free Documentation License, including entire}{262}
+\entry {GNU sample texts}{261}
+\entry {Going to other Info files' nodes}{63}
+\entry {Grave accent}{122}
+\entry {grave accent, standalone}{119}
+\entry {Grave accent, vs. left quote}{123}
+\entry {Group (hold text together vertically)}{135}
+\entry {Grouping two definitions together}{138}
+\entry {GUI click sequence}{130}
+\entry {Guillemets}{124}
+\entry {Guillemots}{124}
+\initial {H}
+\entry {Hacek accent}{122}
+\entry {Hardcopy, printing it}{175}
+\entry {Hash sign, inserting}{118}
+\entry {\samp {hbox}, overfull}{183}
+\entry {Header for Texinfo files}{29}
+\entry {Header of a Texinfo file}{30}
+\entry {\code {HEADER_IN_TABLE}}{199}
+\entry {\code {HEADERS}}{196}
+\entry {Heading row, in table}{103}
+\entry {Headings}{266}
+\entry {Headings, indentation after}{43}
+\entry {Headings, page, begin to appear}{37}
+\entry {Height of images}{108}
+\entry {Height of text area}{184}
+\entry {\code {help2man}}{5}
+\entry {Hierarchical documents, and menus}{61}
+\entry {Highlighting text}{76}
+\entry {Highlighting, customized}{168}
+\entry {Hints}{255}
+\entry {History of Texinfo}{14}
+\entry {Holder of copyright for FSF works}{33}
+\entry {Holding text together vertically}{135}
+\entry {\code {href}, producing HTML}{74}
+\entry {HTML cross reference 8-bit character expansion}{227}
+\entry {HTML cross reference command expansion}{226}
+\entry {HTML cross reference configuration}{228}
+\entry {HTML cross reference link basics}{224}
+\entry {HTML cross reference link preservation}{230}
+\entry {HTML cross reference mismatch}{228}
+\entry {HTML cross reference node name expansion}{225}
+\entry {HTML cross references}{223}
+\entry {HTML output, and encodings}{150}
+\entry {HTML output, browser compatibility of}{221}
+\entry {HTML output, overview}{4}
+\entry {HTML output, split}{221}
+\entry {HTML, and CSS}{222}
+\entry {HTML, including raw}{154}
+\entry {\code {htmlxref.cnf}}{228}
+\entry {\code {http-equiv}, and charset specification}{150}
+\entry {Hungarian umlaut accent}{122}
+\entry {Hurricanes}{72}
+\entry {Hyphen, breakpoint within \code address@hidden
+\entry {Hyphen, compared to minus}{127}
+\entry {Hyphenation patterns, language-dependent}{149}
+\entry {Hyphenation, helping \TeX {} do}{133}
+\entry {Hyphenation, preventing}{134}
+\entry {Hyphens in source, two or three in a row}{9}
+\initial {I}
+\entry {\dotless {i} (dotless i)}{123}
+\entry {I18n, of document strings}{207}
+\entry {Icelandic}{123}
+\entry {\code {ICONS}}{199}
+\entry {Identification of documentation}{261}
+\entry {If text conditionally visible}{152}
+\entry {\code {IGNORE_BEFORE_SETFILENAME}}{203}
+\entry {\code {IGNORE_SPACE_AFTER_BRACED_COMMAND_NAME}}{203}
+\entry {Ignored before \code address@hidden
+\entry {Ignored text}{10}
+\entry {Image formats}{107}
+\entry {\code {IMAGE_LINK_PREFIX}}{199}
+\entry {Images, alternate text for}{108}
+\entry {Images, in Info format}{281}
+\entry {Images, inserting}{107}
+\entry {Images, scaling}{108}
+\entry {Implementation, \command {texi2any} as reference}{187}
+\entry {Implicit pointer creation with \code {makeinfo}}{57}
+\entry {Inches}{108}
+\entry {Include file sample}{173}
+\entry {Include files}{172}
+\entry {Include files requirements}{173}
+\entry {Include files, and section levels}{51}
+\entry {Including a file verbatim}{91}
+\entry {Including permissions text}{33}
+\entry {Indentation undoing}{93}
+\entry {Indentation, forcing}{95}
+\entry {Indentation, omitting}{94}
+\entry {Indented text block}{89}
+\entry {Indenting environments}{43}
+\entry {Indenting paragraphs, control of}{42}
+\entry {Indenting, suppressing of first paragraph}{43}
+\entry {Index entries}{113}
+\entry {Index entries, advice on writing}{113}
+\entry {Index entries, making}{112}
+\entry {Index file names}{175}
+\entry {Index font types}{114}
+\entry {\code {INDEX_ENTRY_COLON}}{203}
+\entry {Indexing table entries automatically}{102}
+\entry {Indicating commands, definitions, etc.}{76}
+\entry {Indicating evaluation}{128}
+\entry {Indices}{112}
+\entry {Indices, combining them}{114}
+\entry {Indices, defining new}{115}
+\entry {Indices, in Info format}{282}
+\entry {Indices, printing and menus}{44}
+\entry {Indices, sorting}{175}
+\entry {Indices, two letter names}{114}
+\entry {Indirect subfiles}{213}
+\entry {Indirect tag table, in Info format}{279}
+\entry {Info batch formatting}{212}
+\entry {Info file installation}{214}
+\entry {Info file name, choosing}{30}
+\entry {Info file, listing a new}{215}
+\entry {Info file, splitting manually}{277}
+\entry {Info files}{7}
+\entry {Info format specification}{278}
+\entry {Info format text constructs}{281}
+\entry {Info format, and menus}{61}
+\entry {Info formatting}{24}
+\entry {Info installed in another directory}{215}
+\entry {Info nodes, in Info format}{280}
+\entry {Info output, and encoding}{150}
+\entry {Info output, overview}{4}
+\entry {Info validating a large file}{276}
+\entry {Info, creating an online file}{211}
+\entry {Info; other files' nodes}{63}
+\entry {\code {INFO_SPECIAL_CHARS_WARNING}}{203}
+\entry {\code {INFOPATH}}{215}
+\entry {Initialization file for \TeX {} input}{181}
+\entry {Inline conditionals}{155}
+\entry {\code {INLINE_CONTENTS}}{200}
+\entry {\code {INLINE_CSS_STYLE}}{200}
+\entry {\code {INLINE_INSERTCOPYING}}{203}
+\entry {Input encoding, declaring}{150}
+\entry {\code {INPUT_ENCODING_NAME}}{203}
+\entry {\code {INPUT_PERL_ENCODING}}{204}
+\entry {Insert nodes, menus automatically}{19}
+\entry {Inserting #}{118}
+\entry {Inserting @ \r {(literal \samp address@hidden)}}{117}
+\entry {Inserting accents}{122}
+\entry {Inserting dots}{126}
+\entry {Inserting ellipsis}{126}
+\entry {Inserting frequently used commands}{17}
+\entry {Inserting indentation}{95}
+\entry {Inserting quotation marks}{123}
+\entry {Inserting quote characters}{119}
+\entry {Inserting space}{119}
+\entry {Inserting special characters and symbols}{117}
+\entry {\code {install-info}}{218}
+\entry {\file {INSTALL} file, generating}{192}
+\entry {Installing an Info file}{214}
+\entry {Installing Info in another directory}{215}
+\entry {Internal links, of HTML}{190}
+\entry {\code {INTERNAL_LINKS}}{196}
+\entry {Internationalization}{149}
+\entry {Internationalization of document strings}{207}
+\entry {Introduction to Texinfo}{4}
+\entry {Invalid characters in node names}{56}
+\entry {Invoking macros}{163}
+\entry {Invoking nodes, including in dir file}{217}
+\entry {Invoking \code {pod2texi}}{209}
+\entry {ISO 3166 country codes}{149}
+\entry {ISO 639-2 language codes}{149}
+\entry {ISO 8859-1}{123}
+\entry {ISO 8859-15}{123}
+\entry {ISO 8859-15, and Euro}{126}
+\entry {Italic font}{86}
+\entry {Itemization}{98}
+\initial {J}
+\entry {\dotless {j} (dotless j)}{123}
+\entry {\code {jpeg image format}}{107}
+\initial {K}
+\entry {\code {KEEP_TOP_EXTERNAL_REF}}{200}
+\entry {Keyboard input}{78}
+\entry {Keys, recommended names}{79}
+\entry {Keyword expansion, preventing}{134}
+\entry {Keywords, indicating}{77}
+\entry {Knuth, Donald}{7}
+\entry {\code {ky} (keystroke) index}{112}
+\initial {L}
+\entry {\l {}}{123}
+\entry {\L {}}{123}
+\entry {\code {L2H}}{200}
+\entry {\code {L2H_CLEAN}}{200}
+\entry {\code {L2H_FILE}}{200}
+\entry {\code {L2H_HTML_VERSION}}{200}
+\entry {\code {L2H_L2H}}{200}
+\entry {\code {L2H_SKIP}}{200}
+\entry {\code {L2H_TMP}}{200}
+\entry {Language codes}{149}
+\entry {Language, declaring}{149}
+\entry {Larger or smaller pages}{185}
+\entry {\LaTeX {} logo}{125}
+\entry {\LaTeX {}, processing with \command {texi2dvi}}{177}
+\entry {Latin 1}{123}
+\entry {Latin 9}{123}
+\entry {Latin 9, and Euro}{126}
+\entry {Left quotation marks}{124}
+\entry {Left-pointing angle quotation marks}{124}
+\entry {Legal paper, printing on}{184}
+\entry {Length of file names}{30}
+\entry {Less cluttered menu entry}{62}
+\entry {\code {libintl-perl \r {Gettext implementation}}}{208}
+\entry {Libre software}{2}
+\entry {License for all-permissive copying}{264}
+\entry {License for verbatim copying}{264}
+\entry {Limited scope of Texinfo}{3}
+\entry {Line breaking, and urls}{74}
+\entry {Line breaks, awkward}{132}
+\entry {Line breaks, controlling}{132}
+\entry {Line breaks, preventing}{134}
+\entry {Line length, column widths as fraction of}{103}
+\entry {Line numbers, in error messages}{169}
+\entry {Line spacing}{134}
+\entry {Links, preserving to renamed nodes}{230}
+\entry {Lisp example}{91}
+\entry {Lisp examples in smaller fonts}{92}
+\entry {List of @-commands}{231}
+\entry {List of floats}{106}
+\entry {Listing a new Info file}{215}
+\entry {Lists and tables, making}{97}
+\entry {Literate programming}{8}
+\entry {Local variable section, in Info format}{280}
+\entry {Local variables}{180}
+\entry {Local Variables section, for encoding}{150}
+\entry {Locale, declaring}{149}
+\entry {Location of menus}{61}
+\entry {Logos, \TeX {}}{125}
+\entry {Longest nodes, finding}{205}
+\entry {Looking for badly referenced nodes}{275}
+\entry {Lowering and raising sections}{51}
+\entry {\code {lpr \r {(DVI print command)}}}{178}
+\entry {\code {lpr\r {-d, replacements on MS-DOS/MS-Windows}}}{178}
+\entry {Lynx}{4}
+\entry {Lzip-compressed dir files, reading}{218}
+\entry {LZMA-compressed dir files, reading}{218}
+\initial {M}
+\entry {Macro definitions, programming-language}{146}
+\entry {Macro definitions, Texinfo}{162}
+\entry {Macro details}{165}
+\entry {Macro expansion, contexts for}{165}
+\entry {Macro expansion, indicating}{128}
+\entry {Macro invocation}{163}
+\entry {Macro names, valid characters in}{162}
+\entry {Macro processors, external}{169}
+\entry {\code {MACRO_BODY_IGNORES_LEADING_SPACE}}{204}
+\entry {\code {MACRO_EXPAND}}{196}
+\entry {Macron accent}{122}
+\entry {Macros}{162}
+\entry {Macros, undefining}{163}
+\entry {Magnified printing}{185}
+\entry {Mailto link}{84}
+\entry {\code {makeinfo}}{188}
+\entry {\code {makeinfo} inside Emacs}{211}
+\entry {\code {makeinfo} options}{188}
+\entry {Making a printed manual}{175}
+\entry {Making a tag table automatically}{213}
+\entry {Making a tag table manually}{277}
+\entry {Making cross references}{65}
+\entry {Making line and page breaks}{132}
+\entry {Making lists and tables}{97}
+\entry {Man page output, not supported}{5}
+\entry {Man page, reference to}{74}
+\entry {Manual characteristics, printed}{7}
+\entry {Manual, referring to as a whole}{71}
+\entry {\code {\var {manual}-noderename.cnf}}{230}
+\entry {Margins on page, not controllable}{184}
+\entry {Marking text within a paragraph}{76}
+\entry {Marking words and phrases}{76}
+\entry {Masculine ordinal}{123}
+\entry {Master menu}{39}
+\entry {Mathematical expressions, inserting}{124}
+\entry {\code {MAX_HEADER_LEVEL}}{200}
+\entry {\code {MAX_MACRO_CALL_NESTING}}{204}
+\entry {Menu description, start}{18}
+\entry {Menu entries with two colons}{62}
+\entry {Menu example}{63}
+\entry {Menu location}{61}
+\entry {Menu parts}{62}
+\entry {Menu writing}{61}
+\entry {Menu, master}{39}
+\entry {\code {MENU_ENTRY_COLON}}{204}
+\entry {\code {MENU_SYMBOL}}{200}
+\entry {Menus}{61}
+\entry {Menus generated with indices}{44}
+\entry {Menus, in Info format}{281}
+\entry {Menus, omitting with \option {--no-headers}}{190}
+\entry {Menus, omitting with \option {--plaintext}}{192}
+\entry {Meta keys, specifying}{79}
+\entry {Meta-syntactic chars for arguments}{138}
+\entry {META key}{79}
+\entry {Methods, object-oriented}{145}
+\entry {Millimeters}{109}
+\entry {Mils, argument to \code address@hidden
+\entry {Minimal requirements for formatting}{181}
+\entry {Minimal Texinfo file (requirements)}{10}
+\entry {Minus sign}{127}
+\entry {Mismatched HTML cross reference source and target}{228}
+\entry {Mistakes, catching}{271}
+\entry {Mode, using Texinfo}{16}
+\entry {monolithic manuals, for HTML cross references}{229}
+\entry {\code {MONOLITHIC}}{200}
+\entry {Monospace font}{86}
+\entry {Mozilla}{4}
+\entry {Multiple dashes in source}{9}
+\entry {Multiple spaces}{119}
+\entry {Multitable column widths}{103}
+\entry {Multitable rows}{103}
+\entry {Must have in Texinfo file}{10}
+\initial {N}
+\entry {Names for indices}{114}
+\entry {Names of index files}{175}
+\entry {Names of macros, valid characters of}{162}
+\entry {Names recommended for keys}{79}
+\entry {Naming a `Top' Node in references}{71}
+\entry {NASA, as acronym}{83}
+\entry {Navigation bar, in HTML output}{221}
+\entry {Navigation links, omitting}{190}
+\entry {Navigation panel, bottom of page}{202}
+\entry {Need space at page bottom}{135}
+\entry {Nesting conditionals}{160}
+\entry {New index defining}{115}
+\entry {New Info file, listing it in \file {dir} file}{215}
+\entry {New Texinfo commands, defining}{162}
+\entry {Newlines, avoiding in conditionals}{155}
+\entry {\code {\file {NEWS} file for Texinfo}}{160}
+\entry {Next node of Top node}{57}
+\entry {\code {NO_CSS}}{200}
+\entry {\code {NO_USE_SETFILENAME}}{204}
+\entry {\code {NO_WARN}}{196}
+\entry {Node line requirements}{55}
+\entry {Node line writing}{54}
+\entry {node name expansion, in HTML cross references}{225}
+\entry {Node names must be unique}{55}
+\entry {Node names, choosing}{54}
+\entry {Node names, invalid characters in}{56}
+\entry {Node renaming, and preserving links}{230}
+\entry {Node separators, omitting with \option {--no-headers}}{190}
+\entry {Node separators, omitting with \option {--plaintext}}{192}
+\entry {Node, `Top'}{38}
+\entry {Node, defined}{53}
+\entry {\code {NODE_FILE_EXTENSION}}{201}
+\entry {\code {NODE_FILENAMES}}{204}
+\entry {\code {NODE_FILES}}{196}
+\entry {\code {NODE_NAME_IN_INDEX}}{204}
+\entry {\code {NODE_NAME_IN_MENU}}{204}
+\entry {\code {noderename.cnf}}{230}
+\entry {Nodes in other Info files}{63}
+\entry {Nodes, catching mistakes}{271}
+\entry {Nodes, checking for badly referenced}{275}
+\entry {Nodes, deleting or renaming}{58}
+\entry {Non-breakable space, fixed}{134}
+\entry {Non-breakable space, variable}{134}
+\entry {\code {none\r {, value for \code address@hidden
+\entry {Nonsplit manuals, Info format of}{278}
+\entry {Normalization Form C, Unicode}{227}
+\entry {Not ending a sentence}{120}
+\entry {\code {novalidate}}{196}
+\entry {Number sign, inserting}{118}
+\entry {\code {NUMBER_FOOTNOTES}}{196}
+\entry {\code {NUMBER_SECTIONS}}{196}
+\entry {Numbering of floats}{106}
+\initial {O}
+\entry {\o {}}{123, 123}
+\entry {O'Dea, Brendan}{5}
+\entry {\O {}}{123}
+\entry {Object-oriented programming}{144}
+\entry {Oblique font}{86}
+\entry {Obtaining \TeX {}}{186}
+\entry {Occurrences, listing with \code address@hidden
+\entry {Octotherp, inserting}{118}
+\entry {\oe {}}{123}
+\entry {\OE {}}{123}
+\entry {Ogonek diacritic}{122}
+\entry {Old nodes, preserving links to}{230}
+\entry {Omitting indentation}{94}
+\entry {One-argument form of cross references}{68}
+\entry {\code {OPEN_QUOTE_SYMBOL}}{204}
+\entry {Optional and repeated arguments}{138}
+\entry {Options for \code {makeinfo}}{188}
+\entry {Options for \code {texi2any}}{188}
+\entry {Options of \command {texi2html}}{209}
+\entry {Options, customization variables for}{196}
+\entry {Ordinals, Romance}{123}
+\entry {Ordinary \TeX {} commands, using}{154}
+\entry {Orphans, preventing}{135}
+\entry {Other Info files' nodes}{63}
+\entry {\code {OUTFILE}}{196}
+\entry {Outline of file structure, showing}{19}
+\entry {Output document strings, internationalization of}{207}
+\entry {Output file name, required}{30}
+\entry {Output file splitting}{193}
+\entry {Output formats}{4}
+\entry {Output formats, supporting more}{6}
+\entry {Output, printed through \command {texi2any}}{194}
+\entry {\code {OUTPUT_ENCODING_NAME}}{204}
+\entry {Outputting HTML}{221}
+\entry {\code {OUT}}{196}
+\entry {Overfull \samp {hboxes}}{183}
+\entry {Overview of Texinfo}{3}
+\entry {\code {OVERVIEW_LINK_TO_TOC}}{205}
+\entry {Owner of copyright for FSF works}{33}
+\initial {P}
+\entry {\code {PACKAGE}}{205}
+\entry {\code {PACKAGE_AND_VERSION}}{205}
+\entry {\code {PACKAGE_NAME}}{205}
+\entry {\code {PACKAGE_URL}}{205}
+\entry {\code {PACKAGE_VERSION}}{205}
+\entry {Page breaks, awkward}{132}
+\entry {Page breaks, forcing}{134}
+\entry {Page delimiter in Texinfo mode}{19}
+\entry {Page headings}{266}
+\entry {Page numbering}{266}
+\entry {Page sizes for books}{183}
+\entry {Page sizes, customized}{184}
+\entry {\code {page-delimiter}}{19}
+\entry {Pages, starting odd}{40}
+\entry {Paper size, A4}{184}
+\entry {Paragraph indentation control}{42}
+\entry {Paragraph, marking text within}{76}
+\entry {\code {paragraphindent}}{196}
+\entry {Parameters to macros}{162}
+\entry {Parentheses in node name}{56}
+\entry {Parsing errors}{211}
+\entry {Part of file formatting and printing}{24}
+\entry {Part pages}{50}
+\entry {Parts of a cross reference}{66}
+\entry {Parts of a master menu}{39}
+\entry {Parts of a menu}{62}
+\entry {Patches, contributing}{3}
+\entry {\code {pdf image inclusions}}{107}
+\entry {PDF output}{185}
+\entry {PDF output, overview}{5}
+\entry {\code {pdftex}}{185}
+\entry {\code {pdftex\r {, and images}}}{107}
+\entry {\code {pdftexi2dvi}}{177}
+\entry {Period in node name}{56}
+\entry {Periods, inserting}{120}
+\entry {Perl format strings for translation}{208}
+\entry {Perl POD, converting to Texinfo}{209}
+\entry {Permissions text, including}{33}
+\entry {Permissions, printed}{36}
+\entry {\code {pg} (program) index}{112}
+\entry {Picas}{108}
+\entry {Pictures, inserting}{107}
+\entry {Pinard, Fran\,{c}ois}{14}
+\entry {Plain \TeX {}}{154}
+\entry {Plain text output with \option {--plaintext}}{192}
+\entry {Plain text output, overview}{4}
+\entry {\code {png image format}}{107}
+\entry {\code {pod2texi}}{209}
+\entry {POD, converting to Texinfo}{209}
+\entry {Point, indicating in a buffer}{129}
+\entry {Pointer creation with \code {makeinfo}}{57}
+\entry {Pointer validation with \code {makeinfo}}{194}
+\entry {Pointer validation, suppressing}{176}
+\entry {Pointer validation, suppressing from command line}{191}
+\entry {Points (dimension)}{108}
+\entry {PostScript output, overview}{5}
+\entry {Pounds symbol}{126}
+\entry {\code {PRE_ABOUT}}{201}
+\entry {\code {PRE_BODY_CLOSE}}{201}
+\entry {Preamble, in Info format}{279}
+\entry {Predefined names for indices}{114}
+\entry {Preface, etc., and Docbook}{48}
+\entry {\code {PREFIX}}{205}
+\entry {Preparing for \TeX {}}{181}
+\entry {Preserving HTML links to old nodes}{230}
+\entry {Preventing first paragraph indentation}{43}
+\entry {Preventing line and page breaks}{132}
+\entry {Print and format in Texinfo mode}{179}
+\entry {Print, format from Emacs shell}{179}
+\entry {Printed book and manual characteristics}{7}
+\entry {Printed output, indicating}{128}
+\entry {Printed output, through \command {texi2any}}{194}
+\entry {Printed permissions}{36}
+\entry {Printing a region or buffer}{24}
+\entry {Printing an index}{44}
+\entry {Printing cost, reducing}{85}
+\entry {Printing cropmarks}{185}
+\entry {Printing DVI files, on MS-DOS/MS-Windows}{178}
+\entry {Printing hardcopy}{175}
+\entry {Problems, catching}{271}
+\entry {Program names, indicating}{82}
+\entry {\code {PROGRAM_NAME_IN_FOOTER}}{201}
+\entry {Programming, glyphs for}{127}
+\entry {\code {PROGRAM}}{205}
+\entry {Pronounciation of Texinfo}{3}
+\entry {Prototype row, column widths defined by}{103}
+\initial {Q}
+\entry {Quotation characters (`'), in source}{123}
+\entry {Quotation marks, French}{124}
+\entry {Quotation marks, German}{124}
+\entry {Quotation marks, inserting}{123}
+\entry {Quotations}{88}
+\entry {Quotations in smaller fonts}{92}
+\entry {Quote characters, inserting}{119}
+\entry {Quoting, automatic for some macros}{164}
+\initial {R}
+\entry {Ragged left, without filling}{93}
+\entry {Ragged right, with filling}{94}
+\entry {Ragged right, without filling}{93}
+\entry {Raising and lowering sections}{51}
+\entry {Raw formatter commands}{154}
+\entry {raw text output}{197}
+\entry {RCS $Id}{261}
+\entry {Recommended names for keys}{79}
+\entry {Rectangle, black in hardcopy}{183}
+\entry {Recursive macro invocations}{163}
+\entry {Reducing font size}{85}
+\entry {Reference implementation}{187}
+\entry {Reference to @-commands}{231}
+\entry {References}{65}
+\entry {References using \code address@hidden
+\entry {References using \code address@hidden
+\entry {References using \code address@hidden
+\entry {References using \code address@hidden
+\entry {Referring to an entire manual}{71}
+\entry {Referring to other Info files}{63}
+\entry {Region formatting and printing}{24}
+\entry {Region printing in Texinfo mode}{179}
+\entry {Registered symbol}{126}
+\entry {Regular expression, for \samp {#line}}{170}
+\entry {Reid, Brian}{14}
+\entry {\code {RENAMED_NODES_FILE}}{205, 230}
+\entry {\code {RENAMED_NODES_REDIRECTIONS}}{205}
+\entry {Renaming nodes, and preserving links}{230}
+\entry {Repeated and optional arguments}{138}
+\entry {Reporting bugs}{3}
+\entry {Required in Texinfo file}{10}
+\entry {Requirements for formatting}{181}
+\entry {Requirements for include files}{173}
+\entry {Requirements for updating commands}{22}
+\entry {Reserved words, indicating}{77}
+\entry {Restrictions on node names}{55}
+\entry {Result of an expression}{128}
+\entry {Return type, own line for}{142}
+\entry {\code {ridt.eps}}{109}
+\entry {Right quotation marks}{124}
+\entry {Right-pointing angle quotation marks}{124}
+\entry {Ring accent}{122}
+\entry {Roman font}{86}
+\entry {Romance ordinals}{123}
+\entry {Rounded rectangles, around text}{96}
+\entry {Rows, of a multitable}{103}
+\entry {Running an Info formatter}{24}
+\entry {Running macros}{163}
+\entry {Running \code {makeinfo} in Emacs}{211}
+\initial {S}
+\entry {S-expressions, output format}{197}
+\entry {Sample \code address@hidden file}{173}
+\entry {Sample function definition}{146}
+\entry {Sample Texinfo file, no comments}{260}
+\entry {Sample Texinfo file, with comments}{12}
+\entry {Sample Texinfo files}{260}
+\entry {Sample texts, GNU}{261}
+\entry {Sans serif font}{86}
+\entry {Scaled points}{109}
+\entry {Scaling images}{108}
+\entry {Schwab, Andreas}{14}
+\entry {Scribe}{14}
+\entry {Sea surges}{72}
+\entry {Sectioning}{46}
+\entry {Sectioning structure of a file, showing}{19}
+\entry {Sections, raising and lowering}{51}
+\entry {Semantic markup}{3}
+\entry {Sentence ending punctuation}{121}
+\entry {Sentence non-ending punctuation}{120}
+\entry {Sentences, spacing after}{121}
+\entry {\samp {\r {Separate}} footnote style}{110}
+\entry {Sequence of clicks}{130}
+\entry {SGML-tools output format}{6}
+\entry {Sharp sign (not), inserting}{118}
+\entry {Sharp S}{123}
+\entry {Shell formatting with \code {tex} and \code {texindex}}{175}
+\entry {Shell printing, on MS-DOS/MS-Windows}{178}
+\entry {Shell, format, print from}{179}
+\entry {Shell, running \code {makeinfo} in}{211}
+\entry {Short captions, for lists of floats}{106}
+\entry {Short table of contents}{37}
+\entry {\code {SHORTEXTN}}{201}
+\entry {\code {SHOW_MENU}}{196, 205}
+\entry {\code {SHOW_TITLE}}{201}
+\entry {Showing the sectioning structure of a file}{19}
+\entry {Showing the structure of a file}{274}
+\entry {Shrubbery}{158}
+\entry {\code {SILENT}}{196}
+\entry {\code {SIMPLE_MENU}}{201}
+\entry {Single angle quotation marks}{124}
+\entry {Single guillemets}{124}
+\entry {Single left-pointing angle quotation mark}{124}
+\entry {Single low-9 quotation mark}{124}
+\entry {Single quotation marks}{124}
+\entry {Single right-pointing angle quotation mark}{124}
+\entry {Site-wide Texinfo configuration file}{182}
+\entry {Size of printed book}{183}
+\entry {Slanted font}{86}
+\entry {Slanted typewriter font, for \code address@hidden
+\entry {Small book size}{183}
+\entry {Small caps font}{85}
+\entry {Small examples}{92}
+\entry {Small verbatim}{91}
+\entry {Smaller fonts}{85}
+\entry {\code {SORT_ELEMENT_COUNT}}{205}
+\entry {\code {SORT_ELEMENT_COUNT_WORDS}}{205}
+\entry {Sorting indices}{175}
+\entry {Sorting nodes by size}{205}
+\entry {Source file format}{4}
+\entry {Source files, characters used}{9}
+\entry {Space, after sentences}{121}
+\entry {Space, inserting horizontal}{119}
+\entry {Space, inserting vertical}{134}
+\entry {Spaces in macros}{162}
+\entry {Spaces in node name}{56}
+\entry {Spaces, in menus}{61}
+\entry {Spacing, at ends of sentences}{121}
+\entry {Spacing, in the middle of sentences}{120}
+\entry {Spacing, inserting}{119}
+\entry {Special characters, inserting}{117}
+\entry {Special displays}{105}
+\entry {Special insertions}{117}
+\entry {Specification of Info format}{278}
+\entry {Specifying index entries}{113}
+\entry {spell checking}{197}
+\entry {Spelling of Texinfo}{3}
+\entry {Split HTML output}{221}
+\entry {split manuals, for HTML cross references}{229}
+\entry {Split manuals, Info format of}{278}
+\entry {\code {SPLIT}}{196}
+\entry {\code {SPLIT_SIZE}}{196}
+\entry {Splitting an Info file manually}{277}
+\entry {Splitting of output files}{193}
+\entry {\ss {}}{123}
+\entry {Stallman, Richard M.}{14}
+\entry {Start of header line}{30}
+\entry {Starting chapters}{40}
+\entry {stripping Texinfo commands}{197}
+\entry {Structure of a file, showing}{19}
+\entry {Structure, catching mistakes in}{271}
+\entry {Structure, of Texinfo documents}{6}
+\entry {Structuring of chapters}{46}
+\entry {\code {SUBDIR}}{196}
+\entry {Subsection-like commands}{49}
+\entry {Subsub sectioning commands}{50}
+\entry {Suggestions for Texinfo, making}{3}
+\entry {Summary of document}{40}
+\entry {Suppressing first paragraph indentation}{43}
+\entry {Suppressing indentation}{94}
+\entry {SVG images, used in Docbook}{107}
+\entry {SXML output}{197}
+\entry {Syntactic conventions}{9}
+\entry {Syntactic tokens, indicating}{77}
+\entry {Syntax details, \samp {#line}}{170}
+\entry {Syntax tree representation of documents}{187}
+\entry {Syntax, of @-commands}{253}
+\entry {Syntax, optional & repeated arguments}{138}
+\entry {\code {SystemLiteral}}{202}
+\initial {T}
+\entry {Table of contents}{37}
+\entry {Table of contents, after title page}{38}
+\entry {Table of contents, for floats}{106}
+\entry {Tables and lists, making}{97}
+\entry {Tables with indexing}{102}
+\entry {Tables, making multi-column}{102}
+\entry {Tables, making two-column}{100}
+\entry {Tabs; don't use!}{9}
+\entry {Tag table, in Info format}{280}
+\entry {Tag table, making automatically}{213}
+\entry {Tag table, making manually}{277}
+\entry {Targets for cross references, arbitrary}{58}
+\entry {Template for a definition}{136}
+\entry {Testing for Texinfo commands}{160}
+\entry {Tests, of Texinfo language}{187}
+\entry {\code {TEST}}{205}
+\entry {\TeX {} and \samp {#line} directives}{170}
+\entry {\TeX {} commands, using ordinary}{154}
+\entry {\TeX {} index sorting}{175}
+\entry {\TeX {} input initialization}{181}
+\entry {\TeX {} logo}{125}
+\entry {\TeX {}, how to obtain}{186}
+\entry {\code {texi-elements-by-size}}{205}
+\entry {\code {texi2any}}{188}
+\entry {\code {texi2any} options}{188}
+\entry {\command {texi2any}, as reference implementation}{187}
+\entry {\code {texi2dvi}}{176}
+\entry {\code {texi2dvi \r {(shell script)}}}{176}
+\entry {\code {texi2html}}{209}
+\entry {\file {texi2oldapi.texi}, for \command {texi2any}}{210}
+\entry {\code {TEXI2DVI}}{205}
+\entry {\code {TEXI2HTML}}{206}
+\entry {\code {texindex}}{175}
+\entry {Texinfo commands, defining new}{162}
+\entry {Texinfo commands, testing for}{160}
+\entry {Texinfo document structure}{6}
+\entry {Texinfo file beginning}{28}
+\entry {Texinfo file ending}{44}
+\entry {Texinfo file header}{29}
+\entry {Texinfo file minimum}{10}
+\entry {Texinfo file sectioning structure, showing}{19}
+\entry {Texinfo history}{14}
+\entry {Texinfo language tests}{187}
+\entry {Texinfo mode}{16}
+\entry {Texinfo overview}{3}
+\entry {Texinfo parsers, discouraging more}{6}
+\entry {Texinfo printed book characteristics}{7}
+\entry {Texinfo requires \code address@hidden
+\entry {Texinfo XML output, overview}{5}
+\entry {Texinfo, introduction to}{4}
+\entry {\code {texinfo-bright-colors.css}}{222}
+\entry {\code {texinfo.cnf}}{31}
+\entry {\code {texinfo.cnf \r {installation}}}{182}
+\entry {\code {texinfo.dtd}}{5}
+\entry {\code {texinfo.tex\r {, installing}}}{181}
+\entry {\code {texinfo_document \r {Gettext domain}}}{208}
+\entry {\code {TEXINFO_COLUMN_FOR_DESCRIPTION}}{206}
+\entry {\code {TEXINFO_DTD_VERSION}}{206}
+\entry {\code {TEXINFO_OUTPUT_FORMAT}}{193, 196}
+\entry {\code {TEXINPUTS}}{182}
+\entry {text constructs, Info format}{281}
+\entry {Text width and height}{184}
+\entry {Text, conditionally visible}{152}
+\entry {Text, marking up}{76}
+\entry {\code {Text::Unidecode}}{207}
+\entry {\code {TEXTCONTENT_COMMENT}}{206}
+\entry {Textual glyphs}{125}
+\entry {Thin space between number, dimension}{122}
+\entry {Thorn}{123}
+\entry {Three-argument form of cross references}{69}
+\entry {Tie-after accent}{122}
+\entry {Tied space}{134}
+\entry {Tilde accent}{122}
+\entry {\code {time-stamp.el}}{262}
+\entry {Tips}{255}
+\entry {Title page}{33}
+\entry {Title page, bastard}{34}
+\entry {Titlepage end starts headings}{37}
+\entry {\code {TOC_LINKS}}{201}
+\entry {Top node}{38}
+\entry {Top node example}{39}
+\entry {Top node is first}{56}
+\entry {\code {TOP_FILE}}{201}
+\entry {\code {TOP_NODE_FILE}}{201}
+\entry {\code {TOP_NODE_FILE_TARGET}}{201}
+\entry {\code {TOP_NODE_UP}}{206}
+\entry {\code {TOP_NODE_UP_URL}}{201}
+\entry {\code {tp} (data type) index}{112}
+\entry {Translating strings in output documents}{207}
+\entry {\code {TRANSLITERATE_FILE_NAMES}}{196}
+\entry {Transliteration of 8-bit characters in HTML cross references}{227}
+\entry {Tree representation of documents}{187}
+\entry {tree representation, for debugging}{197}
+\entry {Tree structuring}{46}
+\entry {\code {TREE_TRANSFORMATIONS}}{206}
+\entry {Two `First' Lines for \code address@hidden
+\entry {Two letter names for indices}{114}
+\entry {Two named items for \code address@hidden
+\entry {Two part menu entry}{62}
+\entry {Two-argument form of cross references}{68}
+\entry {\file {txi-\var {cc}.tex}}{149}
+\entry {\code {txixml2texi}}{5}
+\entry {Typed functions}{141}
+\entry {Typed variables}{142}
+\entry {Typewriter font}{86}
+\initial {U}
+\entry {Ugly black rectangles in hardcopy}{183}
+\entry {Umlaut accent}{122}
+\entry {Unbreakable space, fixed}{134}
+\entry {Unbreakable space, variable}{134}
+\entry {Uncluttered menu entry}{62}
+\entry {Undefining macros}{163}
+\entry {Underbar accent}{122}
+\entry {Underdot accent}{122}
+\entry {Underscore, breakpoint within \code address@hidden
+\entry {undirected single quote}{119}
+\entry {Unicode quotation characters}{123}
+\entry {Uniform resource locator, indicating}{84}
+\entry {Uniform resource locator, referring to}{74}
+\entry {Unique index entries}{113}
+\entry {Unique node names requirement}{55}
+\entry {Unnumbered float, creating}{105}
+\entry {Unprocessed text}{10}
+\entry {Unsplit file creation}{276}
+\entry {Up node of Top node}{56}
+\entry {\code {UPDATED \r {Automake variable}}}{262}
+\entry {Updating nodes and menus}{19}
+\entry {Updating requirements}{22}
+\entry {URI syntax for Info}{7}
+\entry {URL, indicating}{84}
+\entry {URL, referring to}{74}
+\entry {\code {us-ascii} encoding, and translations}{208}
+\entry {Usage tips}{255}
+\entry {\code {USE_ACCESSKEY}}{201}
+\entry {\code {USE_ISO}}{201}
+\entry {\code {USE_LINKS}}{202}
+\entry {\code {USE_NODE_TARGET}}{207}
+\entry {\code {USE_NODES}}{207}
+\entry {\code {USE_NUMERIC_ENTITY}}{207}
+\entry {\code {USE_REL_REV}}{202}
+\entry {\code {USE_SETFILENAME_EXTENSION}}{207}
+\entry {\code {USE_TITLEPAGE_FOR_TITLE}}{207}
+\entry {\code {USE_UNIDECODE}}{207}
+\entry {\code {USE_UP_NODE_FOR_ELEMENT_UP}}{207}
+\entry {User input}{78}
+\entry {User options, marking}{141}
+\entry {User-defined Texinfo commands}{162}
+\entry {Using \code {Info-validate}}{276}
+\entry {Using Texinfo in general}{4}
+\entry {UTF-8}{123}
+\initial {V}
+\entry {Validating a large file}{276}
+\entry {Validation of pointers}{194}
+\entry {Value of an expression, indicating}{128}
+\entry {Variables, in typed languages}{142}
+\entry {Variables, object-oriented}{144}
+\entry {Verbatim copying license}{264}
+\entry {Verbatim environment}{90}
+\entry {Verbatim in-line text}{80}
+\entry {Verbatim, include file}{91}
+\entry {Verbatim, small}{91}
+\entry {\code {VERBOSE}}{196}
+\entry {Version control keywords, preventing expansion of}{134}
+\entry {Version number, for install-info}{220}
+\entry {\code {VERSION \r {Automake variable}}}{262}
+\entry {Versions of Texinfo, adapting to}{160}
+\entry {\code {VERTICAL_HEAD_NAVIGATION}}{202}
+\entry {Vertically holding text together}{135}
+\entry {Visibility of conditional text}{152}
+\entry {Visualizing Texinfo CSS}{222}
+\entry {\code {vr} (variable) index}{112}
+\initial {W}
+\entry {W3 consortium}{4}
+\entry {Weinberg, Zack}{14}
+\entry {Weisshaus, Melissa}{14}
+\entry {White space in node name}{56}
+\entry {Whitespace in macros}{162}
+\entry {Whitespace, collapsed around continuations}{137}
+\entry {Whitespace, controlling in conditionals}{155}
+\entry {Whitespace, inserting}{119}
+\entry {Whole manual, in Info format}{278}
+\entry {Width of images}{108}
+\entry {Width of text area}{184}
+\entry {Widths, defining multitable column}{103}
+\entry {Wildcards}{175}
+\entry {word counting}{197}
+\entry {Words and phrases, marking them}{76}
+\entry {\code {WORDS_IN_PAGE}}{202}
+\entry {Writing a menu}{61}
+\entry {Writing an \code address@hidden line}{54}
+\entry {Writing index entries}{113}
+\initial {X}
+\entry {\code {xdvi}}{4}
+\entry {XML Docbook output, overview}{5}
+\entry {XML Texinfo output, overview}{5}
+\entry {XML, including raw}{154}
+\entry {\code {XPM image format}}{107}
+\entry {\code {XREF_USE_FLOAT_LABEL}}{202}
+\entry {\code {XREF_USE_NODE_NAME_ARG}}{202}
+\entry {XZ-compressed dir files, reading}{218}
+\initial {Y}
+\entry {Years, in copyright line}{33}
+\initial {Z}
+\entry {Zaretskii, Eli}{14}
+\entry {Zuhn, David D.}{14}
+\entry {\th {}}{123}
+\entry {\TH {}}{123}


Property changes on: trunk/texindex/tests/texinfo.cps
___________________________________________________________________
Added: svn:eol-style
   + native

Added: trunk/texindex/tests/texinfo.cps-cvers
===================================================================
--- trunk/texindex/tests/texinfo.cps-cvers                              (rev 0)
+++ trunk/texindex/tests/texinfo.cps-cvers      2014-12-03 00:57:15 UTC (rev 
5946)
@@ -0,0 +1,1502 @@
+\initial {!}
+\entry {\exclamdown {}}{123}
+\initial {"}
+\entry {" (undirected double quote character)}{124}
+\entry {\quotedblbase {} (double low-9 quotation mark)}{124}
+\initial {#}
+\entry {\samp {#line} directive}{169}
+\entry {\samp {#line} directives, not processing with \TeX {}}{170}
+\entry {\samp {#line} syntax details}{170}
+\initial {$}
+\entry {$Id}{261}
+\entry {$Id expansion, preventing}{134}
+\initial {'}
+\entry {'}{124}
+\entry {'\w {}'}{124}
+\initial {(}
+\entry {(dir) as Up node of Top node}{56}
+\initial {,}
+\entry {\quotesinglbase {} (single low-9 quotation mark)}{124}
+\initial {-}
+\entry {-, breakpoint within \code address@hidden
+\entry {\code {--add-once\r {, for \command {install-info}}}}{218}
+\entry {\code {--align=\var {column}\r {, for \command {install-info}}}}{218}
+\entry {\code {--append-new-sections\r {, for \command {install-info}}}}{218}
+\entry {\code {--calign=\var {column}\r {, for \command {install-info}}}}{218}
+\entry {\code {--command\r {, for \command {texi2dvi}}}}{177}
+\entry {\code {--commands-in-node-names}}{188}
+\entry {\code {--conf-dir=\var {path}}}{188}
+\entry {\code {--css-include}}{188}
+\entry {\code {--css-ref}}{188}
+\entry {\code {--debug\r {, for \command {install-info}}}}{218}
+\entry {\code {--delete\r {, for \command {install-info}}}}{218}
+\entry {\code {--description=\var {text}\r {, for \command 
{install-info}}}}{218}
+\entry {\code {--dir-file=\var {name}\r {, for \command {install-info}}}}{218}
+\entry {\code {--disable-encoding}}{189}
+\entry {\code {--docbook}}{189}
+\entry {\code {--document-language}}{189}
+\entry {\code {--dry-run\r {, for \command {install-info}}}}{219}
+\entry {\code {--dvi}}{189}
+\entry {\code {--dvipdf}}{189}
+\entry {\code {--dvipdf\r {, for \command {texi2dvi}}}}{177}
+\entry {\code {--enable-encoding}}{189}
+\entry {\code {--entry=\var {text}\r {, for \command {install-info}}}}{219}
+\entry {\code {--error-limit=\var {limit}}}{189}
+\entry {\code {--fill-column=\var {width}}}{189}
+\entry {\code {--footnote-style=\var {style}}}{189}
+\entry {\code {--force}}{189}
+\entry {\code {--help\r {, for \command {texi2any}}}}{189}
+\entry {\code {--help\r {, for \command {texindex}}}}{219}
+\entry {\code {--html}}{189}
+\entry {\code {--ifdocbook}}{190}
+\entry {\code {--ifhtml}}{190}
+\entry {\code {--ifinfo}}{190}
+\entry {\code {--ifplaintext}}{190}
+\entry {\code {--iftex}}{190}
+\entry {\code {--ifxml}}{190}
+\entry {\code {--info}}{190}
+\entry {\code {--info-dir=\var {dir}\r {, for \command {install-info}}}}{219}
+\entry {\code {--info-file=\var {file}\r {, for \command {install-info}}}}{219}
+\entry {\code {--infodir=\var {dir}\r {, for \command {install-info}}}}{219}
+\entry {\code {--init-file=\var {file}}}{190}
+\entry {\code {--internal-links=\var {file}}}{190}
+\entry {\code {--item=\var {text}\r {, for \command {install-info}}}}{219}
+\entry {\code {--keep-old\r {, for \command {install-info}}}}{219}
+\entry {\code {--language\r {, for \command {texi2dvi}}}}{177}
+\entry {\code {--macro-expand=\var {file}}}{190}
+\entry {\code {--max-width=\var {column}\r {, for \command 
{install-info}}}}{219}
+\entry {\code {--maxwidth=\var {column}\r {, for \command 
{install-info}}}}{219}
+\entry {\code {--menuentry=\var {text}\r {, for \command {install-info}}}}{219}
+\entry {\code {--name=\var {text}\r {, for \command {install-info}}}}{219}
+\entry {\code {--no-headers}}{190, 205}
+\entry {\code {--no-ifdocbook}}{191}
+\entry {\code {--no-ifhtml}}{191}
+\entry {\code {--no-ifinfo}}{191}
+\entry {\code {--no-ifplaintext}}{191}
+\entry {\code {--no-iftex}}{191}
+\entry {\code {--no-ifxml}}{191}
+\entry {\code {--no-indent\r {, for \command {install-info}}}}{219}
+\entry {\code {--no-node-files}}{191}
+\entry {\code {--no-number-footnotes}}{191}
+\entry {\code {--no-number-sections}}{191}
+\entry {\code {--no-pointer-validate}}{191}
+\entry {\code {--no-split}}{193}
+\entry {\code {--no-validate}}{191}
+\entry {\code {--no-warn}}{191}
+\entry {\code {--node-files}}{191}
+\entry {\code {--node-files\r {, and HTML cross references}}}{229}
+\entry {\code {--number-sections}}{191}
+\entry {\code {--output=\var {file}}}{192}
+\entry {\code {--outputindent}}{192}
+\entry {\code {--paragraph-indent=\var {indent}}}{192}
+\entry {\code {--pdf}}{192}
+\entry {\code {--pdf\r {, for \command {texi2dvi}}}}{177}
+\entry {\code {--plaintext}}{192}
+\entry {\code {--ps}}{192}
+\entry {\code {--ps\r {, for \command {texi2dvi}}}}{177}
+\entry {\code {--quiet\r {, for \command {install-info}}}}{219}
+\entry {\code {--recode\r {, for \command {texi2dvi}}}}{177}
+\entry {\code {--recode-from\r {, for \command {texi2dvi}}}}{177}
+\entry {\code {--regex=\var {regex}\r {, for \command {install-info}}}}{220}
+\entry {\code {--remove\r {, for \command {install-info}}}}{220}
+\entry {\code {--remove-exactly\r {, for \command {install-info}}}}{220}
+\entry {\code {--section \var {regex} \var {sec}\r {, for \command 
{install-info}}}}{220}
+\entry {\code {--section=\var {sec}\r {, for \command {install-info}}}}{220}
+\entry {\code {--set-customization-variable \var {var}=\var {value}}}{193}
+\entry {\code {--silent\r {, for \command {install-info}}}}{219}
+\entry {\code {--split-size=\var {num}}}{193}
+\entry {\code {--split=\var {how}}}{193}
+\entry {\code {--test\r {, for \command {install-info}}}}{220}
+\entry {\code {--translate-file\r {, for \command {texi2dvi}}}}{177}
+\entry {\code {--transliterate-file-names}}{193}
+\entry {\code {--verbose}}{193}
+\entry {\code {--version\r {, for \command {install-info}}}}{220}
+\entry {\code {--version\r {, for \command {texi2any}}}}{193}
+\entry {\code {--xml}}{193}
+\entry {\code {--Xopt \var {str}}}{193}
+\entry {\code {-c \var {var}=\var {value}}}{193}
+\entry {\code {-D \var {var}}}{188}
+\entry {\code {-E \var {file}}}{190}
+\entry {\code {-e \var {limit}}}{189}
+\entry {\code {-F}}{189}
+\entry {\code {-f \var {width}}}{189}
+\entry {\code {-h}}{189}
+\entry {\code {-I \var {path}}}{190}
+\entry {\code {-o \var {file}}}{192}
+\entry {\code {-p \var {indent}}}{192}
+\entry {\code {-P \var {path}}}{192}
+\entry {\code {-s \var {style}}}{189}
+\entry {\code {-V}}{193}
+\initial {.}
+\entry {\b {.cshrc} initialization file}{181}
+\entry {\b {.profile} initialization file}{181}
+\initial {<}
+\entry {\guillemetleft {}}{124}
+\entry {\guilsinglleft {}}{124}
+\entry {\code {<abbr>} and \code {<abbrev>} tags}{83}
+\entry {\code {<acknowledgements>} Docbook tag}{48}
+\entry {\code {<acronym>} tag}{83}
+\entry {\code {<blockquote>} HTML tag}{88}
+\entry {\code {<body>} text, customizing}{198}
+\entry {\code {<caution>} Docbook tag}{88}
+\entry {\code {<chapter>} Docbook tag}{48}
+\entry {\code {<colophon>} Docbook tag}{48}
+\entry {\code {<dedication>} Docbook tag}{48}
+\entry {\code {<head>} HTML tag, and \code {<link>}}{202}
+\entry {\code {<important>} Docbook tag}{88}
+\entry {<lineannotation> Docbook tag}{86}
+\entry {\code {<link>} HTML tag, in \code {<head>}}{202}
+\entry {\code {<meta>} HTML tag, and charset specification}{150}
+\entry {<meta> HTML tag, and document description}{40}
+\entry {\code {<note>} Docbook tag}{88}
+\entry {\code {<preface>} Docbook tag}{48}
+\entry {\code {<small>} tag}{85}
+\entry {\code {<thead>} HTML/XML tag}{103}
+\entry {\code {<tip>} Docbook tag}{88}
+\entry {\code {<title>} Docbook tag}{48}
+\entry {\code {<title>} HTML tag}{31}
+\entry {\code {<URL...>} convention, not used}{75}
+\entry {\code {<warning>} Docbook tag}{88}
+\initial {>}
+\entry {\guillemetright {}}{124}
+\entry {\guilsinglright {}}{124}
+\initial {?}
+\entry {\questiondown {}}{123}
+\initial address@hidden
+\entry {\samp address@hidden as continuation in definition commands}{137}
+\entry address@hidden list}{231}
+\entry address@hidden syntax}{253}
+\entry address@hidden
+\entry address@hidden in node names}{55}
+\entry address@hidden, customization variables for}{195}
+\entry address@hidden specifications, in CSS files}{222}
+\entry {\code address@hidden file sample}{173}
+\entry {\code address@hidden parts}{62}
+\entry {\code address@hidden line writing}{54}
+\entry {\code address@hidden, for blank items}{98}
+\initial {^}
+\entry {\samp address@hidden for images in Info}{108}
+\initial {_}
+\entry {_, breakpoint within \code address@hidden
+\initial {`}
+\entry {`}{124}
+\entry {`\w {}`}{124}
+\entry {`Top' node naming for references}{71}
+\initial {{\tt \indexbackslash }}
+\entry {\samp {{\tt \backslashcurfont }input} source line ignored}{30}
+\initial {8}
+\entry {8-bit characters, in HTML cross references}{227}
+\initial {A}
+\entry {\ordf {}}{123}
+\entry {A4 paper, printing on}{184}
+\entry {A5 paper, printing on}{184}
+\entry {\aa {}}{123}
+\entry {\AA {}}{123}
+\entry {Abbreviations for keys}{79}
+\entry {Abbreviations, tagging}{83}
+\entry {Abstract of document}{40}
+\entry {Abstract syntax tree representation of documents}{187}
+\entry {Accents, inserting}{122}
+\entry {\code {accesskey}, customization variable for}{201}
+\entry {\code {accesskey\r {, in HTML output of menus}}}{62}
+\entry {\code {accesskey\r {, in HTML output of nodes}}}{53}
+\entry {Acronyms, tagging}{83}
+\entry {Acute accent}{122}
+\entry {Adding a new Info file}{215}
+\entry {Additional output formats}{5}
+\entry {Advice on writing entries}{113}
+\entry {\ae {}}{123}
+\entry {\AE {}}{123}
+\entry {\code {after\r {, value for \code address@hidden
+\entry {\code {AFTER_ABOUT}}{198}
+\entry {\code {AFTER_BODY_OPEN}}{198}
+\entry {\code {AFTER_OVERVIEW}}{198}
+\entry {\code {AFTER_TOC_LINES}}{198}
+\entry {Aliases, command}{168}
+\entry {All-permissive copying license}{264}
+\entry {Allow line break}{132}
+\entry {Alphabetical @-command list}{231}
+\entry {Alt attribute for images}{108}
+\entry {Anchors}{58}
+\entry {Angle quotation marks}{124}
+\entry {Another Info directory}{215}
+\entry {Arguments, repeated and optional}{138}
+\entry {ASCII text output with \option {--plaintext}}{192}
+\entry {Aspect ratio of images}{108}
+\entry {At sign, inserting}{117}
+\entry {Auk, bird species}{124}
+\entry {\code {autoexec.bat}}{216}
+\entry {\code {automake\r {, and version info}}}{262}
+\entry {Automatic pointer creation with \code {makeinfo}}{57}
+\entry {Automatic quoting of commas for some macros}{164}
+\entry {Automatically insert nodes, menus}{19}
+\entry {Auxiliary files, avoiding}{176}
+\entry {\code {AVOID_MENU_REDUNDANCY}}{197}
+\initial {B}
+\entry {B5 paper, printing on}{184}
+\entry {Back-end output formats}{4}
+\entry {Backslash in macros}{162}
+\entry {Backslash, and macros}{163}
+\entry {Backslash, in macro arguments}{164}
+\entry {Backslash, inserting}{118}
+\entry {backtick}{119}
+\entry {Badly referenced nodes}{275}
+\entry {\code {BASEFILENAME_LENGTH}}{198, 224}
+\entry {Bastard title page}{34}
+\entry {Batch formatting for Info}{212}
+\entry {Beebe, Nelson}{5}
+\entry {\code {before\r {, value for \code address@hidden
+\entry {\code {BEFORE_OVERVIEW}}{198}
+\entry {\code {BEFORE_TOC_LINES}}{198}
+\entry {Beginning a Texinfo file}{28}
+\entry {Beginning line of a Texinfo file}{30}
+\entry {Berry, Karl}{14}
+\entry {Big points}{108}
+\entry {\code {BIG_RULE}}{198}
+\entry {Black rectangle in hardcopy}{183}
+\entry {Blank lines}{134}
+\entry {Body of a macro}{162}
+\entry {\code {BODYTEXT}}{198}
+\entry {Bold font}{86}
+\entry {Bolio}{14}
+\entry {Book characteristics, printed}{7}
+\entry {Book, printing small}{183}
+\entry {\code {border-pattern} of\ \code {Window}}{144, 145}
+\entry {Bo\TeX {}}{14}
+\entry {Box with rounded corners}{96}
+\entry {Box, ugly black in hardcopy}{183}
+\entry {Brace-delimited conditional text}{155}
+\entry {Brace-delimited flag conditionals}{158}
+\entry {Braces and argument syntax}{253}
+\entry {Braces, in macro arguments}{164}
+\entry {Braces, inserting}{117}
+\entry {Braces, when to use}{8}
+\entry {Breakpoints within urls}{74}
+\entry {Breaks in a line}{132}
+\entry {Breaks, within \code address@hidden
+\entry {Breve accent}{122}
+\entry {Buffer formatting and printing}{24}
+\entry {Bugs, reporting}{3}
+\entry {Bzipped dir files, reading}{218}
+\initial {C}
+\entry {Capitalization of index entries}{113}
+\entry {Captions, for floats}{106}
+\entry {Caron accent}{122}
+\entry {Cascading Style Sheets, and HTML output}{222}
+\entry {Case in node name}{56}
+\entry {Case, not altering in \code address@hidden
+\entry {\code {CASE_INSENSITIVE_FILENAMES}}{198}
+\entry {Catching errors with Info formatting}{271}
+\entry {Catching errors with \TeX {} formatting}{272}
+\entry {Catching mistakes}{271}
+\entry {Catcode for comments in \TeX {}}{10}
+\entry {Categories, choosing}{217}
+\entry {Category codes, of plain \TeX {}}{154}
+\entry {Caveats for macro usage}{165}
+\entry {Cedilla accent}{122}
+\entry {Centimeters}{109}
+\entry {Chapter structuring}{46}
+\entry {\code {CHAPTER_HEADER_LEVEL}}{198}
+\entry {Chapters, formatting one at a time}{176}
+\entry {Character set, declaring}{150}
+\entry {Characteristics, printed books or manuals}{7}
+\entry {Characters, basic input}{9}
+\entry {Characters, invalid in node name}{56}
+\entry {Chassell, Robert J.}{14}
+\entry {Check accent}{122}
+\entry {\code {CHECK_HTMLXREF}}{198}
+\entry {Checking for badly referenced nodes}{275}
+\entry {Checking for Texinfo commands}{160}
+\entry {Checklist for bug reports}{3}
+\entry {Ciceros}{109}
+\entry {Circumflex accent}{122}
+\entry {Click sequences}{130}
+\entry {\code {CLOSE_QUOTE_SYMBOL}}{202}
+\entry {CM-Super fonts}{124}
+\entry {CM-Super fonts, installing}{182}
+\entry {\code {code\r {, value for \code address@hidden
+\entry {Collapsing whitespace around continuations}{137}
+\entry {Colon in node name}{56}
+\entry {Colon, last in \env {INFOPATH}}{216}
+\entry {Column widths, defining for multitables}{103}
+\entry {Combining indices}{114}
+\entry {Comma in node name}{56}
+\entry {Comma, in macro arguments}{163}
+\entry {Comma, inserting}{118}
+\entry {Command aliases}{168}
+\entry {Command definitions}{146}
+\entry {Command names, indicating}{82}
+\entry {Command syntax}{253}
+\entry {Command-line options of \command {texi2html}}{209}
+\entry {Commands in node names}{55}
+\entry {Commands to insert special characters}{117}
+\entry {Commands using raw \TeX {}}{154}
+\entry {Commands, inserting them}{17}
+\entry {Commands, testing for Texinfo}{160}
+\entry {Comments}{10}
+\entry {Comments, in CSS files}{223}
+\entry {compatibility, with \command {texi2html}}{206}
+\entry {Compile command for formatting}{180}
+\entry {\code {COMPLEX_FORMAT_IN_TABLE}}{199}
+\entry {Compressed dir files, reading}{218}
+\entry {Computer Modern fonts}{150}
+\entry {Conditional commands, inline}{155}
+\entry {Conditionally visible text}{152}
+\entry {Conditionals, nested}{160}
+\entry {Conditions for copying Texinfo}{2}
+\entry {Configuration, for HTML cross-manual references}{228}
+\entry {Cons, Lionel}{15, 209}
+\entry {Contents, after title page}{38}
+\entry {Contents, table of}{37}
+\entry {Contents-like outline of file structure}{19}
+\entry {Contexts, of @-commands}{254}
+\entry {Continuation lines in definition commands}{137}
+\entry {Control keys, specifying}{79}
+\entry {Controlling line breaks}{132}
+\entry {Conventions for writing definitions}{146}
+\entry {Conventions, syntactic}{9}
+\entry {Copying conditions}{2}
+\entry {Copying Permissions}{32}
+\entry {Copying text, including}{33}
+\entry {Copyright holder for FSF works}{33}
+\entry {Copyright page}{36}
+\entry {Copyright symbol}{125}
+\entry {Copyright word, always in English}{32}
+\entry {Correcting mistakes}{271}
+\entry {Country codes}{149}
+\entry {\code {cp} (concept) index}{112}
+\entry {\code {CPP_LINE_DIRECTIVES}}{170, 202}
+\entry {Create nodes, menus automatically}{19}
+\entry {Creating an Info file}{211}
+\entry {Creating an unsplit file}{276}
+\entry {Creating index entries}{113}
+\entry {Creating pointers with \code {makeinfo}}{57}
+\entry {Cropmarks for printing}{185}
+\entry {Cross reference configuration, for HTML}{228}
+\entry {Cross reference parts}{66}
+\entry {Cross reference targets, arbitrary}{58}
+\entry {Cross references}{65}
+\entry {Cross references using \code address@hidden
+\entry {Cross references using \code address@hidden
+\entry {Cross references using \code address@hidden
+\entry {Cross references using \code address@hidden
+\entry {Cross references, in HTML output}{223}
+\entry {Cross references, in Info format}{282}
+\entry {CSS, and HTML output}{222}
+\entry {\code {CSS_LINES}}{199}
+\entry {\kbd {CTRL-l}}{9}
+\entry {Custom page sizes}{184}
+\entry {Customization variables for @-commands}{195}
+\entry {Customization variables for options}{196}
+\entry {Customize Emacs package (\t {Development/Docs/Texinfo})}{180}
+\entry {Customized highlighting}{168}
+\entry {Customizing of \TeX {} for Texinfo}{182}
+\entry {CVS $Id}{261}
+\initial {D}
+\entry {Dash, breakpoint within \code address@hidden
+\entry {Dashes in source}{9}
+\entry {\code {DATE_IN_HEADER}}{199}
+\entry {\code {DEBUG}}{202}
+\entry {debugging document, with tree representation}{197}
+\entry {Debugging the Texinfo structure}{271}
+\entry {Debugging with Info formatting}{271}
+\entry {Debugging with \TeX {} formatting}{272}
+\entry {\code {DEF_TABLE}}{199}
+\entry {Default font}{86}
+\entry {\code {DEFAULT_RULE}}{199}
+\entry {Defining indexing entries}{113}
+\entry {Defining macros}{162}
+\entry {Defining new indices}{115}
+\entry {Defining new Texinfo commands}{162}
+\entry {Definition command headings, continuing}{137}
+\entry {Definition commands}{136}
+\entry {Definition conventions}{146}
+\entry {Definition lists, typesetting}{101}
+\entry {Definition of Info format}{278}
+\entry {Definition template}{136}
+\entry {Definitions grouped together}{138}
+\entry {Degree symbol}{126}
+\entry {Delimiter character, for verbatim}{80}
+\entry {Depth of text area}{184}
+\entry {Description for menu, start}{18}
+\entry {Description of document}{40}
+\entry {Detail menu}{58}
+\entry {Detailed menu}{39}
+\entry {Details of macro usage}{165}
+\entry {\code {detexinfo}}{197}
+\entry {Did\^ot points}{109}
+\entry {Different cross reference commands}{65}
+\entry {Dimension formatting}{122}
+\entry {Dimensions and image sizes}{108}
+\entry {Dir categories, choosing}{217}
+\entry {\file {dir} directory for Info installation}{214}
+\entry {\file {dir} file listing}{215}
+\entry {\file {dir} file, creating your own}{216}
+\entry {\file {dir} files and Info directories}{215}
+\entry {Dir files, compressed}{218}
+\entry {\file {dir}, created by \code {install-info}}{218}
+\entry {Display formatting}{92}
+\entry {Displayed equation, in plain \TeX {}}{154}
+\entry {Displayed equations}{125}
+\entry {\code {distinct\r {, value for \code address@hidden
+\entry {Distorting images}{108}
+\entry {\code {DO_ABOUT}}{199}
+\entry {Docbook and prefatory sections}{48}
+\entry {Docbook output, overview}{5}
+\entry {Docbook, including raw}{155}
+\entry {\code {DOCTYPE}}{202}
+\entry {Document description}{40}
+\entry {Document input encoding}{150}
+\entry {Document language, declaring}{149}
+\entry {Document Permissions}{32}
+\entry {Document strings, internationalization of}{207}
+\entry {Document strings, translation of}{149}
+\entry {Document structure, of Texinfo}{6}
+\entry {Document title, specifying}{31}
+\entry {Documentation identification}{261}
+\entry {\code {documentlanguage}}{196}
+\entry {\code {documentlanguage \r {customization variable}}}{207}
+\entry {Dot accent}{122}
+\entry {Dotless i, j}{123}
+\entry {Dots, inserting}{126}
+\entry {Double angle quotation marks}{124}
+\entry {Double guillemets}{124}
+\entry {Double left-pointing angle quotation mark}{124}
+\entry {Double low-9 quotation mark}{124}
+\entry {Double quotation marks}{124}
+\entry {Double right-pointing angle quotation mark}{124}
+\entry {Double structure, of Texinfo documents}{6}
+\entry {Double-colon menu entries}{62}
+\entry {DTD, for Texinfo XML}{5}
+\entry {Dumas, Patrice}{15, 223}
+\entry {\code {DUMP_TEXI}}{202}
+\entry {\code {DUMP_TREE}}{203}
+\entry {Dumping a .fmt file}{182}
+\entry {DVI file}{175}
+\entry {DVI output, overview}{4}
+\entry {\code {dvipdfmx}}{177}
+\entry {\code {dvips}}{4, 177}
+\entry {\dh {}}{123}
+\entry {\DH {}}{123}
+\initial {E}
+\entry {EC fonts}{123}
+\entry {EC fonts, installing}{182}
+\entry {Ellipsis, inserting}{126}
+\entry {Em dash, compared to minus sign}{127}
+\entry {Em dash, producing}{9}
+\entry {Emacs}{16}
+\entry {Emacs shell, format, print from}{179}
+\entry {Emacs-W3}{4}
+\entry {Emphasizing text}{84}
+\entry {Emphasizing text, font for}{85}
+\entry {En dash, producing}{9}
+\entry {\code {enable}}{143}
+\entry {\code {ENABLE_ENCODING}}{196}
+\entry {\code {ENABLE_ENCODING_USE_ENTITY}}{203}
+\entry {Encoding, declaring}{150}
+\entry {\samp {\r {End}} node footnote style}{110}
+\entry {End of header line}{32}
+\entry {End titlepage starts headings}{37}
+\entry {Ending a Sentence}{121}
+\entry {Ending a Texinfo file}{44}
+\entry {Entries for an index}{113}
+\entry {Entries, making index}{112}
+\entry {Enumeration}{99}
+\entry {Environment indentation}{43}
+\entry {Environment variable \code {INFOPATH}}{215}
+\entry {Environment variable \code {TEXINFO_OUTPUT_FORMAT}}{193}
+\entry {Environment variable \code {TEXINPUTS}}{182}
+\entry {\code {eps image format}}{107}
+\entry {\code {epsf.tex}}{109}
+\entry {\code {epsf.tex\r {, installing}}}{182}
+\entry {Equation, displayed, in plain \TeX {}}{154}
+\entry {Equations, displayed}{125}
+\entry {Equivalence, indicating}{129}
+\entry {Error message, indicating}{129}
+\entry {Error messages, line numbers in}{169}
+\entry {\code {ERROR_LIMIT}}{196}
+\entry {Errors, parsing}{211}
+\entry {Es-zet}{123}
+\entry {Eth}{123}
+\entry {Euro font}{126}
+\entry {Euro font, installing}{182}
+\entry {Euro symbol}{126}
+\entry {European A4 paper}{184}
+\entry {European Computer Modern fonts}{123}
+\entry {European Computer Modern fonts, installing}{182}
+\entry {Evaluation glyph}{128}
+\entry {Example beginning of Texinfo file}{28}
+\entry {Example indentation}{43}
+\entry {Example menu}{63}
+\entry {\code {example\r {, value for \code address@hidden
+\entry {Examples in smaller fonts}{92}
+\entry {Examples of using \command {texi2any}}{187}
+\entry {Examples, formatting them}{89}
+\entry {Examples, glyphs for}{127}
+\entry {Expanding macros}{163}
+\entry {Expansion of 8-bit characters in HTML cross references}{227}
+\entry {Expansion of macros, contexts for}{165}
+\entry {Expansion, indicating}{128}
+\entry {expansion, of node names in HTML cross references}{225}
+\entry {Expressions in a program, indicating}{77}
+\entry {\code {EXTENSION}}{203}
+\entry {External macro processors}{169}
+\entry {\code {EXTERNAL_CROSSREF_SPLIT}}{203}
+\entry {\code {EXTERNAL_DIR}}{199}
+\entry {\code {EXTRA_HEAD}}{199}
+\initial {F}
+\entry {Family names, in all capitals}{83}
+\entry {Features of Texinfo, adapting to}{160}
+\entry {Feminine ordinal}{123}
+\entry {\code {feymr10}}{126}
+\entry {\code {feymr10\r {, installing}}}{182}
+\entry {File beginning}{28}
+\entry {File ending}{44}
+\entry {File name collision}{30}
+\entry {File sectioning structure, showing}{19}
+\entry {\code {FILLCOLUMN}}{196}
+\entry {Final output}{183}
+\entry {Finding badly referenced nodes}{275}
+\entry {Fine-tuning, and hyphenation}{133}
+\entry {First line of a Texinfo file}{30}
+\entry {First node}{56}
+\entry {First paragraph, suppressing indentation of}{43}
+\entry {\code {FIX_TEXINFO}}{203}
+\entry {Fixed-width font}{86}
+\entry {Flag conditionals, brace-delimited}{158}
+\entry {Float environment}{105}
+\entry {Floating accents, inserting}{122}
+\entry {Floating, not yet implemented}{105}
+\entry {Floats, in general}{105}
+\entry {Floats, list of}{106}
+\entry {Floats, making unnumbered}{105}
+\entry {Floats, numbering of}{106}
+\entry {Flooding}{72}
+\entry {\code {fn} (function) index}{112}
+\entry {Font for multitable heading rows}{103}
+\entry {Font size, reducing}{85}
+\entry {Fonts for indices}{115}
+\entry {Fonts for printing}{85}
+\entry {Footings}{266}
+\entry {Footnote styles, in HTML}{221}
+\entry {\code {FOOTNOTE_END_HEADER_LEVEL}}{199}
+\entry {\code {FOOTNOTE_SEPARATE_HEADER_LEVEL}}{199}
+\entry {Footnotes}{109}
+\entry {\code {footnotestyle}}{196}
+\entry {\code {FORCE}}{196}
+\entry {Force line break}{132}
+\entry {Forcing indentation}{95}
+\entry {Forcing line and page breaks}{132}
+\entry {Form feed characters}{9}
+\entry {Format a dimension}{122}
+\entry {Format and print hardcopy}{175}
+\entry {Format and print in Texinfo mode}{179}
+\entry {Format file, dumping}{182}
+\entry {Format with the compile command}{180}
+\entry {Format, print from Emacs shell}{179}
+\entry {Formats for images}{107}
+\entry {Formatting a file for Info}{211}
+\entry {Formatting commands}{8}
+\entry {Formatting examples}{89}
+\entry {Formatting for Info}{24}
+\entry {Formatting for printing}{24}
+\entry {Formatting headings and footings}{266}
+\entry {Formatting requirements}{181}
+\entry {Formatting with \code {tex} and \code {texindex}}{175}
+\entry {Formulas, mathematical}{124}
+\entry {Four- and five argument forms of cross references}{70}
+\entry {Fox, Brian}{14}
+\entry {\code {FRAMES}}{199}
+\entry {\code {FRAMESET_DOCTYPE}}{199}
+\entry {Free Documentation License, including entire}{262}
+\entry {Free software}{2}
+\entry {Free Software Directory}{217}
+\entry {French quotation marks}{124}
+\entry {French spacing}{121}
+\entry {Frequently used commands, inserting}{17}
+\entry {Frontmatter, text in}{28}
+\entry {Full texts, GNU}{261}
+\entry {Function definitions}{146}
+\entry {Functions, in typed languages}{141}
+\entry {Future of Texinfo implementations}{187}
+\initial {G}
+\entry {General syntactic conventions}{9}
+\entry {Generating HTML}{221}
+\entry {Generating menus with indices}{44}
+\entry {Generating page headings}{37}
+\entry {Generating plain text files with \option {--no-headers}}{190}
+\entry {Generating plain text files with \option {--plaintext}}{192}
+\entry {German quotation marks}{124}
+\entry {German S}{123}
+\entry {Global Document Commands}{40}
+\entry {Globbing}{175}
+\entry {Glyphs for programming}{127}
+\entry {Glyphs for text}{125}
+\entry {GNU Emacs}{16}
+\entry {GNU Emacs shell, format, print from}{179}
+\entry {GNU Free Documentation License, including entire}{262}
+\entry {GNU sample texts}{261}
+\entry {Going to other Info files' nodes}{63}
+\entry {Grave accent}{122}
+\entry {grave accent, standalone}{119}
+\entry {Grave accent, vs. left quote}{123}
+\entry {Group (hold text together vertically)}{135}
+\entry {Grouping two definitions together}{138}
+\entry {GUI click sequence}{130}
+\entry {Guillemets}{124}
+\entry {Guillemots}{124}
+\initial {H}
+\entry {Hacek accent}{122}
+\entry {Hardcopy, printing it}{175}
+\entry {Hash sign, inserting}{118}
+\entry {\samp {hbox}, overfull}{183}
+\entry {Header for Texinfo files}{29}
+\entry {Header of a Texinfo file}{30}
+\entry {\code {HEADER_IN_TABLE}}{199}
+\entry {\code {HEADERS}}{196}
+\entry {Heading row, in table}{103}
+\entry {Headings}{266}
+\entry {Headings, indentation after}{43}
+\entry {Headings, page, begin to appear}{37}
+\entry {Height of images}{108}
+\entry {Height of text area}{184}
+\entry {\code {help2man}}{5}
+\entry {Hierarchical documents, and menus}{61}
+\entry {Highlighting text}{76}
+\entry {Highlighting, customized}{168}
+\entry {Hints}{255}
+\entry {History of Texinfo}{14}
+\entry {Holder of copyright for FSF works}{33}
+\entry {Holding text together vertically}{135}
+\entry {\code {href}, producing HTML}{74}
+\entry {HTML cross reference 8-bit character expansion}{227}
+\entry {HTML cross reference command expansion}{226}
+\entry {HTML cross reference configuration}{228}
+\entry {HTML cross reference link basics}{224}
+\entry {HTML cross reference link preservation}{230}
+\entry {HTML cross reference mismatch}{228}
+\entry {HTML cross reference node name expansion}{225}
+\entry {HTML cross references}{223}
+\entry {HTML output, and encodings}{150}
+\entry {HTML output, browser compatibility of}{221}
+\entry {HTML output, overview}{4}
+\entry {HTML output, split}{221}
+\entry {HTML, and CSS}{222}
+\entry {HTML, including raw}{154}
+\entry {\code {htmlxref.cnf}}{228}
+\entry {\code {http-equiv}, and charset specification}{150}
+\entry {Hungarian umlaut accent}{122}
+\entry {Hurricanes}{72}
+\entry {Hyphen, breakpoint within \code address@hidden
+\entry {Hyphen, compared to minus}{127}
+\entry {Hyphenation patterns, language-dependent}{149}
+\entry {Hyphenation, helping \TeX {} do}{133}
+\entry {Hyphenation, preventing}{134}
+\entry {Hyphens in source, two or three in a row}{9}
+\initial {I}
+\entry {\dotless {i} (dotless i)}{123}
+\entry {I18n, of document strings}{207}
+\entry {Icelandic}{123}
+\entry {\code {ICONS}}{199}
+\entry {Identification of documentation}{261}
+\entry {If text conditionally visible}{152}
+\entry {\code {IGNORE_BEFORE_SETFILENAME}}{203}
+\entry {\code {IGNORE_SPACE_AFTER_BRACED_COMMAND_NAME}}{203}
+\entry {Ignored before \code address@hidden
+\entry {Ignored text}{10}
+\entry {Image formats}{107}
+\entry {\code {IMAGE_LINK_PREFIX}}{199}
+\entry {Images, alternate text for}{108}
+\entry {Images, in Info format}{281}
+\entry {Images, inserting}{107}
+\entry {Images, scaling}{108}
+\entry {Implementation, \command {texi2any} as reference}{187}
+\entry {Implicit pointer creation with \code {makeinfo}}{57}
+\entry {Inches}{108}
+\entry {Include file sample}{173}
+\entry {Include files}{172}
+\entry {Include files requirements}{173}
+\entry {Include files, and section levels}{51}
+\entry {Including a file verbatim}{91}
+\entry {Including permissions text}{33}
+\entry {Indentation undoing}{93}
+\entry {Indentation, forcing}{95}
+\entry {Indentation, omitting}{94}
+\entry {Indented text block}{89}
+\entry {Indenting environments}{43}
+\entry {Indenting paragraphs, control of}{42}
+\entry {Indenting, suppressing of first paragraph}{43}
+\entry {Index entries}{113}
+\entry {Index entries, advice on writing}{113}
+\entry {Index entries, making}{112}
+\entry {Index file names}{175}
+\entry {Index font types}{114}
+\entry {\code {INDEX_ENTRY_COLON}}{203}
+\entry {Indexing table entries automatically}{102}
+\entry {Indicating commands, definitions, etc.}{76}
+\entry {Indicating evaluation}{128}
+\entry {Indices}{112}
+\entry {Indices, combining them}{114}
+\entry {Indices, defining new}{115}
+\entry {Indices, in Info format}{282}
+\entry {Indices, printing and menus}{44}
+\entry {Indices, sorting}{175}
+\entry {Indices, two letter names}{114}
+\entry {Indirect subfiles}{213}
+\entry {Indirect tag table, in Info format}{279}
+\entry {Info batch formatting}{212}
+\entry {Info file installation}{214}
+\entry {Info file name, choosing}{30}
+\entry {Info file, listing a new}{215}
+\entry {Info file, splitting manually}{277}
+\entry {Info files}{7}
+\entry {Info format specification}{278}
+\entry {Info format text constructs}{281}
+\entry {Info format, and menus}{61}
+\entry {Info formatting}{24}
+\entry {Info installed in another directory}{215}
+\entry {Info nodes, in Info format}{280}
+\entry {Info output, and encoding}{150}
+\entry {Info output, overview}{4}
+\entry {Info validating a large file}{276}
+\entry {Info, creating an online file}{211}
+\entry {Info; other files' nodes}{63}
+\entry {\code {INFO_SPECIAL_CHARS_WARNING}}{203}
+\entry {\code {INFOPATH}}{215}
+\entry {Initialization file for \TeX {} input}{181}
+\entry {Inline conditionals}{155}
+\entry {\code {INLINE_CONTENTS}}{200}
+\entry {\code {INLINE_CSS_STYLE}}{200}
+\entry {\code {INLINE_INSERTCOPYING}}{203}
+\entry {Input encoding, declaring}{150}
+\entry {\code {INPUT_ENCODING_NAME}}{203}
+\entry {\code {INPUT_PERL_ENCODING}}{204}
+\entry {Insert nodes, menus automatically}{19}
+\entry {Inserting #}{118}
+\entry {Inserting @ \r {(literal \samp address@hidden)}}{117}
+\entry {Inserting accents}{122}
+\entry {Inserting dots}{126}
+\entry {Inserting ellipsis}{126}
+\entry {Inserting frequently used commands}{17}
+\entry {Inserting indentation}{95}
+\entry {Inserting quotation marks}{123}
+\entry {Inserting quote characters}{119}
+\entry {Inserting space}{119}
+\entry {Inserting special characters and symbols}{117}
+\entry {\file {INSTALL} file, generating}{192}
+\entry {\code {install-info}}{218}
+\entry {Installing an Info file}{214}
+\entry {Installing Info in another directory}{215}
+\entry {Internal links, of HTML}{190}
+\entry {\code {INTERNAL_LINKS}}{196}
+\entry {Internationalization}{149}
+\entry {Internationalization of document strings}{207}
+\entry {Introduction to Texinfo}{4}
+\entry {Invalid characters in node names}{56}
+\entry {Invoking macros}{163}
+\entry {Invoking nodes, including in dir file}{217}
+\entry {Invoking \code {pod2texi}}{209}
+\entry {ISO 3166 country codes}{149}
+\entry {ISO 639-2 language codes}{149}
+\entry {ISO 8859-1}{123}
+\entry {ISO 8859-15}{123}
+\entry {ISO 8859-15, and Euro}{126}
+\entry {Italic font}{86}
+\entry {Itemization}{98}
+\initial {J}
+\entry {\dotless {j} (dotless j)}{123}
+\entry {\code {jpeg image format}}{107}
+\initial {K}
+\entry {\code {KEEP_TOP_EXTERNAL_REF}}{200}
+\entry {Keyboard input}{78}
+\entry {Keys, recommended names}{79}
+\entry {Keyword expansion, preventing}{134}
+\entry {Keywords, indicating}{77}
+\entry {Knuth, Donald}{7}
+\entry {\code {ky} (keystroke) index}{112}
+\initial {L}
+\entry {\l {}}{123}
+\entry {\L {}}{123}
+\entry {\code {L2H}}{200}
+\entry {\code {L2H_CLEAN}}{200}
+\entry {\code {L2H_FILE}}{200}
+\entry {\code {L2H_HTML_VERSION}}{200}
+\entry {\code {L2H_L2H}}{200}
+\entry {\code {L2H_SKIP}}{200}
+\entry {\code {L2H_TMP}}{200}
+\entry {Language codes}{149}
+\entry {Language, declaring}{149}
+\entry {Larger or smaller pages}{185}
+\entry {\LaTeX {} logo}{125}
+\entry {\LaTeX {}, processing with \command {texi2dvi}}{177}
+\entry {Latin 1}{123}
+\entry {Latin 9}{123}
+\entry {Latin 9, and Euro}{126}
+\entry {Left quotation marks}{124}
+\entry {Left-pointing angle quotation marks}{124}
+\entry {Legal paper, printing on}{184}
+\entry {Length of file names}{30}
+\entry {Less cluttered menu entry}{62}
+\entry {\code {libintl-perl \r {Gettext implementation}}}{208}
+\entry {Libre software}{2}
+\entry {License for all-permissive copying}{264}
+\entry {License for verbatim copying}{264}
+\entry {Limited scope of Texinfo}{3}
+\entry {Line breaking, and urls}{74}
+\entry {Line breaks, awkward}{132}
+\entry {Line breaks, controlling}{132}
+\entry {Line breaks, preventing}{134}
+\entry {Line length, column widths as fraction of}{103}
+\entry {Line numbers, in error messages}{169}
+\entry {Line spacing}{134}
+\entry {Links, preserving to renamed nodes}{230}
+\entry {Lisp example}{91}
+\entry {Lisp examples in smaller fonts}{92}
+\entry {List of @-commands}{231}
+\entry {List of floats}{106}
+\entry {Listing a new Info file}{215}
+\entry {Lists and tables, making}{97}
+\entry {Literate programming}{8}
+\entry {Local variable section, in Info format}{280}
+\entry {Local variables}{180}
+\entry {Local Variables section, for encoding}{150}
+\entry {Locale, declaring}{149}
+\entry {Location of menus}{61}
+\entry {Logos, \TeX {}}{125}
+\entry {Longest nodes, finding}{205}
+\entry {Looking for badly referenced nodes}{275}
+\entry {Lowering and raising sections}{51}
+\entry {\code {lpr \r {(DVI print command)}}}{178}
+\entry {\code {lpr\r {-d, replacements on MS-DOS/MS-Windows}}}{178}
+\entry {Lynx}{4}
+\entry {Lzip-compressed dir files, reading}{218}
+\entry {LZMA-compressed dir files, reading}{218}
+\initial {M}
+\entry {Macro definitions, programming-language}{146}
+\entry {Macro definitions, Texinfo}{162}
+\entry {Macro details}{165}
+\entry {Macro expansion, contexts for}{165}
+\entry {Macro expansion, indicating}{128}
+\entry {Macro invocation}{163}
+\entry {Macro names, valid characters in}{162}
+\entry {Macro processors, external}{169}
+\entry {\code {MACRO_BODY_IGNORES_LEADING_SPACE}}{204}
+\entry {\code {MACRO_EXPAND}}{196}
+\entry {Macron accent}{122}
+\entry {Macros}{162}
+\entry {Macros, undefining}{163}
+\entry {Magnified printing}{185}
+\entry {Mailto link}{84}
+\entry {\code {makeinfo}}{188}
+\entry {\code {makeinfo} inside Emacs}{211}
+\entry {\code {makeinfo} options}{188}
+\entry {Making a printed manual}{175}
+\entry {Making a tag table automatically}{213}
+\entry {Making a tag table manually}{277}
+\entry {Making cross references}{65}
+\entry {Making line and page breaks}{132}
+\entry {Making lists and tables}{97}
+\entry {Man page output, not supported}{5}
+\entry {Man page, reference to}{74}
+\entry {Manual characteristics, printed}{7}
+\entry {Manual, referring to as a whole}{71}
+\entry {\code {\var {manual}-noderename.cnf}}{230}
+\entry {Margins on page, not controllable}{184}
+\entry {Marking text within a paragraph}{76}
+\entry {Marking words and phrases}{76}
+\entry {Masculine ordinal}{123}
+\entry {Master menu}{39}
+\entry {Mathematical expressions, inserting}{124}
+\entry {\code {MAX_HEADER_LEVEL}}{200}
+\entry {\code {MAX_MACRO_CALL_NESTING}}{204}
+\entry {Menu description, start}{18}
+\entry {Menu entries with two colons}{62}
+\entry {Menu example}{63}
+\entry {Menu location}{61}
+\entry {Menu parts}{62}
+\entry {Menu writing}{61}
+\entry {Menu, master}{39}
+\entry {\code {MENU_ENTRY_COLON}}{204}
+\entry {\code {MENU_SYMBOL}}{200}
+\entry {Menus}{61}
+\entry {Menus generated with indices}{44}
+\entry {Menus, in Info format}{281}
+\entry {Menus, omitting with \option {--no-headers}}{190}
+\entry {Menus, omitting with \option {--plaintext}}{192}
+\entry {META key}{79}
+\entry {Meta keys, specifying}{79}
+\entry {Meta-syntactic chars for arguments}{138}
+\entry {Methods, object-oriented}{145}
+\entry {Millimeters}{109}
+\entry {Mils, argument to \code address@hidden
+\entry {Minimal requirements for formatting}{181}
+\entry {Minimal Texinfo file (requirements)}{10}
+\entry {Minus sign}{127}
+\entry {Mismatched HTML cross reference source and target}{228}
+\entry {Mistakes, catching}{271}
+\entry {Mode, using Texinfo}{16}
+\entry {\code {MONOLITHIC}}{200}
+\entry {monolithic manuals, for HTML cross references}{229}
+\entry {Monospace font}{86}
+\entry {Mozilla}{4}
+\entry {Multiple dashes in source}{9}
+\entry {Multiple spaces}{119}
+\entry {Multitable column widths}{103}
+\entry {Multitable rows}{103}
+\entry {Must have in Texinfo file}{10}
+\initial {N}
+\entry {Names for indices}{114}
+\entry {Names of index files}{175}
+\entry {Names of macros, valid characters of}{162}
+\entry {Names recommended for keys}{79}
+\entry {Naming a `Top' Node in references}{71}
+\entry {NASA, as acronym}{83}
+\entry {Navigation bar, in HTML output}{221}
+\entry {Navigation links, omitting}{190}
+\entry {Navigation panel, bottom of page}{202}
+\entry {Need space at page bottom}{135}
+\entry {Nesting conditionals}{160}
+\entry {New index defining}{115}
+\entry {New Info file, listing it in \file {dir} file}{215}
+\entry {New Texinfo commands, defining}{162}
+\entry {Newlines, avoiding in conditionals}{155}
+\entry {\code {\file {NEWS} file for Texinfo}}{160}
+\entry {Next node of Top node}{57}
+\entry {\code {NO_CSS}}{200}
+\entry {\code {NO_USE_SETFILENAME}}{204}
+\entry {\code {NO_WARN}}{196}
+\entry {Node line requirements}{55}
+\entry {Node line writing}{54}
+\entry {node name expansion, in HTML cross references}{225}
+\entry {Node names must be unique}{55}
+\entry {Node names, choosing}{54}
+\entry {Node names, invalid characters in}{56}
+\entry {Node renaming, and preserving links}{230}
+\entry {Node separators, omitting with \option {--no-headers}}{190}
+\entry {Node separators, omitting with \option {--plaintext}}{192}
+\entry {Node, `Top'}{38}
+\entry {Node, defined}{53}
+\entry {\code {NODE_FILE_EXTENSION}}{201}
+\entry {\code {NODE_FILENAMES}}{204}
+\entry {\code {NODE_FILES}}{196}
+\entry {\code {NODE_NAME_IN_INDEX}}{204}
+\entry {\code {NODE_NAME_IN_MENU}}{204}
+\entry {\code {noderename.cnf}}{230}
+\entry {Nodes in other Info files}{63}
+\entry {Nodes, catching mistakes}{271}
+\entry {Nodes, checking for badly referenced}{275}
+\entry {Nodes, deleting or renaming}{58}
+\entry {Non-breakable space, fixed}{134}
+\entry {Non-breakable space, variable}{134}
+\entry {\code {none\r {, value for \code address@hidden
+\entry {Nonsplit manuals, Info format of}{278}
+\entry {Normalization Form C, Unicode}{227}
+\entry {Not ending a sentence}{120}
+\entry {\code {novalidate}}{196}
+\entry {Number sign, inserting}{118}
+\entry {\code {NUMBER_FOOTNOTES}}{196}
+\entry {\code {NUMBER_SECTIONS}}{196}
+\entry {Numbering of floats}{106}
+\initial {O}
+\entry {O'Dea, Brendan}{5}
+\entry {\o {}}{123}
+\entry {\O {}}{123}
+\entry {Object-oriented programming}{144}
+\entry {Oblique font}{86}
+\entry {Obtaining \TeX {}}{186}
+\entry {Occurrences, listing with \code address@hidden
+\entry {Octotherp, inserting}{118}
+\entry {\oe {}}{123}
+\entry {\OE {}}{123}
+\entry {Ogonek diacritic}{122}
+\entry {Old nodes, preserving links to}{230}
+\entry {Omitting indentation}{94}
+\entry {One-argument form of cross references}{68}
+\entry {\code {OPEN_QUOTE_SYMBOL}}{204}
+\entry {Optional and repeated arguments}{138}
+\entry {Options for \code {makeinfo}}{188}
+\entry {Options for \code {texi2any}}{188}
+\entry {Options of \command {texi2html}}{209}
+\entry {Options, customization variables for}{196}
+\entry {Ordinals, Romance}{123}
+\entry {Ordinary \TeX {} commands, using}{154}
+\entry {Orphans, preventing}{135}
+\entry {Other Info files' nodes}{63}
+\entry {\code {OUT}}{196}
+\entry {\code {OUTFILE}}{196}
+\entry {Outline of file structure, showing}{19}
+\entry {Output document strings, internationalization of}{207}
+\entry {Output file name, required}{30}
+\entry {Output file splitting}{193}
+\entry {Output formats}{4}
+\entry {Output formats, supporting more}{6}
+\entry {Output, printed through \command {texi2any}}{194}
+\entry {\code {OUTPUT_ENCODING_NAME}}{204}
+\entry {Outputting HTML}{221}
+\entry {Overfull \samp {hboxes}}{183}
+\entry {Overview of Texinfo}{3}
+\entry {\code {OVERVIEW_LINK_TO_TOC}}{205}
+\entry {Owner of copyright for FSF works}{33}
+\initial {P}
+\entry {\code {PACKAGE}}{205}
+\entry {\code {PACKAGE_AND_VERSION}}{205}
+\entry {\code {PACKAGE_NAME}}{205}
+\entry {\code {PACKAGE_URL}}{205}
+\entry {\code {PACKAGE_VERSION}}{205}
+\entry {Page breaks, awkward}{132}
+\entry {Page breaks, forcing}{134}
+\entry {Page delimiter in Texinfo mode}{19}
+\entry {Page headings}{266}
+\entry {Page numbering}{266}
+\entry {Page sizes for books}{183}
+\entry {Page sizes, customized}{184}
+\entry {\code {page-delimiter}}{19}
+\entry {Pages, starting odd}{40}
+\entry {Paper size, A4}{184}
+\entry {Paragraph indentation control}{42}
+\entry {Paragraph, marking text within}{76}
+\entry {\code {paragraphindent}}{196}
+\entry {Parameters to macros}{162}
+\entry {Parentheses in node name}{56}
+\entry {Parsing errors}{211}
+\entry {Part of file formatting and printing}{24}
+\entry {Part pages}{50}
+\entry {Parts of a cross reference}{66}
+\entry {Parts of a master menu}{39}
+\entry {Parts of a menu}{62}
+\entry {Patches, contributing}{3}
+\entry {\code {pdf image inclusions}}{107}
+\entry {PDF output}{185}
+\entry {PDF output, overview}{5}
+\entry {\code {pdftex}}{185}
+\entry {\code {pdftex\r {, and images}}}{107}
+\entry {\code {pdftexi2dvi}}{177}
+\entry {Period in node name}{56}
+\entry {Periods, inserting}{120}
+\entry {Perl format strings for translation}{208}
+\entry {Perl POD, converting to Texinfo}{209}
+\entry {Permissions text, including}{33}
+\entry {Permissions, printed}{36}
+\entry {\code {pg} (program) index}{112}
+\entry {Picas}{108}
+\entry {Pictures, inserting}{107}
+\entry {Pinard, Fran\,{c}ois}{14}
+\entry {Plain \TeX {}}{154}
+\entry {Plain text output with \option {--plaintext}}{192}
+\entry {Plain text output, overview}{4}
+\entry {\code {png image format}}{107}
+\entry {POD, converting to Texinfo}{209}
+\entry {\code {pod2texi}}{209}
+\entry {Point, indicating in a buffer}{129}
+\entry {Pointer creation with \code {makeinfo}}{57}
+\entry {Pointer validation with \code {makeinfo}}{194}
+\entry {Pointer validation, suppressing}{176}
+\entry {Pointer validation, suppressing from command line}{191}
+\entry {Points (dimension)}{108}
+\entry {PostScript output, overview}{5}
+\entry {Pounds symbol}{126}
+\entry {\code {PRE_ABOUT}}{201}
+\entry {\code {PRE_BODY_CLOSE}}{201}
+\entry {Preamble, in Info format}{279}
+\entry {Predefined names for indices}{114}
+\entry {Preface, etc., and Docbook}{48}
+\entry {\code {PREFIX}}{205}
+\entry {Preparing for \TeX {}}{181}
+\entry {Preserving HTML links to old nodes}{230}
+\entry {Preventing first paragraph indentation}{43}
+\entry {Preventing line and page breaks}{132}
+\entry {Print and format in Texinfo mode}{179}
+\entry {Print, format from Emacs shell}{179}
+\entry {Printed book and manual characteristics}{7}
+\entry {Printed output, indicating}{128}
+\entry {Printed output, through \command {texi2any}}{194}
+\entry {Printed permissions}{36}
+\entry {Printing a region or buffer}{24}
+\entry {Printing an index}{44}
+\entry {Printing cost, reducing}{85}
+\entry {Printing cropmarks}{185}
+\entry {Printing DVI files, on MS-DOS/MS-Windows}{178}
+\entry {Printing hardcopy}{175}
+\entry {Problems, catching}{271}
+\entry {\code {PROGRAM}}{205}
+\entry {Program names, indicating}{82}
+\entry {\code {PROGRAM_NAME_IN_FOOTER}}{201}
+\entry {Programming, glyphs for}{127}
+\entry {Pronounciation of Texinfo}{3}
+\entry {Prototype row, column widths defined by}{103}
+\initial {Q}
+\entry {Quotation characters (`'), in source}{123}
+\entry {Quotation marks, French}{124}
+\entry {Quotation marks, German}{124}
+\entry {Quotation marks, inserting}{123}
+\entry {Quotations}{88}
+\entry {Quotations in smaller fonts}{92}
+\entry {Quote characters, inserting}{119}
+\entry {Quoting, automatic for some macros}{164}
+\initial {R}
+\entry {Ragged left, without filling}{93}
+\entry {Ragged right, with filling}{94}
+\entry {Ragged right, without filling}{93}
+\entry {Raising and lowering sections}{51}
+\entry {Raw formatter commands}{154}
+\entry {raw text output}{197}
+\entry {RCS $Id}{261}
+\entry {Recommended names for keys}{79}
+\entry {Rectangle, black in hardcopy}{183}
+\entry {Recursive macro invocations}{163}
+\entry {Reducing font size}{85}
+\entry {Reference implementation}{187}
+\entry {Reference to @-commands}{231}
+\entry {References}{65}
+\entry {References using \code address@hidden
+\entry {References using \code address@hidden
+\entry {References using \code address@hidden
+\entry {References using \code address@hidden
+\entry {Referring to an entire manual}{71}
+\entry {Referring to other Info files}{63}
+\entry {Region formatting and printing}{24}
+\entry {Region printing in Texinfo mode}{179}
+\entry {Registered symbol}{126}
+\entry {Regular expression, for \samp {#line}}{170}
+\entry {Reid, Brian}{14}
+\entry {\code {RENAMED_NODES_FILE}}{205, 230}
+\entry {\code {RENAMED_NODES_REDIRECTIONS}}{205}
+\entry {Renaming nodes, and preserving links}{230}
+\entry {Repeated and optional arguments}{138}
+\entry {Reporting bugs}{3}
+\entry {Required in Texinfo file}{10}
+\entry {Requirements for formatting}{181}
+\entry {Requirements for include files}{173}
+\entry {Requirements for updating commands}{22}
+\entry {Reserved words, indicating}{77}
+\entry {Restrictions on node names}{55}
+\entry {Result of an expression}{128}
+\entry {Return type, own line for}{142}
+\entry {\code {ridt.eps}}{109}
+\entry {Right quotation marks}{124}
+\entry {Right-pointing angle quotation marks}{124}
+\entry {Ring accent}{122}
+\entry {Roman font}{86}
+\entry {Romance ordinals}{123}
+\entry {Rounded rectangles, around text}{96}
+\entry {Rows, of a multitable}{103}
+\entry {Running an Info formatter}{24}
+\entry {Running macros}{163}
+\entry {Running \code {makeinfo} in Emacs}{211}
+\initial {S}
+\entry {S-expressions, output format}{197}
+\entry {Sample \code address@hidden file}{173}
+\entry {Sample function definition}{146}
+\entry {Sample Texinfo file, no comments}{260}
+\entry {Sample Texinfo file, with comments}{12}
+\entry {Sample Texinfo files}{260}
+\entry {Sample texts, GNU}{261}
+\entry {Sans serif font}{86}
+\entry {Scaled points}{109}
+\entry {Scaling images}{108}
+\entry {Schwab, Andreas}{14}
+\entry {Scribe}{14}
+\entry {Sea surges}{72}
+\entry {Sectioning}{46}
+\entry {Sectioning structure of a file, showing}{19}
+\entry {Sections, raising and lowering}{51}
+\entry {Semantic markup}{3}
+\entry {Sentence ending punctuation}{121}
+\entry {Sentence non-ending punctuation}{120}
+\entry {Sentences, spacing after}{121}
+\entry {\samp {\r {Separate}} footnote style}{110}
+\entry {Sequence of clicks}{130}
+\entry {SGML-tools output format}{6}
+\entry {Sharp S}{123}
+\entry {Sharp sign (not), inserting}{118}
+\entry {Shell formatting with \code {tex} and \code {texindex}}{175}
+\entry {Shell printing, on MS-DOS/MS-Windows}{178}
+\entry {Shell, format, print from}{179}
+\entry {Shell, running \code {makeinfo} in}{211}
+\entry {Short captions, for lists of floats}{106}
+\entry {Short table of contents}{37}
+\entry {\code {SHORTEXTN}}{201}
+\entry {\code {SHOW_MENU}}{196, 205}
+\entry {\code {SHOW_TITLE}}{201}
+\entry {Showing the sectioning structure of a file}{19}
+\entry {Showing the structure of a file}{274}
+\entry {Shrubbery}{158}
+\entry {\code {SILENT}}{196}
+\entry {\code {SIMPLE_MENU}}{201}
+\entry {Single angle quotation marks}{124}
+\entry {Single guillemets}{124}
+\entry {Single left-pointing angle quotation mark}{124}
+\entry {Single low-9 quotation mark}{124}
+\entry {Single quotation marks}{124}
+\entry {Single right-pointing angle quotation mark}{124}
+\entry {Site-wide Texinfo configuration file}{182}
+\entry {Size of printed book}{183}
+\entry {Slanted font}{86}
+\entry {Slanted typewriter font, for \code address@hidden
+\entry {Small book size}{183}
+\entry {Small caps font}{85}
+\entry {Small examples}{92}
+\entry {Small verbatim}{91}
+\entry {Smaller fonts}{85}
+\entry {\code {SORT_ELEMENT_COUNT}}{205}
+\entry {\code {SORT_ELEMENT_COUNT_WORDS}}{205}
+\entry {Sorting indices}{175}
+\entry {Sorting nodes by size}{205}
+\entry {Source file format}{4}
+\entry {Source files, characters used}{9}
+\entry {Space, after sentences}{121}
+\entry {Space, inserting horizontal}{119}
+\entry {Space, inserting vertical}{134}
+\entry {Spaces in macros}{162}
+\entry {Spaces in node name}{56}
+\entry {Spaces, in menus}{61}
+\entry {Spacing, at ends of sentences}{121}
+\entry {Spacing, in the middle of sentences}{120}
+\entry {Spacing, inserting}{119}
+\entry {Special characters, inserting}{117}
+\entry {Special displays}{105}
+\entry {Special insertions}{117}
+\entry {Specification of Info format}{278}
+\entry {Specifying index entries}{113}
+\entry {spell checking}{197}
+\entry {Spelling of Texinfo}{3}
+\entry {\code {SPLIT}}{196}
+\entry {Split HTML output}{221}
+\entry {split manuals, for HTML cross references}{229}
+\entry {Split manuals, Info format of}{278}
+\entry {\code {SPLIT_SIZE}}{196}
+\entry {Splitting an Info file manually}{277}
+\entry {Splitting of output files}{193}
+\entry {\ss {}}{123}
+\entry {Stallman, Richard M.}{14}
+\entry {Start of header line}{30}
+\entry {Starting chapters}{40}
+\entry {stripping Texinfo commands}{197}
+\entry {Structure of a file, showing}{19}
+\entry {Structure, catching mistakes in}{271}
+\entry {Structure, of Texinfo documents}{6}
+\entry {Structuring of chapters}{46}
+\entry {\code {SUBDIR}}{196}
+\entry {Subsection-like commands}{49}
+\entry {Subsub sectioning commands}{50}
+\entry {Suggestions for Texinfo, making}{3}
+\entry {Summary of document}{40}
+\entry {Suppressing first paragraph indentation}{43}
+\entry {Suppressing indentation}{94}
+\entry {SVG images, used in Docbook}{107}
+\entry {SXML output}{197}
+\entry {Syntactic conventions}{9}
+\entry {Syntactic tokens, indicating}{77}
+\entry {Syntax details, \samp {#line}}{170}
+\entry {Syntax tree representation of documents}{187}
+\entry {Syntax, of @-commands}{253}
+\entry {Syntax, optional & repeated arguments}{138}
+\entry {\code {SystemLiteral}}{202}
+\initial {T}
+\entry {Table of contents}{37}
+\entry {Table of contents, after title page}{38}
+\entry {Table of contents, for floats}{106}
+\entry {Tables and lists, making}{97}
+\entry {Tables with indexing}{102}
+\entry {Tables, making multi-column}{102}
+\entry {Tables, making two-column}{100}
+\entry {Tabs; don't use!}{9}
+\entry {Tag table, in Info format}{280}
+\entry {Tag table, making automatically}{213}
+\entry {Tag table, making manually}{277}
+\entry {Targets for cross references, arbitrary}{58}
+\entry {Template for a definition}{136}
+\entry {\code {TEST}}{205}
+\entry {Testing for Texinfo commands}{160}
+\entry {Tests, of Texinfo language}{187}
+\entry {\TeX {} and \samp {#line} directives}{170}
+\entry {\TeX {} commands, using ordinary}{154}
+\entry {\TeX {} index sorting}{175}
+\entry {\TeX {} input initialization}{181}
+\entry {\TeX {} logo}{125}
+\entry {\TeX {}, how to obtain}{186}
+\entry {\code {texi-elements-by-size}}{205}
+\entry {\code {texi2any}}{188}
+\entry {\code {texi2any} options}{188}
+\entry {\command {texi2any}, as reference implementation}{187}
+\entry {\code {texi2dvi}}{176}
+\entry {\code {TEXI2DVI}}{205}
+\entry {\code {texi2dvi \r {(shell script)}}}{176}
+\entry {\code {texi2html}}{209}
+\entry {\code {TEXI2HTML}}{206}
+\entry {\file {texi2oldapi.texi}, for \command {texi2any}}{210}
+\entry {\code {texindex}}{175}
+\entry {Texinfo commands, defining new}{162}
+\entry {Texinfo commands, testing for}{160}
+\entry {Texinfo document structure}{6}
+\entry {Texinfo file beginning}{28}
+\entry {Texinfo file ending}{44}
+\entry {Texinfo file header}{29}
+\entry {Texinfo file minimum}{10}
+\entry {Texinfo file sectioning structure, showing}{19}
+\entry {Texinfo history}{14}
+\entry {Texinfo language tests}{187}
+\entry {Texinfo mode}{16}
+\entry {Texinfo overview}{3}
+\entry {Texinfo parsers, discouraging more}{6}
+\entry {Texinfo printed book characteristics}{7}
+\entry {Texinfo requires \code address@hidden
+\entry {Texinfo XML output, overview}{5}
+\entry {Texinfo, introduction to}{4}
+\entry {\code {texinfo-bright-colors.css}}{222}
+\entry {\code {texinfo.cnf}}{31}
+\entry {\code {texinfo.cnf \r {installation}}}{182}
+\entry {\code {texinfo.dtd}}{5}
+\entry {\code {texinfo.tex\r {, installing}}}{181}
+\entry {\code {TEXINFO_COLUMN_FOR_DESCRIPTION}}{206}
+\entry {\code {texinfo_document \r {Gettext domain}}}{208}
+\entry {\code {TEXINFO_DTD_VERSION}}{206}
+\entry {\code {TEXINFO_OUTPUT_FORMAT}}{193, 196}
+\entry {\code {TEXINPUTS}}{182}
+\entry {text constructs, Info format}{281}
+\entry {Text width and height}{184}
+\entry {Text, conditionally visible}{152}
+\entry {Text, marking up}{76}
+\entry {\code {Text::Unidecode}}{207}
+\entry {\code {TEXTCONTENT_COMMENT}}{206}
+\entry {Textual glyphs}{125}
+\entry {Thin space between number, dimension}{122}
+\entry {Thorn}{123}
+\entry {Three-argument form of cross references}{69}
+\entry {Tie-after accent}{122}
+\entry {Tied space}{134}
+\entry {Tilde accent}{122}
+\entry {\code {time-stamp.el}}{262}
+\entry {Tips}{255}
+\entry {Title page}{33}
+\entry {Title page, bastard}{34}
+\entry {Titlepage end starts headings}{37}
+\entry {\code {TOC_LINKS}}{201}
+\entry {Top node}{38}
+\entry {Top node example}{39}
+\entry {Top node is first}{56}
+\entry {\code {TOP_FILE}}{201}
+\entry {\code {TOP_NODE_FILE}}{201}
+\entry {\code {TOP_NODE_FILE_TARGET}}{201}
+\entry {\code {TOP_NODE_UP}}{206}
+\entry {\code {TOP_NODE_UP_URL}}{201}
+\entry {\code {tp} (data type) index}{112}
+\entry {Translating strings in output documents}{207}
+\entry {\code {TRANSLITERATE_FILE_NAMES}}{196}
+\entry {Transliteration of 8-bit characters in HTML cross references}{227}
+\entry {Tree representation of documents}{187}
+\entry {tree representation, for debugging}{197}
+\entry {Tree structuring}{46}
+\entry {\code {TREE_TRANSFORMATIONS}}{206}
+\entry {Two `First' Lines for \code address@hidden
+\entry {Two letter names for indices}{114}
+\entry {Two named items for \code address@hidden
+\entry {Two part menu entry}{62}
+\entry {Two-argument form of cross references}{68}
+\entry {\file {txi-\var {cc}.tex}}{149}
+\entry {\code {txixml2texi}}{5}
+\entry {Typed functions}{141}
+\entry {Typed variables}{142}
+\entry {Typewriter font}{86}
+\initial {U}
+\entry {Ugly black rectangles in hardcopy}{183}
+\entry {Umlaut accent}{122}
+\entry {Unbreakable space, fixed}{134}
+\entry {Unbreakable space, variable}{134}
+\entry {Uncluttered menu entry}{62}
+\entry {Undefining macros}{163}
+\entry {Underbar accent}{122}
+\entry {Underdot accent}{122}
+\entry {Underscore, breakpoint within \code address@hidden
+\entry {undirected single quote}{119}
+\entry {Unicode quotation characters}{123}
+\entry {Uniform resource locator, indicating}{84}
+\entry {Uniform resource locator, referring to}{74}
+\entry {Unique index entries}{113}
+\entry {Unique node names requirement}{55}
+\entry {Unnumbered float, creating}{105}
+\entry {Unprocessed text}{10}
+\entry {Unsplit file creation}{276}
+\entry {Up node of Top node}{56}
+\entry {\code {UPDATED \r {Automake variable}}}{262}
+\entry {Updating nodes and menus}{19}
+\entry {Updating requirements}{22}
+\entry {URI syntax for Info}{7}
+\entry {URL, indicating}{84}
+\entry {URL, referring to}{74}
+\entry {\code {us-ascii} encoding, and translations}{208}
+\entry {Usage tips}{255}
+\entry {\code {USE_ACCESSKEY}}{201}
+\entry {\code {USE_ISO}}{201}
+\entry {\code {USE_LINKS}}{202}
+\entry {\code {USE_NODE_TARGET}}{207}
+\entry {\code {USE_NODES}}{207}
+\entry {\code {USE_NUMERIC_ENTITY}}{207}
+\entry {\code {USE_REL_REV}}{202}
+\entry {\code {USE_SETFILENAME_EXTENSION}}{207}
+\entry {\code {USE_TITLEPAGE_FOR_TITLE}}{207}
+\entry {\code {USE_UNIDECODE}}{207}
+\entry {\code {USE_UP_NODE_FOR_ELEMENT_UP}}{207}
+\entry {User input}{78}
+\entry {User options, marking}{141}
+\entry {User-defined Texinfo commands}{162}
+\entry {Using \code {Info-validate}}{276}
+\entry {Using Texinfo in general}{4}
+\entry {UTF-8}{123}
+\initial {V}
+\entry {Validating a large file}{276}
+\entry {Validation of pointers}{194}
+\entry {Value of an expression, indicating}{128}
+\entry {Variables, in typed languages}{142}
+\entry {Variables, object-oriented}{144}
+\entry {Verbatim copying license}{264}
+\entry {Verbatim environment}{90}
+\entry {Verbatim in-line text}{80}
+\entry {Verbatim, include file}{91}
+\entry {Verbatim, small}{91}
+\entry {\code {VERBOSE}}{196}
+\entry {\code {VERSION \r {Automake variable}}}{262}
+\entry {Version control keywords, preventing expansion of}{134}
+\entry {Version number, for install-info}{220}
+\entry {Versions of Texinfo, adapting to}{160}
+\entry {\code {VERTICAL_HEAD_NAVIGATION}}{202}
+\entry {Vertically holding text together}{135}
+\entry {Visibility of conditional text}{152}
+\entry {Visualizing Texinfo CSS}{222}
+\entry {\code {vr} (variable) index}{112}
+\initial {W}
+\entry {W3 consortium}{4}
+\entry {Weinberg, Zack}{14}
+\entry {Weisshaus, Melissa}{14}
+\entry {White space in node name}{56}
+\entry {Whitespace in macros}{162}
+\entry {Whitespace, collapsed around continuations}{137}
+\entry {Whitespace, controlling in conditionals}{155}
+\entry {Whitespace, inserting}{119}
+\entry {Whole manual, in Info format}{278}
+\entry {Width of images}{108}
+\entry {Width of text area}{184}
+\entry {Widths, defining multitable column}{103}
+\entry {Wildcards}{175}
+\entry {word counting}{197}
+\entry {Words and phrases, marking them}{76}
+\entry {\code {WORDS_IN_PAGE}}{202}
+\entry {Writing a menu}{61}
+\entry {Writing an \code address@hidden line}{54}
+\entry {Writing index entries}{113}
+\initial {X}
+\entry {\code {xdvi}}{4}
+\entry {XML Docbook output, overview}{5}
+\entry {XML Texinfo output, overview}{5}
+\entry {XML, including raw}{154}
+\entry {\code {XPM image format}}{107}
+\entry {\code {XREF_USE_FLOAT_LABEL}}{202}
+\entry {\code {XREF_USE_NODE_NAME_ARG}}{202}
+\entry {XZ-compressed dir files, reading}{218}
+\initial {Y}
+\entry {Years, in copyright line}{33}
+\initial {Z}
+\entry {Zaretskii, Eli}{14}
+\entry {Zuhn, David D.}{14}
+\entry {\th {}}{123}
+\entry {\TH {}}{123}

Added: trunk/texindex/tests/texinfo.cps-good
===================================================================
--- trunk/texindex/tests/texinfo.cps-good                               (rev 0)
+++ trunk/texindex/tests/texinfo.cps-good       2014-12-03 00:57:15 UTC (rev 
5946)
@@ -0,0 +1,1502 @@
+\initial {!}
+\entry {\exclamdown {}}{123}
+\initial {"}
+\entry {" (undirected double quote character)}{124}
+\entry {\quotedblbase {} (double low-9 quotation mark)}{124}
+\initial {#}
+\entry {\samp {#line} directive}{169}
+\entry {\samp {#line} directives, not processing with \TeX {}}{170}
+\entry {\samp {#line} syntax details}{170}
+\initial {$}
+\entry {$Id}{261}
+\entry {$Id expansion, preventing}{134}
+\initial {'}
+\entry {'}{124}
+\entry {'\w {}'}{124}
+\initial {(}
+\entry {(dir) as Up node of Top node}{56}
+\initial {,}
+\entry {\quotesinglbase {} (single low-9 quotation mark)}{124}
+\initial {-}
+\entry {-, breakpoint within \code address@hidden
+\entry {\code {--add-once\r {, for \command {install-info}}}}{218}
+\entry {\code {--align=\var {column}\r {, for \command {install-info}}}}{218}
+\entry {\code {--append-new-sections\r {, for \command {install-info}}}}{218}
+\entry {\code {--calign=\var {column}\r {, for \command {install-info}}}}{218}
+\entry {\code {--command\r {, for \command {texi2dvi}}}}{177}
+\entry {\code {--commands-in-node-names}}{188}
+\entry {\code {--conf-dir=\var {path}}}{188}
+\entry {\code {--css-include}}{188}
+\entry {\code {--css-ref}}{188}
+\entry {\code {--debug\r {, for \command {install-info}}}}{218}
+\entry {\code {--delete\r {, for \command {install-info}}}}{218}
+\entry {\code {--description=\var {text}\r {, for \command 
{install-info}}}}{218}
+\entry {\code {--dir-file=\var {name}\r {, for \command {install-info}}}}{218}
+\entry {\code {--disable-encoding}}{189}
+\entry {\code {--docbook}}{189}
+\entry {\code {--document-language}}{189}
+\entry {\code {--dry-run\r {, for \command {install-info}}}}{219}
+\entry {\code {--dvi}}{189}
+\entry {\code {--dvipdf}}{189}
+\entry {\code {--dvipdf\r {, for \command {texi2dvi}}}}{177}
+\entry {\code {--enable-encoding}}{189}
+\entry {\code {--entry=\var {text}\r {, for \command {install-info}}}}{219}
+\entry {\code {--error-limit=\var {limit}}}{189}
+\entry {\code {--fill-column=\var {width}}}{189}
+\entry {\code {--footnote-style=\var {style}}}{189}
+\entry {\code {--force}}{189}
+\entry {\code {--help\r {, for \command {texi2any}}}}{189}
+\entry {\code {--help\r {, for \command {texindex}}}}{219}
+\entry {\code {--html}}{189}
+\entry {\code {--ifdocbook}}{190}
+\entry {\code {--ifhtml}}{190}
+\entry {\code {--ifinfo}}{190}
+\entry {\code {--ifplaintext}}{190}
+\entry {\code {--iftex}}{190}
+\entry {\code {--ifxml}}{190}
+\entry {\code {--info}}{190}
+\entry {\code {--info-dir=\var {dir}\r {, for \command {install-info}}}}{219}
+\entry {\code {--info-file=\var {file}\r {, for \command {install-info}}}}{219}
+\entry {\code {--infodir=\var {dir}\r {, for \command {install-info}}}}{219}
+\entry {\code {--init-file=\var {file}}}{190}
+\entry {\code {--internal-links=\var {file}}}{190}
+\entry {\code {--item=\var {text}\r {, for \command {install-info}}}}{219}
+\entry {\code {--keep-old\r {, for \command {install-info}}}}{219}
+\entry {\code {--language\r {, for \command {texi2dvi}}}}{177}
+\entry {\code {--macro-expand=\var {file}}}{190}
+\entry {\code {--max-width=\var {column}\r {, for \command 
{install-info}}}}{219}
+\entry {\code {--maxwidth=\var {column}\r {, for \command 
{install-info}}}}{219}
+\entry {\code {--menuentry=\var {text}\r {, for \command {install-info}}}}{219}
+\entry {\code {--name=\var {text}\r {, for \command {install-info}}}}{219}
+\entry {\code {--no-headers}}{190, 205}
+\entry {\code {--no-ifdocbook}}{191}
+\entry {\code {--no-ifhtml}}{191}
+\entry {\code {--no-ifinfo}}{191}
+\entry {\code {--no-ifplaintext}}{191}
+\entry {\code {--no-iftex}}{191}
+\entry {\code {--no-ifxml}}{191}
+\entry {\code {--no-indent\r {, for \command {install-info}}}}{219}
+\entry {\code {--no-node-files}}{191}
+\entry {\code {--no-number-footnotes}}{191}
+\entry {\code {--no-number-sections}}{191}
+\entry {\code {--no-pointer-validate}}{191}
+\entry {\code {--no-split}}{193}
+\entry {\code {--no-validate}}{191}
+\entry {\code {--no-warn}}{191}
+\entry {\code {--node-files}}{191}
+\entry {\code {--node-files\r {, and HTML cross references}}}{229}
+\entry {\code {--number-sections}}{191}
+\entry {\code {--output=\var {file}}}{192}
+\entry {\code {--outputindent}}{192}
+\entry {\code {--paragraph-indent=\var {indent}}}{192}
+\entry {\code {--pdf}}{192}
+\entry {\code {--pdf\r {, for \command {texi2dvi}}}}{177}
+\entry {\code {--plaintext}}{192}
+\entry {\code {--ps}}{192}
+\entry {\code {--ps\r {, for \command {texi2dvi}}}}{177}
+\entry {\code {--quiet\r {, for \command {install-info}}}}{219}
+\entry {\code {--recode\r {, for \command {texi2dvi}}}}{177}
+\entry {\code {--recode-from\r {, for \command {texi2dvi}}}}{177}
+\entry {\code {--regex=\var {regex}\r {, for \command {install-info}}}}{220}
+\entry {\code {--remove\r {, for \command {install-info}}}}{220}
+\entry {\code {--remove-exactly\r {, for \command {install-info}}}}{220}
+\entry {\code {--section \var {regex} \var {sec}\r {, for \command 
{install-info}}}}{220}
+\entry {\code {--section=\var {sec}\r {, for \command {install-info}}}}{220}
+\entry {\code {--set-customization-variable \var {var}=\var {value}}}{193}
+\entry {\code {--silent\r {, for \command {install-info}}}}{219}
+\entry {\code {--split-size=\var {num}}}{193}
+\entry {\code {--split=\var {how}}}{193}
+\entry {\code {--test\r {, for \command {install-info}}}}{220}
+\entry {\code {--translate-file\r {, for \command {texi2dvi}}}}{177}
+\entry {\code {--transliterate-file-names}}{193}
+\entry {\code {--verbose}}{193}
+\entry {\code {--version\r {, for \command {install-info}}}}{220}
+\entry {\code {--version\r {, for \command {texi2any}}}}{193}
+\entry {\code {--xml}}{193}
+\entry {\code {--Xopt \var {str}}}{193}
+\entry {\code {-c \var {var}=\var {value}}}{193}
+\entry {\code {-D \var {var}}}{188}
+\entry {\code {-e \var {limit}}}{189}
+\entry {\code {-E \var {file}}}{190}
+\entry {\code {-f \var {width}}}{189}
+\entry {\code {-F}}{189}
+\entry {\code {-h}}{189}
+\entry {\code {-I \var {path}}}{190}
+\entry {\code {-o \var {file}}}{192}
+\entry {\code {-p \var {indent}}}{192}
+\entry {\code {-P \var {path}}}{192}
+\entry {\code {-s \var {style}}}{189}
+\entry {\code {-V}}{193}
+\initial {.}
+\entry {\b {.cshrc} initialization file}{181}
+\entry {\b {.profile} initialization file}{181}
+\initial {<}
+\entry {\guillemetleft {}}{124}
+\entry {\guilsinglleft {}}{124}
+\entry {\code {<abbr>} and \code {<abbrev>} tags}{83}
+\entry {\code {<acknowledgements>} Docbook tag}{48}
+\entry {\code {<acronym>} tag}{83}
+\entry {\code {<blockquote>} HTML tag}{88}
+\entry {\code {<body>} text, customizing}{198}
+\entry {\code {<caution>} Docbook tag}{88}
+\entry {\code {<chapter>} Docbook tag}{48}
+\entry {\code {<colophon>} Docbook tag}{48}
+\entry {\code {<dedication>} Docbook tag}{48}
+\entry {\code {<head>} HTML tag, and \code {<link>}}{202}
+\entry {\code {<important>} Docbook tag}{88}
+\entry {<lineannotation> Docbook tag}{86}
+\entry {\code {<link>} HTML tag, in \code {<head>}}{202}
+\entry {\code {<meta>} HTML tag, and charset specification}{150}
+\entry {<meta> HTML tag, and document description}{40}
+\entry {\code {<note>} Docbook tag}{88}
+\entry {\code {<preface>} Docbook tag}{48}
+\entry {\code {<small>} tag}{85}
+\entry {\code {<thead>} HTML/XML tag}{103}
+\entry {\code {<tip>} Docbook tag}{88}
+\entry {\code {<title>} Docbook tag}{48}
+\entry {\code {<title>} HTML tag}{31}
+\entry {\code {<URL...>} convention, not used}{75}
+\entry {\code {<warning>} Docbook tag}{88}
+\initial {>}
+\entry {\guillemetright {}}{124}
+\entry {\guilsinglright {}}{124}
+\initial {?}
+\entry {\questiondown {}}{123}
+\initial address@hidden
+\entry {\samp address@hidden as continuation in definition commands}{137}
+\entry address@hidden list}{231}
+\entry address@hidden syntax}{253}
+\entry address@hidden
+\entry address@hidden in node names}{55}
+\entry address@hidden, customization variables for}{195}
+\entry address@hidden specifications, in CSS files}{222}
+\entry {\code address@hidden file sample}{173}
+\entry {\code address@hidden parts}{62}
+\entry {\code address@hidden line writing}{54}
+\entry {\code address@hidden, for blank items}{98}
+\initial {^}
+\entry {\samp address@hidden for images in Info}{108}
+\initial {_}
+\entry {_, breakpoint within \code address@hidden
+\initial {`}
+\entry {`}{124}
+\entry {`\w {}`}{124}
+\entry {`Top' node naming for references}{71}
+\initial {\\}
+\entry {\samp {{\tt \backslashcurfont }input} source line ignored}{30}
+\initial {8}
+\entry {8-bit characters, in HTML cross references}{227}
+\initial {A}
+\entry {\ordf {}}{123}
+\entry {A4 paper, printing on}{184}
+\entry {A5 paper, printing on}{184}
+\entry {\aa {}}{123}
+\entry {\AA {}}{123}
+\entry {Abbreviations for keys}{79}
+\entry {Abbreviations, tagging}{83}
+\entry {Abstract of document}{40}
+\entry {Abstract syntax tree representation of documents}{187}
+\entry {Accents, inserting}{122}
+\entry {\code {accesskey}, customization variable for}{201}
+\entry {\code {accesskey\r {, in HTML output of menus}}}{62}
+\entry {\code {accesskey\r {, in HTML output of nodes}}}{53}
+\entry {Acronyms, tagging}{83}
+\entry {Acute accent}{122}
+\entry {Adding a new Info file}{215}
+\entry {Additional output formats}{5}
+\entry {Advice on writing entries}{113}
+\entry {\ae {}}{123}
+\entry {\AE {}}{123}
+\entry {\code {after\r {, value for \code address@hidden
+\entry {\code {AFTER_ABOUT}}{198}
+\entry {\code {AFTER_BODY_OPEN}}{198}
+\entry {\code {AFTER_OVERVIEW}}{198}
+\entry {\code {AFTER_TOC_LINES}}{198}
+\entry {Aliases, command}{168}
+\entry {All-permissive copying license}{264}
+\entry {Allow line break}{132}
+\entry {Alphabetical @-command list}{231}
+\entry {Alt attribute for images}{108}
+\entry {Anchors}{58}
+\entry {Angle quotation marks}{124}
+\entry {Another Info directory}{215}
+\entry {Arguments, repeated and optional}{138}
+\entry {ASCII text output with \option {--plaintext}}{192}
+\entry {Aspect ratio of images}{108}
+\entry {At sign, inserting}{117}
+\entry {Auk, bird species}{124}
+\entry {\code {autoexec.bat}}{216}
+\entry {\code {automake\r {, and version info}}}{262}
+\entry {Automatic pointer creation with \code {makeinfo}}{57}
+\entry {Automatic quoting of commas for some macros}{164}
+\entry {Automatically insert nodes, menus}{19}
+\entry {Auxiliary files, avoiding}{176}
+\entry {\code {AVOID_MENU_REDUNDANCY}}{197}
+\initial {B}
+\entry {B5 paper, printing on}{184}
+\entry {Back-end output formats}{4}
+\entry {Backslash in macros}{162}
+\entry {Backslash, and macros}{163}
+\entry {Backslash, in macro arguments}{164}
+\entry {Backslash, inserting}{118}
+\entry {backtick}{119}
+\entry {Badly referenced nodes}{275}
+\entry {\code {BASEFILENAME_LENGTH}}{198, 224}
+\entry {Bastard title page}{34}
+\entry {Batch formatting for Info}{212}
+\entry {Beebe, Nelson}{5}
+\entry {\code {before\r {, value for \code address@hidden
+\entry {\code {BEFORE_OVERVIEW}}{198}
+\entry {\code {BEFORE_TOC_LINES}}{198}
+\entry {Beginning a Texinfo file}{28}
+\entry {Beginning line of a Texinfo file}{30}
+\entry {Berry, Karl}{14}
+\entry {Big points}{108}
+\entry {\code {BIG_RULE}}{198}
+\entry {Black rectangle in hardcopy}{183}
+\entry {Blank lines}{134}
+\entry {Body of a macro}{162}
+\entry {\code {BODYTEXT}}{198}
+\entry {Bold font}{86}
+\entry {Bolio}{14}
+\entry {Book characteristics, printed}{7}
+\entry {Book, printing small}{183}
+\entry {\code {border-pattern} of\ \code {Window}}{144, 145}
+\entry {Bo\TeX {}}{14}
+\entry {Box with rounded corners}{96}
+\entry {Box, ugly black in hardcopy}{183}
+\entry {Brace-delimited conditional text}{155}
+\entry {Brace-delimited flag conditionals}{158}
+\entry {Braces and argument syntax}{253}
+\entry {Braces, in macro arguments}{164}
+\entry {Braces, inserting}{117}
+\entry {Braces, when to use}{8}
+\entry {Breakpoints within urls}{74}
+\entry {Breaks in a line}{132}
+\entry {Breaks, within \code address@hidden
+\entry {Breve accent}{122}
+\entry {Buffer formatting and printing}{24}
+\entry {Bugs, reporting}{3}
+\entry {Bzipped dir files, reading}{218}
+\initial {C}
+\entry {Capitalization of index entries}{113}
+\entry {Captions, for floats}{106}
+\entry {Caron accent}{122}
+\entry {Cascading Style Sheets, and HTML output}{222}
+\entry {Case in node name}{56}
+\entry {Case, not altering in \code address@hidden
+\entry {\code {CASE_INSENSITIVE_FILENAMES}}{198}
+\entry {Catching errors with Info formatting}{271}
+\entry {Catching errors with \TeX {} formatting}{272}
+\entry {Catching mistakes}{271}
+\entry {Catcode for comments in \TeX {}}{10}
+\entry {Categories, choosing}{217}
+\entry {Category codes, of plain \TeX {}}{154}
+\entry {Caveats for macro usage}{165}
+\entry {Cedilla accent}{122}
+\entry {Centimeters}{109}
+\entry {Chapter structuring}{46}
+\entry {\code {CHAPTER_HEADER_LEVEL}}{198}
+\entry {Chapters, formatting one at a time}{176}
+\entry {Character set, declaring}{150}
+\entry {Characteristics, printed books or manuals}{7}
+\entry {Characters, basic input}{9}
+\entry {Characters, invalid in node name}{56}
+\entry {Chassell, Robert J.}{14}
+\entry {Check accent}{122}
+\entry {\code {CHECK_HTMLXREF}}{198}
+\entry {Checking for badly referenced nodes}{275}
+\entry {Checking for Texinfo commands}{160}
+\entry {Checklist for bug reports}{3}
+\entry {Ciceros}{109}
+\entry {Circumflex accent}{122}
+\entry {Click sequences}{130}
+\entry {\code {CLOSE_QUOTE_SYMBOL}}{202}
+\entry {CM-Super fonts}{124}
+\entry {CM-Super fonts, installing}{182}
+\entry {\code {code\r {, value for \code address@hidden
+\entry {Collapsing whitespace around continuations}{137}
+\entry {Colon in node name}{56}
+\entry {Colon, last in \env {INFOPATH}}{216}
+\entry {Column widths, defining for multitables}{103}
+\entry {Combining indices}{114}
+\entry {Comma in node name}{56}
+\entry {Comma, in macro arguments}{163}
+\entry {Comma, inserting}{118}
+\entry {Command aliases}{168}
+\entry {Command definitions}{146}
+\entry {Command names, indicating}{82}
+\entry {Command syntax}{253}
+\entry {Command-line options of \command {texi2html}}{209}
+\entry {Commands in node names}{55}
+\entry {Commands to insert special characters}{117}
+\entry {Commands using raw \TeX {}}{154}
+\entry {Commands, inserting them}{17}
+\entry {Commands, testing for Texinfo}{160}
+\entry {Comments}{10}
+\entry {Comments, in CSS files}{223}
+\entry {compatibility, with \command {texi2html}}{206}
+\entry {Compile command for formatting}{180}
+\entry {\code {COMPLEX_FORMAT_IN_TABLE}}{199}
+\entry {Compressed dir files, reading}{218}
+\entry {Computer Modern fonts}{150}
+\entry {Conditional commands, inline}{155}
+\entry {Conditionally visible text}{152}
+\entry {Conditionals, nested}{160}
+\entry {Conditions for copying Texinfo}{2}
+\entry {Configuration, for HTML cross-manual references}{228}
+\entry {Cons, Lionel}{15, 209}
+\entry {Contents, after title page}{38}
+\entry {Contents, table of}{37}
+\entry {Contents-like outline of file structure}{19}
+\entry {Contexts, of @-commands}{254}
+\entry {Continuation lines in definition commands}{137}
+\entry {Control keys, specifying}{79}
+\entry {Controlling line breaks}{132}
+\entry {Conventions for writing definitions}{146}
+\entry {Conventions, syntactic}{9}
+\entry {Copying conditions}{2}
+\entry {Copying Permissions}{32}
+\entry {Copying text, including}{33}
+\entry {Copyright holder for FSF works}{33}
+\entry {Copyright page}{36}
+\entry {Copyright symbol}{125}
+\entry {Copyright word, always in English}{32}
+\entry {Correcting mistakes}{271}
+\entry {Country codes}{149}
+\entry {\code {cp} (concept) index}{112}
+\entry {\code {CPP_LINE_DIRECTIVES}}{170, 202}
+\entry {Create nodes, menus automatically}{19}
+\entry {Creating an Info file}{211}
+\entry {Creating an unsplit file}{276}
+\entry {Creating index entries}{113}
+\entry {Creating pointers with \code {makeinfo}}{57}
+\entry {Cropmarks for printing}{185}
+\entry {Cross reference configuration, for HTML}{228}
+\entry {Cross reference parts}{66}
+\entry {Cross reference targets, arbitrary}{58}
+\entry {Cross references}{65}
+\entry {Cross references using \code address@hidden
+\entry {Cross references using \code address@hidden
+\entry {Cross references using \code address@hidden
+\entry {Cross references using \code address@hidden
+\entry {Cross references, in HTML output}{223}
+\entry {Cross references, in Info format}{282}
+\entry {CSS, and HTML output}{222}
+\entry {\code {CSS_LINES}}{199}
+\entry {\kbd {CTRL-l}}{9}
+\entry {Custom page sizes}{184}
+\entry {Customization variables for @-commands}{195}
+\entry {Customization variables for options}{196}
+\entry {Customize Emacs package (\t {Development/Docs/Texinfo})}{180}
+\entry {Customized highlighting}{168}
+\entry {Customizing of \TeX {} for Texinfo}{182}
+\entry {CVS $Id}{261}
+\initial {D}
+\entry {Dash, breakpoint within \code address@hidden
+\entry {Dashes in source}{9}
+\entry {\code {DATE_IN_HEADER}}{199}
+\entry {debugging document, with tree representation}{197}
+\entry {Debugging the Texinfo structure}{271}
+\entry {Debugging with Info formatting}{271}
+\entry {Debugging with \TeX {} formatting}{272}
+\entry {\code {DEBUG}}{202}
+\entry {\code {DEF_TABLE}}{199}
+\entry {Default font}{86}
+\entry {\code {DEFAULT_RULE}}{199}
+\entry {Defining indexing entries}{113}
+\entry {Defining macros}{162}
+\entry {Defining new indices}{115}
+\entry {Defining new Texinfo commands}{162}
+\entry {Definition command headings, continuing}{137}
+\entry {Definition commands}{136}
+\entry {Definition conventions}{146}
+\entry {Definition lists, typesetting}{101}
+\entry {Definition of Info format}{278}
+\entry {Definition template}{136}
+\entry {Definitions grouped together}{138}
+\entry {Degree symbol}{126}
+\entry {Delimiter character, for verbatim}{80}
+\entry {Depth of text area}{184}
+\entry {Description for menu, start}{18}
+\entry {Description of document}{40}
+\entry {Detail menu}{58}
+\entry {Detailed menu}{39}
+\entry {Details of macro usage}{165}
+\entry {\code {detexinfo}}{197}
+\entry {Did\^ot points}{109}
+\entry {Different cross reference commands}{65}
+\entry {Dimension formatting}{122}
+\entry {Dimensions and image sizes}{108}
+\entry {Dir categories, choosing}{217}
+\entry {\file {dir} directory for Info installation}{214}
+\entry {\file {dir} file listing}{215}
+\entry {\file {dir} file, creating your own}{216}
+\entry {\file {dir} files and Info directories}{215}
+\entry {Dir files, compressed}{218}
+\entry {\file {dir}, created by \code {install-info}}{218}
+\entry {Display formatting}{92}
+\entry {Displayed equation, in plain \TeX {}}{154}
+\entry {Displayed equations}{125}
+\entry {\code {distinct\r {, value for \code address@hidden
+\entry {Distorting images}{108}
+\entry {\code {DO_ABOUT}}{199}
+\entry {Docbook and prefatory sections}{48}
+\entry {Docbook output, overview}{5}
+\entry {Docbook, including raw}{155}
+\entry {\code {DOCTYPE}}{202}
+\entry {Document description}{40}
+\entry {Document input encoding}{150}
+\entry {Document language, declaring}{149}
+\entry {Document Permissions}{32}
+\entry {Document strings, internationalization of}{207}
+\entry {Document strings, translation of}{149}
+\entry {Document structure, of Texinfo}{6}
+\entry {Document title, specifying}{31}
+\entry {Documentation identification}{261}
+\entry {\code {documentlanguage}}{196}
+\entry {\code {documentlanguage \r {customization variable}}}{207}
+\entry {Dot accent}{122}
+\entry {Dotless i, j}{123}
+\entry {Dots, inserting}{126}
+\entry {Double angle quotation marks}{124}
+\entry {Double guillemets}{124}
+\entry {Double left-pointing angle quotation mark}{124}
+\entry {Double low-9 quotation mark}{124}
+\entry {Double quotation marks}{124}
+\entry {Double right-pointing angle quotation mark}{124}
+\entry {Double structure, of Texinfo documents}{6}
+\entry {Double-colon menu entries}{62}
+\entry {DTD, for Texinfo XML}{5}
+\entry {Dumas, Patrice}{15, 223}
+\entry {\code {DUMP_TEXI}}{202}
+\entry {\code {DUMP_TREE}}{203}
+\entry {Dumping a .fmt file}{182}
+\entry {DVI file}{175}
+\entry {DVI output, overview}{4}
+\entry {\code {dvipdfmx}}{177}
+\entry {\code {dvips}}{4, 177}
+\entry {\dh {}}{123}
+\entry {\DH {}}{123}
+\initial {E}
+\entry {EC fonts}{123}
+\entry {EC fonts, installing}{182}
+\entry {Ellipsis, inserting}{126}
+\entry {Em dash, compared to minus sign}{127}
+\entry {Em dash, producing}{9}
+\entry {Emacs}{16}
+\entry {Emacs shell, format, print from}{179}
+\entry {Emacs-W3}{4}
+\entry {Emphasizing text}{84}
+\entry {Emphasizing text, font for}{85}
+\entry {En dash, producing}{9}
+\entry {\code {enable}}{143}
+\entry {\code {ENABLE_ENCODING}}{196}
+\entry {\code {ENABLE_ENCODING_USE_ENTITY}}{203}
+\entry {Encoding, declaring}{150}
+\entry {\samp {\r {End}} node footnote style}{110}
+\entry {End of header line}{32}
+\entry {End titlepage starts headings}{37}
+\entry {Ending a Sentence}{121}
+\entry {Ending a Texinfo file}{44}
+\entry {Entries for an index}{113}
+\entry {Entries, making index}{112}
+\entry {Enumeration}{99}
+\entry {Environment indentation}{43}
+\entry {Environment variable \code {INFOPATH}}{215}
+\entry {Environment variable \code {TEXINFO_OUTPUT_FORMAT}}{193}
+\entry {Environment variable \code {TEXINPUTS}}{182}
+\entry {\code {eps image format}}{107}
+\entry {\code {epsf.tex}}{109}
+\entry {\code {epsf.tex\r {, installing}}}{182}
+\entry {Equation, displayed, in plain \TeX {}}{154}
+\entry {Equations, displayed}{125}
+\entry {Equivalence, indicating}{129}
+\entry {Error message, indicating}{129}
+\entry {Error messages, line numbers in}{169}
+\entry {\code {ERROR_LIMIT}}{196}
+\entry {Errors, parsing}{211}
+\entry {Es-zet}{123}
+\entry {Eth}{123}
+\entry {Euro font}{126}
+\entry {Euro font, installing}{182}
+\entry {Euro symbol}{126}
+\entry {European A4 paper}{184}
+\entry {European Computer Modern fonts}{123}
+\entry {European Computer Modern fonts, installing}{182}
+\entry {Evaluation glyph}{128}
+\entry {Example beginning of Texinfo file}{28}
+\entry {Example indentation}{43}
+\entry {Example menu}{63}
+\entry {\code {example\r {, value for \code address@hidden
+\entry {Examples in smaller fonts}{92}
+\entry {Examples of using \command {texi2any}}{187}
+\entry {Examples, formatting them}{89}
+\entry {Examples, glyphs for}{127}
+\entry {Expanding macros}{163}
+\entry {Expansion of 8-bit characters in HTML cross references}{227}
+\entry {Expansion of macros, contexts for}{165}
+\entry {Expansion, indicating}{128}
+\entry {expansion, of node names in HTML cross references}{225}
+\entry {Expressions in a program, indicating}{77}
+\entry {\code {EXTENSION}}{203}
+\entry {External macro processors}{169}
+\entry {\code {EXTERNAL_CROSSREF_SPLIT}}{203}
+\entry {\code {EXTERNAL_DIR}}{199}
+\entry {\code {EXTRA_HEAD}}{199}
+\initial {F}
+\entry {Family names, in all capitals}{83}
+\entry {Features of Texinfo, adapting to}{160}
+\entry {Feminine ordinal}{123}
+\entry {\code {feymr10}}{126}
+\entry {\code {feymr10\r {, installing}}}{182}
+\entry {File beginning}{28}
+\entry {File ending}{44}
+\entry {File name collision}{30}
+\entry {File sectioning structure, showing}{19}
+\entry {\code {FILLCOLUMN}}{196}
+\entry {Final output}{183}
+\entry {Finding badly referenced nodes}{275}
+\entry {Fine-tuning, and hyphenation}{133}
+\entry {First line of a Texinfo file}{30}
+\entry {First node}{56}
+\entry {First paragraph, suppressing indentation of}{43}
+\entry {\code {FIX_TEXINFO}}{203}
+\entry {Fixed-width font}{86}
+\entry {Flag conditionals, brace-delimited}{158}
+\entry {Float environment}{105}
+\entry {Floating accents, inserting}{122}
+\entry {Floating, not yet implemented}{105}
+\entry {Floats, in general}{105}
+\entry {Floats, list of}{106}
+\entry {Floats, making unnumbered}{105}
+\entry {Floats, numbering of}{106}
+\entry {Flooding}{72}
+\entry {\code {fn} (function) index}{112}
+\entry {Font for multitable heading rows}{103}
+\entry {Font size, reducing}{85}
+\entry {Fonts for indices}{115}
+\entry {Fonts for printing}{85}
+\entry {Footings}{266}
+\entry {Footnote styles, in HTML}{221}
+\entry {\code {FOOTNOTE_END_HEADER_LEVEL}}{199}
+\entry {\code {FOOTNOTE_SEPARATE_HEADER_LEVEL}}{199}
+\entry {Footnotes}{109}
+\entry {\code {footnotestyle}}{196}
+\entry {Force line break}{132}
+\entry {\code {FORCE}}{196}
+\entry {Forcing indentation}{95}
+\entry {Forcing line and page breaks}{132}
+\entry {Form feed characters}{9}
+\entry {Format a dimension}{122}
+\entry {Format and print hardcopy}{175}
+\entry {Format and print in Texinfo mode}{179}
+\entry {Format file, dumping}{182}
+\entry {Format with the compile command}{180}
+\entry {Format, print from Emacs shell}{179}
+\entry {Formats for images}{107}
+\entry {Formatting a file for Info}{211}
+\entry {Formatting commands}{8}
+\entry {Formatting examples}{89}
+\entry {Formatting for Info}{24}
+\entry {Formatting for printing}{24}
+\entry {Formatting headings and footings}{266}
+\entry {Formatting requirements}{181}
+\entry {Formatting with \code {tex} and \code {texindex}}{175}
+\entry {Formulas, mathematical}{124}
+\entry {Four- and five argument forms of cross references}{70}
+\entry {Fox, Brian}{14}
+\entry {\code {FRAMES}}{199}
+\entry {\code {FRAMESET_DOCTYPE}}{199}
+\entry {Free Documentation License, including entire}{262}
+\entry {Free software}{2}
+\entry {Free Software Directory}{217}
+\entry {French quotation marks}{124}
+\entry {French spacing}{121}
+\entry {Frequently used commands, inserting}{17}
+\entry {Frontmatter, text in}{28}
+\entry {Full texts, GNU}{261}
+\entry {Function definitions}{146}
+\entry {Functions, in typed languages}{141}
+\entry {Future of Texinfo implementations}{187}
+\initial {G}
+\entry {General syntactic conventions}{9}
+\entry {Generating HTML}{221}
+\entry {Generating menus with indices}{44}
+\entry {Generating page headings}{37}
+\entry {Generating plain text files with \option {--no-headers}}{190}
+\entry {Generating plain text files with \option {--plaintext}}{192}
+\entry {German quotation marks}{124}
+\entry {German S}{123}
+\entry {Global Document Commands}{40}
+\entry {Globbing}{175}
+\entry {Glyphs for programming}{127}
+\entry {Glyphs for text}{125}
+\entry {GNU Emacs}{16}
+\entry {GNU Emacs shell, format, print from}{179}
+\entry {GNU Free Documentation License, including entire}{262}
+\entry {GNU sample texts}{261}
+\entry {Going to other Info files' nodes}{63}
+\entry {Grave accent}{122}
+\entry {grave accent, standalone}{119}
+\entry {Grave accent, vs. left quote}{123}
+\entry {Group (hold text together vertically)}{135}
+\entry {Grouping two definitions together}{138}
+\entry {GUI click sequence}{130}
+\entry {Guillemets}{124}
+\entry {Guillemots}{124}
+\initial {H}
+\entry {Hacek accent}{122}
+\entry {Hardcopy, printing it}{175}
+\entry {Hash sign, inserting}{118}
+\entry {\samp {hbox}, overfull}{183}
+\entry {Header for Texinfo files}{29}
+\entry {Header of a Texinfo file}{30}
+\entry {\code {HEADER_IN_TABLE}}{199}
+\entry {\code {HEADERS}}{196}
+\entry {Heading row, in table}{103}
+\entry {Headings}{266}
+\entry {Headings, indentation after}{43}
+\entry {Headings, page, begin to appear}{37}
+\entry {Height of images}{108}
+\entry {Height of text area}{184}
+\entry {\code {help2man}}{5}
+\entry {Hierarchical documents, and menus}{61}
+\entry {Highlighting text}{76}
+\entry {Highlighting, customized}{168}
+\entry {Hints}{255}
+\entry {History of Texinfo}{14}
+\entry {Holder of copyright for FSF works}{33}
+\entry {Holding text together vertically}{135}
+\entry {\code {href}, producing HTML}{74}
+\entry {HTML cross reference 8-bit character expansion}{227}
+\entry {HTML cross reference command expansion}{226}
+\entry {HTML cross reference configuration}{228}
+\entry {HTML cross reference link basics}{224}
+\entry {HTML cross reference link preservation}{230}
+\entry {HTML cross reference mismatch}{228}
+\entry {HTML cross reference node name expansion}{225}
+\entry {HTML cross references}{223}
+\entry {HTML output, and encodings}{150}
+\entry {HTML output, browser compatibility of}{221}
+\entry {HTML output, overview}{4}
+\entry {HTML output, split}{221}
+\entry {HTML, and CSS}{222}
+\entry {HTML, including raw}{154}
+\entry {\code {htmlxref.cnf}}{228}
+\entry {\code {http-equiv}, and charset specification}{150}
+\entry {Hungarian umlaut accent}{122}
+\entry {Hurricanes}{72}
+\entry {Hyphen, breakpoint within \code address@hidden
+\entry {Hyphen, compared to minus}{127}
+\entry {Hyphenation patterns, language-dependent}{149}
+\entry {Hyphenation, helping \TeX {} do}{133}
+\entry {Hyphenation, preventing}{134}
+\entry {Hyphens in source, two or three in a row}{9}
+\initial {I}
+\entry {\dotless {i} (dotless i)}{123}
+\entry {I18n, of document strings}{207}
+\entry {Icelandic}{123}
+\entry {\code {ICONS}}{199}
+\entry {Identification of documentation}{261}
+\entry {If text conditionally visible}{152}
+\entry {\code {IGNORE_BEFORE_SETFILENAME}}{203}
+\entry {\code {IGNORE_SPACE_AFTER_BRACED_COMMAND_NAME}}{203}
+\entry {Ignored before \code address@hidden
+\entry {Ignored text}{10}
+\entry {Image formats}{107}
+\entry {\code {IMAGE_LINK_PREFIX}}{199}
+\entry {Images, alternate text for}{108}
+\entry {Images, in Info format}{281}
+\entry {Images, inserting}{107}
+\entry {Images, scaling}{108}
+\entry {Implementation, \command {texi2any} as reference}{187}
+\entry {Implicit pointer creation with \code {makeinfo}}{57}
+\entry {Inches}{108}
+\entry {Include file sample}{173}
+\entry {Include files}{172}
+\entry {Include files requirements}{173}
+\entry {Include files, and section levels}{51}
+\entry {Including a file verbatim}{91}
+\entry {Including permissions text}{33}
+\entry {Indentation undoing}{93}
+\entry {Indentation, forcing}{95}
+\entry {Indentation, omitting}{94}
+\entry {Indented text block}{89}
+\entry {Indenting environments}{43}
+\entry {Indenting paragraphs, control of}{42}
+\entry {Indenting, suppressing of first paragraph}{43}
+\entry {Index entries}{113}
+\entry {Index entries, advice on writing}{113}
+\entry {Index entries, making}{112}
+\entry {Index file names}{175}
+\entry {Index font types}{114}
+\entry {\code {INDEX_ENTRY_COLON}}{203}
+\entry {Indexing table entries automatically}{102}
+\entry {Indicating commands, definitions, etc.}{76}
+\entry {Indicating evaluation}{128}
+\entry {Indices}{112}
+\entry {Indices, combining them}{114}
+\entry {Indices, defining new}{115}
+\entry {Indices, in Info format}{282}
+\entry {Indices, printing and menus}{44}
+\entry {Indices, sorting}{175}
+\entry {Indices, two letter names}{114}
+\entry {Indirect subfiles}{213}
+\entry {Indirect tag table, in Info format}{279}
+\entry {Info batch formatting}{212}
+\entry {Info file installation}{214}
+\entry {Info file name, choosing}{30}
+\entry {Info file, listing a new}{215}
+\entry {Info file, splitting manually}{277}
+\entry {Info files}{7}
+\entry {Info format specification}{278}
+\entry {Info format text constructs}{281}
+\entry {Info format, and menus}{61}
+\entry {Info formatting}{24}
+\entry {Info installed in another directory}{215}
+\entry {Info nodes, in Info format}{280}
+\entry {Info output, and encoding}{150}
+\entry {Info output, overview}{4}
+\entry {Info validating a large file}{276}
+\entry {Info, creating an online file}{211}
+\entry {Info; other files' nodes}{63}
+\entry {\code {INFO_SPECIAL_CHARS_WARNING}}{203}
+\entry {\code {INFOPATH}}{215}
+\entry {Initialization file for \TeX {} input}{181}
+\entry {Inline conditionals}{155}
+\entry {\code {INLINE_CONTENTS}}{200}
+\entry {\code {INLINE_CSS_STYLE}}{200}
+\entry {\code {INLINE_INSERTCOPYING}}{203}
+\entry {Input encoding, declaring}{150}
+\entry {\code {INPUT_ENCODING_NAME}}{203}
+\entry {\code {INPUT_PERL_ENCODING}}{204}
+\entry {Insert nodes, menus automatically}{19}
+\entry {Inserting #}{118}
+\entry {Inserting @ \r {(literal \samp address@hidden)}}{117}
+\entry {Inserting accents}{122}
+\entry {Inserting dots}{126}
+\entry {Inserting ellipsis}{126}
+\entry {Inserting frequently used commands}{17}
+\entry {Inserting indentation}{95}
+\entry {Inserting quotation marks}{123}
+\entry {Inserting quote characters}{119}
+\entry {Inserting space}{119}
+\entry {Inserting special characters and symbols}{117}
+\entry {\code {install-info}}{218}
+\entry {\file {INSTALL} file, generating}{192}
+\entry {Installing an Info file}{214}
+\entry {Installing Info in another directory}{215}
+\entry {Internal links, of HTML}{190}
+\entry {\code {INTERNAL_LINKS}}{196}
+\entry {Internationalization}{149}
+\entry {Internationalization of document strings}{207}
+\entry {Introduction to Texinfo}{4}
+\entry {Invalid characters in node names}{56}
+\entry {Invoking macros}{163}
+\entry {Invoking nodes, including in dir file}{217}
+\entry {Invoking \code {pod2texi}}{209}
+\entry {ISO 3166 country codes}{149}
+\entry {ISO 639-2 language codes}{149}
+\entry {ISO 8859-1}{123}
+\entry {ISO 8859-15}{123}
+\entry {ISO 8859-15, and Euro}{126}
+\entry {Italic font}{86}
+\entry {Itemization}{98}
+\initial {J}
+\entry {\dotless {j} (dotless j)}{123}
+\entry {\code {jpeg image format}}{107}
+\initial {K}
+\entry {\code {KEEP_TOP_EXTERNAL_REF}}{200}
+\entry {Keyboard input}{78}
+\entry {Keys, recommended names}{79}
+\entry {Keyword expansion, preventing}{134}
+\entry {Keywords, indicating}{77}
+\entry {Knuth, Donald}{7}
+\entry {\code {ky} (keystroke) index}{112}
+\initial {L}
+\entry {\l {}}{123}
+\entry {\L {}}{123}
+\entry {\code {L2H}}{200}
+\entry {\code {L2H_CLEAN}}{200}
+\entry {\code {L2H_FILE}}{200}
+\entry {\code {L2H_HTML_VERSION}}{200}
+\entry {\code {L2H_L2H}}{200}
+\entry {\code {L2H_SKIP}}{200}
+\entry {\code {L2H_TMP}}{200}
+\entry {Language codes}{149}
+\entry {Language, declaring}{149}
+\entry {Larger or smaller pages}{185}
+\entry {\LaTeX {} logo}{125}
+\entry {\LaTeX {}, processing with \command {texi2dvi}}{177}
+\entry {Latin 1}{123}
+\entry {Latin 9}{123}
+\entry {Latin 9, and Euro}{126}
+\entry {Left quotation marks}{124}
+\entry {Left-pointing angle quotation marks}{124}
+\entry {Legal paper, printing on}{184}
+\entry {Length of file names}{30}
+\entry {Less cluttered menu entry}{62}
+\entry {\code {libintl-perl \r {Gettext implementation}}}{208}
+\entry {Libre software}{2}
+\entry {License for all-permissive copying}{264}
+\entry {License for verbatim copying}{264}
+\entry {Limited scope of Texinfo}{3}
+\entry {Line breaking, and urls}{74}
+\entry {Line breaks, awkward}{132}
+\entry {Line breaks, controlling}{132}
+\entry {Line breaks, preventing}{134}
+\entry {Line length, column widths as fraction of}{103}
+\entry {Line numbers, in error messages}{169}
+\entry {Line spacing}{134}
+\entry {Links, preserving to renamed nodes}{230}
+\entry {Lisp example}{91}
+\entry {Lisp examples in smaller fonts}{92}
+\entry {List of @-commands}{231}
+\entry {List of floats}{106}
+\entry {Listing a new Info file}{215}
+\entry {Lists and tables, making}{97}
+\entry {Literate programming}{8}
+\entry {Local variable section, in Info format}{280}
+\entry {Local variables}{180}
+\entry {Local Variables section, for encoding}{150}
+\entry {Locale, declaring}{149}
+\entry {Location of menus}{61}
+\entry {Logos, \TeX {}}{125}
+\entry {Longest nodes, finding}{205}
+\entry {Looking for badly referenced nodes}{275}
+\entry {Lowering and raising sections}{51}
+\entry {\code {lpr \r {(DVI print command)}}}{178}
+\entry {\code {lpr\r {-d, replacements on MS-DOS/MS-Windows}}}{178}
+\entry {Lynx}{4}
+\entry {Lzip-compressed dir files, reading}{218}
+\entry {LZMA-compressed dir files, reading}{218}
+\initial {M}
+\entry {Macro definitions, programming-language}{146}
+\entry {Macro definitions, Texinfo}{162}
+\entry {Macro details}{165}
+\entry {Macro expansion, contexts for}{165}
+\entry {Macro expansion, indicating}{128}
+\entry {Macro invocation}{163}
+\entry {Macro names, valid characters in}{162}
+\entry {Macro processors, external}{169}
+\entry {\code {MACRO_BODY_IGNORES_LEADING_SPACE}}{204}
+\entry {\code {MACRO_EXPAND}}{196}
+\entry {Macron accent}{122}
+\entry {Macros}{162}
+\entry {Macros, undefining}{163}
+\entry {Magnified printing}{185}
+\entry {Mailto link}{84}
+\entry {\code {makeinfo}}{188}
+\entry {\code {makeinfo} inside Emacs}{211}
+\entry {\code {makeinfo} options}{188}
+\entry {Making a printed manual}{175}
+\entry {Making a tag table automatically}{213}
+\entry {Making a tag table manually}{277}
+\entry {Making cross references}{65}
+\entry {Making line and page breaks}{132}
+\entry {Making lists and tables}{97}
+\entry {Man page output, not supported}{5}
+\entry {Man page, reference to}{74}
+\entry {Manual characteristics, printed}{7}
+\entry {Manual, referring to as a whole}{71}
+\entry {\code {\var {manual}-noderename.cnf}}{230}
+\entry {Margins on page, not controllable}{184}
+\entry {Marking text within a paragraph}{76}
+\entry {Marking words and phrases}{76}
+\entry {Masculine ordinal}{123}
+\entry {Master menu}{39}
+\entry {Mathematical expressions, inserting}{124}
+\entry {\code {MAX_HEADER_LEVEL}}{200}
+\entry {\code {MAX_MACRO_CALL_NESTING}}{204}
+\entry {Menu description, start}{18}
+\entry {Menu entries with two colons}{62}
+\entry {Menu example}{63}
+\entry {Menu location}{61}
+\entry {Menu parts}{62}
+\entry {Menu writing}{61}
+\entry {Menu, master}{39}
+\entry {\code {MENU_ENTRY_COLON}}{204}
+\entry {\code {MENU_SYMBOL}}{200}
+\entry {Menus}{61}
+\entry {Menus generated with indices}{44}
+\entry {Menus, in Info format}{281}
+\entry {Menus, omitting with \option {--no-headers}}{190}
+\entry {Menus, omitting with \option {--plaintext}}{192}
+\entry {Meta keys, specifying}{79}
+\entry {Meta-syntactic chars for arguments}{138}
+\entry {META key}{79}
+\entry {Methods, object-oriented}{145}
+\entry {Millimeters}{109}
+\entry {Mils, argument to \code address@hidden
+\entry {Minimal requirements for formatting}{181}
+\entry {Minimal Texinfo file (requirements)}{10}
+\entry {Minus sign}{127}
+\entry {Mismatched HTML cross reference source and target}{228}
+\entry {Mistakes, catching}{271}
+\entry {Mode, using Texinfo}{16}
+\entry {monolithic manuals, for HTML cross references}{229}
+\entry {\code {MONOLITHIC}}{200}
+\entry {Monospace font}{86}
+\entry {Mozilla}{4}
+\entry {Multiple dashes in source}{9}
+\entry {Multiple spaces}{119}
+\entry {Multitable column widths}{103}
+\entry {Multitable rows}{103}
+\entry {Must have in Texinfo file}{10}
+\initial {N}
+\entry {Names for indices}{114}
+\entry {Names of index files}{175}
+\entry {Names of macros, valid characters of}{162}
+\entry {Names recommended for keys}{79}
+\entry {Naming a `Top' Node in references}{71}
+\entry {NASA, as acronym}{83}
+\entry {Navigation bar, in HTML output}{221}
+\entry {Navigation links, omitting}{190}
+\entry {Navigation panel, bottom of page}{202}
+\entry {Need space at page bottom}{135}
+\entry {Nesting conditionals}{160}
+\entry {New index defining}{115}
+\entry {New Info file, listing it in \file {dir} file}{215}
+\entry {New Texinfo commands, defining}{162}
+\entry {Newlines, avoiding in conditionals}{155}
+\entry {\code {\file {NEWS} file for Texinfo}}{160}
+\entry {Next node of Top node}{57}
+\entry {\code {NO_CSS}}{200}
+\entry {\code {NO_USE_SETFILENAME}}{204}
+\entry {\code {NO_WARN}}{196}
+\entry {Node line requirements}{55}
+\entry {Node line writing}{54}
+\entry {node name expansion, in HTML cross references}{225}
+\entry {Node names must be unique}{55}
+\entry {Node names, choosing}{54}
+\entry {Node names, invalid characters in}{56}
+\entry {Node renaming, and preserving links}{230}
+\entry {Node separators, omitting with \option {--no-headers}}{190}
+\entry {Node separators, omitting with \option {--plaintext}}{192}
+\entry {Node, `Top'}{38}
+\entry {Node, defined}{53}
+\entry {\code {NODE_FILE_EXTENSION}}{201}
+\entry {\code {NODE_FILENAMES}}{204}
+\entry {\code {NODE_FILES}}{196}
+\entry {\code {NODE_NAME_IN_INDEX}}{204}
+\entry {\code {NODE_NAME_IN_MENU}}{204}
+\entry {\code {noderename.cnf}}{230}
+\entry {Nodes in other Info files}{63}
+\entry {Nodes, catching mistakes}{271}
+\entry {Nodes, checking for badly referenced}{275}
+\entry {Nodes, deleting or renaming}{58}
+\entry {Non-breakable space, fixed}{134}
+\entry {Non-breakable space, variable}{134}
+\entry {\code {none\r {, value for \code address@hidden
+\entry {Nonsplit manuals, Info format of}{278}
+\entry {Normalization Form C, Unicode}{227}
+\entry {Not ending a sentence}{120}
+\entry {\code {novalidate}}{196}
+\entry {Number sign, inserting}{118}
+\entry {\code {NUMBER_FOOTNOTES}}{196}
+\entry {\code {NUMBER_SECTIONS}}{196}
+\entry {Numbering of floats}{106}
+\initial {O}
+\entry {\o {}}{123, 123}
+\entry {O'Dea, Brendan}{5}
+\entry {\O {}}{123}
+\entry {Object-oriented programming}{144}
+\entry {Oblique font}{86}
+\entry {Obtaining \TeX {}}{186}
+\entry {Occurrences, listing with \code address@hidden
+\entry {Octotherp, inserting}{118}
+\entry {\oe {}}{123}
+\entry {\OE {}}{123}
+\entry {Ogonek diacritic}{122}
+\entry {Old nodes, preserving links to}{230}
+\entry {Omitting indentation}{94}
+\entry {One-argument form of cross references}{68}
+\entry {\code {OPEN_QUOTE_SYMBOL}}{204}
+\entry {Optional and repeated arguments}{138}
+\entry {Options for \code {makeinfo}}{188}
+\entry {Options for \code {texi2any}}{188}
+\entry {Options of \command {texi2html}}{209}
+\entry {Options, customization variables for}{196}
+\entry {Ordinals, Romance}{123}
+\entry {Ordinary \TeX {} commands, using}{154}
+\entry {Orphans, preventing}{135}
+\entry {Other Info files' nodes}{63}
+\entry {\code {OUTFILE}}{196}
+\entry {Outline of file structure, showing}{19}
+\entry {Output document strings, internationalization of}{207}
+\entry {Output file name, required}{30}
+\entry {Output file splitting}{193}
+\entry {Output formats}{4}
+\entry {Output formats, supporting more}{6}
+\entry {Output, printed through \command {texi2any}}{194}
+\entry {\code {OUTPUT_ENCODING_NAME}}{204}
+\entry {Outputting HTML}{221}
+\entry {\code {OUT}}{196}
+\entry {Overfull \samp {hboxes}}{183}
+\entry {Overview of Texinfo}{3}
+\entry {\code {OVERVIEW_LINK_TO_TOC}}{205}
+\entry {Owner of copyright for FSF works}{33}
+\initial {P}
+\entry {\code {PACKAGE}}{205}
+\entry {\code {PACKAGE_AND_VERSION}}{205}
+\entry {\code {PACKAGE_NAME}}{205}
+\entry {\code {PACKAGE_URL}}{205}
+\entry {\code {PACKAGE_VERSION}}{205}
+\entry {Page breaks, awkward}{132}
+\entry {Page breaks, forcing}{134}
+\entry {Page delimiter in Texinfo mode}{19}
+\entry {Page headings}{266}
+\entry {Page numbering}{266}
+\entry {Page sizes for books}{183}
+\entry {Page sizes, customized}{184}
+\entry {\code {page-delimiter}}{19}
+\entry {Pages, starting odd}{40}
+\entry {Paper size, A4}{184}
+\entry {Paragraph indentation control}{42}
+\entry {Paragraph, marking text within}{76}
+\entry {\code {paragraphindent}}{196}
+\entry {Parameters to macros}{162}
+\entry {Parentheses in node name}{56}
+\entry {Parsing errors}{211}
+\entry {Part of file formatting and printing}{24}
+\entry {Part pages}{50}
+\entry {Parts of a cross reference}{66}
+\entry {Parts of a master menu}{39}
+\entry {Parts of a menu}{62}
+\entry {Patches, contributing}{3}
+\entry {\code {pdf image inclusions}}{107}
+\entry {PDF output}{185}
+\entry {PDF output, overview}{5}
+\entry {\code {pdftex}}{185}
+\entry {\code {pdftex\r {, and images}}}{107}
+\entry {\code {pdftexi2dvi}}{177}
+\entry {Period in node name}{56}
+\entry {Periods, inserting}{120}
+\entry {Perl format strings for translation}{208}
+\entry {Perl POD, converting to Texinfo}{209}
+\entry {Permissions text, including}{33}
+\entry {Permissions, printed}{36}
+\entry {\code {pg} (program) index}{112}
+\entry {Picas}{108}
+\entry {Pictures, inserting}{107}
+\entry {Pinard, Fran\,{c}ois}{14}
+\entry {Plain \TeX {}}{154}
+\entry {Plain text output with \option {--plaintext}}{192}
+\entry {Plain text output, overview}{4}
+\entry {\code {png image format}}{107}
+\entry {\code {pod2texi}}{209}
+\entry {POD, converting to Texinfo}{209}
+\entry {Point, indicating in a buffer}{129}
+\entry {Pointer creation with \code {makeinfo}}{57}
+\entry {Pointer validation with \code {makeinfo}}{194}
+\entry {Pointer validation, suppressing}{176}
+\entry {Pointer validation, suppressing from command line}{191}
+\entry {Points (dimension)}{108}
+\entry {PostScript output, overview}{5}
+\entry {Pounds symbol}{126}
+\entry {\code {PRE_ABOUT}}{201}
+\entry {\code {PRE_BODY_CLOSE}}{201}
+\entry {Preamble, in Info format}{279}
+\entry {Predefined names for indices}{114}
+\entry {Preface, etc., and Docbook}{48}
+\entry {\code {PREFIX}}{205}
+\entry {Preparing for \TeX {}}{181}
+\entry {Preserving HTML links to old nodes}{230}
+\entry {Preventing first paragraph indentation}{43}
+\entry {Preventing line and page breaks}{132}
+\entry {Print and format in Texinfo mode}{179}
+\entry {Print, format from Emacs shell}{179}
+\entry {Printed book and manual characteristics}{7}
+\entry {Printed output, indicating}{128}
+\entry {Printed output, through \command {texi2any}}{194}
+\entry {Printed permissions}{36}
+\entry {Printing a region or buffer}{24}
+\entry {Printing an index}{44}
+\entry {Printing cost, reducing}{85}
+\entry {Printing cropmarks}{185}
+\entry {Printing DVI files, on MS-DOS/MS-Windows}{178}
+\entry {Printing hardcopy}{175}
+\entry {Problems, catching}{271}
+\entry {Program names, indicating}{82}
+\entry {\code {PROGRAM_NAME_IN_FOOTER}}{201}
+\entry {Programming, glyphs for}{127}
+\entry {\code {PROGRAM}}{205}
+\entry {Pronounciation of Texinfo}{3}
+\entry {Prototype row, column widths defined by}{103}
+\initial {Q}
+\entry {Quotation characters (`'), in source}{123}
+\entry {Quotation marks, French}{124}
+\entry {Quotation marks, German}{124}
+\entry {Quotation marks, inserting}{123}
+\entry {Quotations}{88}
+\entry {Quotations in smaller fonts}{92}
+\entry {Quote characters, inserting}{119}
+\entry {Quoting, automatic for some macros}{164}
+\initial {R}
+\entry {Ragged left, without filling}{93}
+\entry {Ragged right, with filling}{94}
+\entry {Ragged right, without filling}{93}
+\entry {Raising and lowering sections}{51}
+\entry {Raw formatter commands}{154}
+\entry {raw text output}{197}
+\entry {RCS $Id}{261}
+\entry {Recommended names for keys}{79}
+\entry {Rectangle, black in hardcopy}{183}
+\entry {Recursive macro invocations}{163}
+\entry {Reducing font size}{85}
+\entry {Reference implementation}{187}
+\entry {Reference to @-commands}{231}
+\entry {References}{65}
+\entry {References using \code address@hidden
+\entry {References using \code address@hidden
+\entry {References using \code address@hidden
+\entry {References using \code address@hidden
+\entry {Referring to an entire manual}{71}
+\entry {Referring to other Info files}{63}
+\entry {Region formatting and printing}{24}
+\entry {Region printing in Texinfo mode}{179}
+\entry {Registered symbol}{126}
+\entry {Regular expression, for \samp {#line}}{170}
+\entry {Reid, Brian}{14}
+\entry {\code {RENAMED_NODES_FILE}}{205, 230}
+\entry {\code {RENAMED_NODES_REDIRECTIONS}}{205}
+\entry {Renaming nodes, and preserving links}{230}
+\entry {Repeated and optional arguments}{138}
+\entry {Reporting bugs}{3}
+\entry {Required in Texinfo file}{10}
+\entry {Requirements for formatting}{181}
+\entry {Requirements for include files}{173}
+\entry {Requirements for updating commands}{22}
+\entry {Reserved words, indicating}{77}
+\entry {Restrictions on node names}{55}
+\entry {Result of an expression}{128}
+\entry {Return type, own line for}{142}
+\entry {\code {ridt.eps}}{109}
+\entry {Right quotation marks}{124}
+\entry {Right-pointing angle quotation marks}{124}
+\entry {Ring accent}{122}
+\entry {Roman font}{86}
+\entry {Romance ordinals}{123}
+\entry {Rounded rectangles, around text}{96}
+\entry {Rows, of a multitable}{103}
+\entry {Running an Info formatter}{24}
+\entry {Running macros}{163}
+\entry {Running \code {makeinfo} in Emacs}{211}
+\initial {S}
+\entry {S-expressions, output format}{197}
+\entry {Sample \code address@hidden file}{173}
+\entry {Sample function definition}{146}
+\entry {Sample Texinfo file, no comments}{260}
+\entry {Sample Texinfo file, with comments}{12}
+\entry {Sample Texinfo files}{260}
+\entry {Sample texts, GNU}{261}
+\entry {Sans serif font}{86}
+\entry {Scaled points}{109}
+\entry {Scaling images}{108}
+\entry {Schwab, Andreas}{14}
+\entry {Scribe}{14}
+\entry {Sea surges}{72}
+\entry {Sectioning}{46}
+\entry {Sectioning structure of a file, showing}{19}
+\entry {Sections, raising and lowering}{51}
+\entry {Semantic markup}{3}
+\entry {Sentence ending punctuation}{121}
+\entry {Sentence non-ending punctuation}{120}
+\entry {Sentences, spacing after}{121}
+\entry {\samp {\r {Separate}} footnote style}{110}
+\entry {Sequence of clicks}{130}
+\entry {SGML-tools output format}{6}
+\entry {Sharp sign (not), inserting}{118}
+\entry {Sharp S}{123}
+\entry {Shell formatting with \code {tex} and \code {texindex}}{175}
+\entry {Shell printing, on MS-DOS/MS-Windows}{178}
+\entry {Shell, format, print from}{179}
+\entry {Shell, running \code {makeinfo} in}{211}
+\entry {Short captions, for lists of floats}{106}
+\entry {Short table of contents}{37}
+\entry {\code {SHORTEXTN}}{201}
+\entry {\code {SHOW_MENU}}{196, 205}
+\entry {\code {SHOW_TITLE}}{201}
+\entry {Showing the sectioning structure of a file}{19}
+\entry {Showing the structure of a file}{274}
+\entry {Shrubbery}{158}
+\entry {\code {SILENT}}{196}
+\entry {\code {SIMPLE_MENU}}{201}
+\entry {Single angle quotation marks}{124}
+\entry {Single guillemets}{124}
+\entry {Single left-pointing angle quotation mark}{124}
+\entry {Single low-9 quotation mark}{124}
+\entry {Single quotation marks}{124}
+\entry {Single right-pointing angle quotation mark}{124}
+\entry {Site-wide Texinfo configuration file}{182}
+\entry {Size of printed book}{183}
+\entry {Slanted font}{86}
+\entry {Slanted typewriter font, for \code address@hidden
+\entry {Small book size}{183}
+\entry {Small caps font}{85}
+\entry {Small examples}{92}
+\entry {Small verbatim}{91}
+\entry {Smaller fonts}{85}
+\entry {\code {SORT_ELEMENT_COUNT}}{205}
+\entry {\code {SORT_ELEMENT_COUNT_WORDS}}{205}
+\entry {Sorting indices}{175}
+\entry {Sorting nodes by size}{205}
+\entry {Source file format}{4}
+\entry {Source files, characters used}{9}
+\entry {Space, after sentences}{121}
+\entry {Space, inserting horizontal}{119}
+\entry {Space, inserting vertical}{134}
+\entry {Spaces in macros}{162}
+\entry {Spaces in node name}{56}
+\entry {Spaces, in menus}{61}
+\entry {Spacing, at ends of sentences}{121}
+\entry {Spacing, in the middle of sentences}{120}
+\entry {Spacing, inserting}{119}
+\entry {Special characters, inserting}{117}
+\entry {Special displays}{105}
+\entry {Special insertions}{117}
+\entry {Specification of Info format}{278}
+\entry {Specifying index entries}{113}
+\entry {spell checking}{197}
+\entry {Spelling of Texinfo}{3}
+\entry {Split HTML output}{221}
+\entry {split manuals, for HTML cross references}{229}
+\entry {Split manuals, Info format of}{278}
+\entry {\code {SPLIT}}{196}
+\entry {\code {SPLIT_SIZE}}{196}
+\entry {Splitting an Info file manually}{277}
+\entry {Splitting of output files}{193}
+\entry {\ss {}}{123}
+\entry {Stallman, Richard M.}{14}
+\entry {Start of header line}{30}
+\entry {Starting chapters}{40}
+\entry {stripping Texinfo commands}{197}
+\entry {Structure of a file, showing}{19}
+\entry {Structure, catching mistakes in}{271}
+\entry {Structure, of Texinfo documents}{6}
+\entry {Structuring of chapters}{46}
+\entry {\code {SUBDIR}}{196}
+\entry {Subsection-like commands}{49}
+\entry {Subsub sectioning commands}{50}
+\entry {Suggestions for Texinfo, making}{3}
+\entry {Summary of document}{40}
+\entry {Suppressing first paragraph indentation}{43}
+\entry {Suppressing indentation}{94}
+\entry {SVG images, used in Docbook}{107}
+\entry {SXML output}{197}
+\entry {Syntactic conventions}{9}
+\entry {Syntactic tokens, indicating}{77}
+\entry {Syntax details, \samp {#line}}{170}
+\entry {Syntax tree representation of documents}{187}
+\entry {Syntax, of @-commands}{253}
+\entry {Syntax, optional & repeated arguments}{138}
+\entry {\code {SystemLiteral}}{202}
+\initial {T}
+\entry {Table of contents}{37}
+\entry {Table of contents, after title page}{38}
+\entry {Table of contents, for floats}{106}
+\entry {Tables and lists, making}{97}
+\entry {Tables with indexing}{102}
+\entry {Tables, making multi-column}{102}
+\entry {Tables, making two-column}{100}
+\entry {Tabs; don't use!}{9}
+\entry {Tag table, in Info format}{280}
+\entry {Tag table, making automatically}{213}
+\entry {Tag table, making manually}{277}
+\entry {Targets for cross references, arbitrary}{58}
+\entry {Template for a definition}{136}
+\entry {Testing for Texinfo commands}{160}
+\entry {Tests, of Texinfo language}{187}
+\entry {\code {TEST}}{205}
+\entry {\TeX {} and \samp {#line} directives}{170}
+\entry {\TeX {} commands, using ordinary}{154}
+\entry {\TeX {} index sorting}{175}
+\entry {\TeX {} input initialization}{181}
+\entry {\TeX {} logo}{125}
+\entry {\TeX {}, how to obtain}{186}
+\entry {\code {texi-elements-by-size}}{205}
+\entry {\code {texi2any}}{188}
+\entry {\code {texi2any} options}{188}
+\entry {\command {texi2any}, as reference implementation}{187}
+\entry {\code {texi2dvi}}{176}
+\entry {\code {texi2dvi \r {(shell script)}}}{176}
+\entry {\code {texi2html}}{209}
+\entry {\file {texi2oldapi.texi}, for \command {texi2any}}{210}
+\entry {\code {TEXI2DVI}}{205}
+\entry {\code {TEXI2HTML}}{206}
+\entry {\code {texindex}}{175}
+\entry {Texinfo commands, defining new}{162}
+\entry {Texinfo commands, testing for}{160}
+\entry {Texinfo document structure}{6}
+\entry {Texinfo file beginning}{28}
+\entry {Texinfo file ending}{44}
+\entry {Texinfo file header}{29}
+\entry {Texinfo file minimum}{10}
+\entry {Texinfo file sectioning structure, showing}{19}
+\entry {Texinfo history}{14}
+\entry {Texinfo language tests}{187}
+\entry {Texinfo mode}{16}
+\entry {Texinfo overview}{3}
+\entry {Texinfo parsers, discouraging more}{6}
+\entry {Texinfo printed book characteristics}{7}
+\entry {Texinfo requires \code address@hidden
+\entry {Texinfo XML output, overview}{5}
+\entry {Texinfo, introduction to}{4}
+\entry {\code {texinfo-bright-colors.css}}{222}
+\entry {\code {texinfo.cnf}}{31}
+\entry {\code {texinfo.cnf \r {installation}}}{182}
+\entry {\code {texinfo.dtd}}{5}
+\entry {\code {texinfo.tex\r {, installing}}}{181}
+\entry {\code {texinfo_document \r {Gettext domain}}}{208}
+\entry {\code {TEXINFO_COLUMN_FOR_DESCRIPTION}}{206}
+\entry {\code {TEXINFO_DTD_VERSION}}{206}
+\entry {\code {TEXINFO_OUTPUT_FORMAT}}{193, 196}
+\entry {\code {TEXINPUTS}}{182}
+\entry {text constructs, Info format}{281}
+\entry {Text width and height}{184}
+\entry {Text, conditionally visible}{152}
+\entry {Text, marking up}{76}
+\entry {\code {Text::Unidecode}}{207}
+\entry {\code {TEXTCONTENT_COMMENT}}{206}
+\entry {Textual glyphs}{125}
+\entry {Thin space between number, dimension}{122}
+\entry {Thorn}{123}
+\entry {Three-argument form of cross references}{69}
+\entry {Tie-after accent}{122}
+\entry {Tied space}{134}
+\entry {Tilde accent}{122}
+\entry {\code {time-stamp.el}}{262}
+\entry {Tips}{255}
+\entry {Title page}{33}
+\entry {Title page, bastard}{34}
+\entry {Titlepage end starts headings}{37}
+\entry {\code {TOC_LINKS}}{201}
+\entry {Top node}{38}
+\entry {Top node example}{39}
+\entry {Top node is first}{56}
+\entry {\code {TOP_FILE}}{201}
+\entry {\code {TOP_NODE_FILE}}{201}
+\entry {\code {TOP_NODE_FILE_TARGET}}{201}
+\entry {\code {TOP_NODE_UP}}{206}
+\entry {\code {TOP_NODE_UP_URL}}{201}
+\entry {\code {tp} (data type) index}{112}
+\entry {Translating strings in output documents}{207}
+\entry {\code {TRANSLITERATE_FILE_NAMES}}{196}
+\entry {Transliteration of 8-bit characters in HTML cross references}{227}
+\entry {Tree representation of documents}{187}
+\entry {tree representation, for debugging}{197}
+\entry {Tree structuring}{46}
+\entry {\code {TREE_TRANSFORMATIONS}}{206}
+\entry {Two `First' Lines for \code address@hidden
+\entry {Two letter names for indices}{114}
+\entry {Two named items for \code address@hidden
+\entry {Two part menu entry}{62}
+\entry {Two-argument form of cross references}{68}
+\entry {\file {txi-\var {cc}.tex}}{149}
+\entry {\code {txixml2texi}}{5}
+\entry {Typed functions}{141}
+\entry {Typed variables}{142}
+\entry {Typewriter font}{86}
+\initial {U}
+\entry {Ugly black rectangles in hardcopy}{183}
+\entry {Umlaut accent}{122}
+\entry {Unbreakable space, fixed}{134}
+\entry {Unbreakable space, variable}{134}
+\entry {Uncluttered menu entry}{62}
+\entry {Undefining macros}{163}
+\entry {Underbar accent}{122}
+\entry {Underdot accent}{122}
+\entry {Underscore, breakpoint within \code address@hidden
+\entry {undirected single quote}{119}
+\entry {Unicode quotation characters}{123}
+\entry {Uniform resource locator, indicating}{84}
+\entry {Uniform resource locator, referring to}{74}
+\entry {Unique index entries}{113}
+\entry {Unique node names requirement}{55}
+\entry {Unnumbered float, creating}{105}
+\entry {Unprocessed text}{10}
+\entry {Unsplit file creation}{276}
+\entry {Up node of Top node}{56}
+\entry {\code {UPDATED \r {Automake variable}}}{262}
+\entry {Updating nodes and menus}{19}
+\entry {Updating requirements}{22}
+\entry {URI syntax for Info}{7}
+\entry {URL, indicating}{84}
+\entry {URL, referring to}{74}
+\entry {\code {us-ascii} encoding, and translations}{208}
+\entry {Usage tips}{255}
+\entry {\code {USE_ACCESSKEY}}{201}
+\entry {\code {USE_ISO}}{201}
+\entry {\code {USE_LINKS}}{202}
+\entry {\code {USE_NODE_TARGET}}{207}
+\entry {\code {USE_NODES}}{207}
+\entry {\code {USE_NUMERIC_ENTITY}}{207}
+\entry {\code {USE_REL_REV}}{202}
+\entry {\code {USE_SETFILENAME_EXTENSION}}{207}
+\entry {\code {USE_TITLEPAGE_FOR_TITLE}}{207}
+\entry {\code {USE_UNIDECODE}}{207}
+\entry {\code {USE_UP_NODE_FOR_ELEMENT_UP}}{207}
+\entry {User input}{78}
+\entry {User options, marking}{141}
+\entry {User-defined Texinfo commands}{162}
+\entry {Using \code {Info-validate}}{276}
+\entry {Using Texinfo in general}{4}
+\entry {UTF-8}{123}
+\initial {V}
+\entry {Validating a large file}{276}
+\entry {Validation of pointers}{194}
+\entry {Value of an expression, indicating}{128}
+\entry {Variables, in typed languages}{142}
+\entry {Variables, object-oriented}{144}
+\entry {Verbatim copying license}{264}
+\entry {Verbatim environment}{90}
+\entry {Verbatim in-line text}{80}
+\entry {Verbatim, include file}{91}
+\entry {Verbatim, small}{91}
+\entry {\code {VERBOSE}}{196}
+\entry {Version control keywords, preventing expansion of}{134}
+\entry {Version number, for install-info}{220}
+\entry {\code {VERSION \r {Automake variable}}}{262}
+\entry {Versions of Texinfo, adapting to}{160}
+\entry {\code {VERTICAL_HEAD_NAVIGATION}}{202}
+\entry {Vertically holding text together}{135}
+\entry {Visibility of conditional text}{152}
+\entry {Visualizing Texinfo CSS}{222}
+\entry {\code {vr} (variable) index}{112}
+\initial {W}
+\entry {W3 consortium}{4}
+\entry {Weinberg, Zack}{14}
+\entry {Weisshaus, Melissa}{14}
+\entry {White space in node name}{56}
+\entry {Whitespace in macros}{162}
+\entry {Whitespace, collapsed around continuations}{137}
+\entry {Whitespace, controlling in conditionals}{155}
+\entry {Whitespace, inserting}{119}
+\entry {Whole manual, in Info format}{278}
+\entry {Width of images}{108}
+\entry {Width of text area}{184}
+\entry {Widths, defining multitable column}{103}
+\entry {Wildcards}{175}
+\entry {word counting}{197}
+\entry {Words and phrases, marking them}{76}
+\entry {\code {WORDS_IN_PAGE}}{202}
+\entry {Writing a menu}{61}
+\entry {Writing an \code address@hidden line}{54}
+\entry {Writing index entries}{113}
+\initial {X}
+\entry {\code {xdvi}}{4}
+\entry {XML Docbook output, overview}{5}
+\entry {XML Texinfo output, overview}{5}
+\entry {XML, including raw}{154}
+\entry {\code {XPM image format}}{107}
+\entry {\code {XREF_USE_FLOAT_LABEL}}{202}
+\entry {\code {XREF_USE_NODE_NAME_ARG}}{202}
+\entry {XZ-compressed dir files, reading}{218}
+\initial {Y}
+\entry {Years, in copyright line}{33}
+\initial {Z}
+\entry {Zaretskii, Eli}{14}
+\entry {Zuhn, David D.}{14}
+\entry {\th {}}{123}
+\entry {\TH {}}{123}

Added: trunk/texindex/tests/texinfo.fn
===================================================================
--- trunk/texindex/tests/texinfo.fn                             (rev 0)
+++ trunk/texindex/tests/texinfo.fn     2014-12-03 00:57:15 UTC (rev 5946)
@@ -0,0 +1,437 @@
+\entry{comment}{10}{\code {comment}}
+\entry{c (comment)}{10}{\code {c \r {(comment)}}}
+\entry{DEL (comment character)}{10}{\code {DEL \r {(comment character)}}}
+\entry{ignore}{10}{\code {ignore}}
+\entry{{\tt \indexbackslash }input (raw TeX{} startup)}{10}{\code {{\tt 
\backslashcurfont }input \r {(raw \TeX {} startup)}}}
address@hidden address@hidden
address@hidden address@hidden
address@hidden address@hidden
address@hidden address@hidden
address@hidden address@hidden
address@hidden address@hidden
address@hidden address@hidden
address@hidden address@hidden
address@hidden address@hidden
address@hidden address@hidden
address@hidden address@hidden
+\entry{texinfo-insert-braces}{18}{\code {texinfo-insert-braces}}
+\entry{up-list}{18}{\code {up-list}}
+\entry{texinfo-start-menu-description}{18}{\code 
{texinfo-start-menu-description}}
+\entry{texinfo-show-structure}{19}{\code {texinfo-show-structure}}
+\entry{occur-mode-goto-occurrence}{19}{\code {occur-mode-goto-occurrence}}
+\entry{texinfo-master-menu}{20}{\code {texinfo-master-menu}}
+\entry{texinfo-update-node}{21}{\code {texinfo-update-node}}
+\entry{texinfo-make-menu}{21}{\code {texinfo-make-menu}}
+\entry{texinfo-every-node-update}{21}{\code {texinfo-every-node-update}}
+\entry{texinfo-all-menus-update}{21}{\code {texinfo-all-menus-update}}
+\entry{texinfo-insert-node-lines}{23}{\code {texinfo-insert-node-lines}}
+\entry{texinfo-multiple-files-update (in brief)}{23}{\code 
{texinfo-multiple-files-update \r {(in brief)}}}
+\entry{texinfo-indent-menu-description}{23}{\code 
{texinfo-indent-menu-description}}
+\entry{texinfo-sequential-node-update}{23}{\code 
{texinfo-sequential-node-update}}
+\entry{texinfo-format-region}{24}{\code {texinfo-format-region}}
+\entry{texinfo-format-buffer}{24}{\code {texinfo-format-buffer}}
+\entry{texinfo-tex-buffer}{25}{\code {texinfo-tex-buffer}}
+\entry{texinfo-tex-region}{25}{\code {texinfo-tex-region}}
+\entry{texinfo-tex-print}{25}{\code {texinfo-tex-print}}
+\entry{setfilename}{30}{\code {setfilename}}
+\entry{settitle}{31}{\code {settitle}}
+\entry{copying}{32}{\code {copying}}
+\entry{copyright}{32}{\code {copyright}}
+\entry{insertcopying}{33}{\code {insertcopying}}
+\entry{titlepage}{33}{\code {titlepage}}
+\entry{page, within @titlepage}{34}{\code {page\r {, within \code 
address@hidden
+\entry{shorttitlepage}{34}{\code {shorttitlepage}}
+\entry{titlefont}{34}{\code {titlefont}}
+\entry{center}{34}{\code {center}}
+\entry{sp (titlepage line spacing)}{34}{\code {sp \r {(titlepage line 
spacing)}}}
+\entry{title}{35}{\code {title}}
+\entry{subtitle}{35}{\code {subtitle}}
+\entry{author}{35}{\code {author}}
+\entry{vskip TeX{} vertical skip}{36}{\code {vskip \r {\TeX {} vertical skip}}}
+\entry{filll TeX{} dimension}{36}{\code {filll \r {\TeX {} dimension}}}
+\entry{contents}{37}{\code {contents}}
+\entry{summarycontents}{37}{\code {summarycontents}}
+\entry{shortcontents}{37}{\code {shortcontents}}
+\entry{setcontentsaftertitlepage}{38}{\code {setcontentsaftertitlepage}}
+\entry{setshortcontentsaftertitlepage}{38}{\code 
{setshortcontentsaftertitlepage}}
+\entry{top}{38}{\code {top}}
+\entry{detailmenu}{39}{\code {detailmenu}}
+\entry{documentdescription}{40}{\code {documentdescription}}
+\entry{setchapternewpage}{40}{\code {setchapternewpage}}
+\entry{headings}{41}{\code {headings}}
+\entry{paragraphindent}{42}{\code {paragraphindent}}
+\entry{firstparagraphindent}{43}{\code {firstparagraphindent}}
+\entry{exampleindent}{43}{\code {exampleindent}}
+\entry{bye}{44}{\code {bye}}
+\entry{printindex}{44}{\code {printindex}}
+\entry{bye}{45}{\code {bye}}
+\entry{chapter}{47}{\code {chapter}}
+\entry{unnumbered}{48}{\code {unnumbered}}
+\entry{appendix}{48}{\code {appendix}}
+\entry{centerchap}{48}{\code {centerchap}}
+\entry{majorheading}{48}{\code {majorheading}}
+\entry{chapheading}{48}{\code {chapheading}}
+\entry{section}{48}{\code {section}}
+\entry{unnumberedsec}{49}{\code {unnumberedsec}}
+\entry{appendixsec}{49}{\code {appendixsec}}
+\entry{heading}{49}{\code {heading}}
+\entry{appendixsection}{49}{\code {appendixsection}}
+\entry{appendixsec}{49}{\code {appendixsec}}
+\entry{subsection}{49}{\code {subsection}}
+\entry{unnumberedsubsec}{49}{\code {unnumberedsubsec}}
+\entry{appendixsubsec}{49}{\code {appendixsubsec}}
+\entry{subheading}{49}{\code {subheading}}
+\entry{subsubsection}{50}{\code {subsubsection}}
+\entry{unnumberedsubsubsec}{50}{\code {unnumberedsubsubsec}}
+\entry{appendixsubsubsec}{50}{\code {appendixsubsubsec}}
+\entry{subsubheading}{50}{\code {subsubheading}}
+\entry{part}{50}{\code {part}}
+\entry{raisesections}{51}{\code {raisesections}}
+\entry{lowersections}{51}{\code {lowersections}}
+\entry{node}{53}{\code {node}}
+\entry{top}{57}{\code {top}}
+\entry{detailmenu}{58}{\code {detailmenu}}
+\entry{anchor}{58}{\code {anchor}}
+\entry{menu}{61}{\code {menu}}
+\entry{xref}{67}{\code {xref}}
+\entry{xrefautomaticsectiontitle}{69}{\code {xrefautomaticsectiontitle}}
+\entry{ref}{72}{\code {ref}}
+\entry{pxref}{72}{\code {pxref}}
+\entry{inforef}{73}{\code {inforef}}
+\entry{uref}{74}{\code {uref}}
+\entry{urefbreakstyle}{74}{\code {urefbreakstyle}}
+\entry{cite}{75}{\code {cite}}
+\entry{code}{77}{\code {code}}
+\entry{kbd}{78}{\code {kbd}}
+\entry{kbdinputstyle}{78}{\code {kbdinputstyle}}
+\entry{key}{79}{\code {key}}
+\entry{samp}{80}{\code {samp}}
+\entry{verb}{80}{\code {verb}}
+\entry{var}{81}{\code {var}}
+\entry{env}{81}{\code {env}}
+\entry{file}{82}{\code {file}}
+\entry{command}{82}{\code {command}}
+\entry{option}{82}{\code {option}}
+\entry{dfn}{82}{\code {dfn}}
+\entry{abbr}{83}{\code {abbr}}
+\entry{acronym}{83}{\code {acronym}}
+\entry{indicateurl}{84}{\code {indicateurl}}
+\entry{email}{84}{\code {email}}
+\entry{emph}{85}{\code {emph}}
+\entry{strong}{85}{\code {strong}}
+\entry{sc (small caps font)}{85}{\code {sc \r {(small caps font)}}}
+\entry{fonttextsize}{85}{\code {fonttextsize}}
+\entry{b (bold font)}{86}{\code {b \r {(bold font)}}}
+\entry{i (italic font)}{86}{\code {i \r {(italic font)}}}
+\entry{r (roman font)}{86}{\code {r \r {(roman font)}}}
+\entry{sansserif (sans serif font)}{86}{\code {sansserif \r {(sans serif 
font)}}}
+\entry{slanted (slanted font)}{86}{\code {slanted \r {(slanted font)}}}
+\entry{t (typewriter font)}{86}{\code {t \r {(typewriter font)}}}
+\entry{end}{87}{\code {end}}
+\entry{quotation}{88}{\code {quotation}}
+\entry{smallquotation}{89}{\code {smallquotation}}
+\entry{indentedblock}{89}{\code {indentedblock}}
+\entry{smallindentedblock}{89}{\code {smallindentedblock}}
+\entry{example}{89}{\code {example}}
+\entry{verbatim}{90}{\code {verbatim}}
+\entry{verbatiminclude}{91}{\code {verbatiminclude}}
+\entry{lisp}{91}{\code {lisp}}
+\entry{smallexample}{92}{\code {smallexample}}
+\entry{smallformat}{92}{\code {smallformat}}
+\entry{smalllisp}{92}{\code {smalllisp}}
+\entry{smallquotation}{92}{\code {smallquotation}}
+\entry{display}{92}{\code {display}}
+\entry{smalldisplay}{92}{\code {smalldisplay}}
+\entry{format}{93}{\code {format}}
+\entry{smallformat}{93}{\code {smallformat}}
+\entry{exdent}{93}{\code {exdent}}
+\entry{flushleft}{93}{\code {flushleft}}
+\entry{flushright}{93}{\code {flushright}}
+\entry{raggedright}{94}{\code {raggedright}}
+\entry{noindent}{94}{\code {noindent}}
+\entry{indent}{95}{\code {indent}}
+\entry{cartouche}{96}{\code {cartouche}}
+\entry{end}{97}{\code {end}}
+\entry{itemize}{98}{\code {itemize}}
+\entry{item}{98}{\code {item}}
+\entry{enumerate}{99}{\code {enumerate}}
+\entry{table}{100}{\code {table}}
+\entry{asis}{101}{\code {asis}}
+\entry{item}{101}{\code {item}}
+\entry{ftable}{102}{\code {ftable}}
+\entry{vtable}{102}{\code {vtable}}
+\entry{itemx}{102}{\code {itemx}}
+\entry{multitable}{102}{\code {multitable}}
+\entry{columnfractions}{103}{\code {columnfractions}}
+\entry{item}{103}{\code {item}}
+\entry{tab}{103}{\code {tab}}
+\entry{headitem}{103}{\code {headitem}}
+\entry{headitemfont}{103}{\code {headitemfont}}
+\entry{float}{105}{\code {float}}
+\entry{caption}{106}{\code {caption}}
+\entry{shortcaption}{106}{\code {shortcaption}}
+\entry{listoffloats}{106}{\code {listoffloats}}
+\entry{image}{107}{\code {image}}
+\entry{- (in image alt string)}{108}{\code {- (in image alt string)}}
+\entry{footnote}{109}{\code {footnote}}
+\entry{footnotestyle}{110}{\code {footnotestyle}}
+\entry{cindex}{112}{\code {cindex}}
+\entry{findex}{112}{\code {findex}}
+\entry{kindex}{112}{\code {kindex}}
+\entry{pindex}{112}{\code {pindex}}
+\entry{tindex}{112}{\code {tindex}}
+\entry{vindex}{112}{\code {vindex}}
+\entry{syncodeindex}{114}{\code {syncodeindex}}
+\entry{synindex}{115}{\code {synindex}}
+\entry{defindex}{115}{\code {defindex}}
+\entry{defcodeindex}{115}{\code {defcodeindex}}
+\entry{@ (literal @)}{117}{\code {@ \r {(literal \samp address@hidden)}}}
address@hidden|a|b (literal @)}{117}{\code address@hidden \char 123}{\tt \char 
125} \r {(literal \samp address@hidden)}}}
+\entry{|a (literal |a)}{117}{\code {{\tt \char 123} \r {(literal \samp {{\tt 
\char 123}})}}}
+\entry{|b (literal |b)}{117}{\code {{\tt \char 125} \r {(literal \samp {{\tt 
\char 125}})}}}
address@hidden|a|b (literal |a)}{117}{\code address@hidden \char 123}{\tt \char 
125} \r {(literal \samp {{\tt \char 123}})}}}
address@hidden|a|b (literal |b)}{117}{\code address@hidden \char 123}{\tt \char 
125} \r {(literal \samp {{\tt \char 125}})}}}
+\entry{comma}{118}{\code {comma}}
+\entry{backslash}{118}{\code {backslash}}
address@hidden|a|b (literal #)}{118}{\code address@hidden \char 123}{\tt \char 
125} \r {(literal \samp {#})}}}
address@hidden on-off}{119}{\code address@hidden \var {on-off}}}
address@hidden on-off}{119}{\code address@hidden \var {on-off}}}
+\entry{<space>}{119}{\code {<space>}}
+\entry{<tab>}{119}{\code {<tab>}}
+\entry{<newline>}{119}{\code {<newline>}}
+\entry{<colon> (suppress end-of-sentence space)}{120}{\code {<colon> \r 
{(suppress end-of-sentence space)}}}
+\entry{. (end of sentence)}{121}{\code {. \r {(end of sentence)}}}
+\entry{! (end of sentence)}{121}{\code {! \r {(end of sentence)}}}
+\entry{? (end of sentence)}{121}{\code {? \r {(end of sentence)}}}
+\entry{frenchspacing}{121}{\code {frenchspacing}}
+\entry{dmn}{122}{\code {dmn}}
+\entry{documentencoding}{122}{\code {documentencoding}}
+\entry{" (umlaut accent)}{122}{\code {" \r {(umlaut accent)}}}
+\entry{' (umlaut accent)}{122}{\code {' \r {(umlaut accent)}}}
+\entry{= (macron accent)}{122}{\code {= \r {(macron accent)}}}
+\entry{^ (circumflex accent)}{122}{\code {^ \r {(circumflex accent)}}}
+\entry{` (grave accent)}{122}{\code {` \r {(grave accent)}}}
+\entry{~ (tilde accent)}{122}{\code {~ \r {(tilde accent)}}}
+\entry{, (cedilla accent)}{122}{\code {, \r {(cedilla accent)}}}
+\entry{dotaccent}{122}{\code {dotaccent}}
+\entry{H (Hungarian umlaut accent)}{122}{\code {H \r {(Hungarian umlaut 
accent)}}}
+\entry{ogonek}{122}{\code {ogonek}}
+\entry{ringaccent}{122}{\code {ringaccent}}
+\entry{tieaccent}{122}{\code {tieaccent}}
+\entry{u (breve accent)}{122}{\code {u \r {(breve accent)}}}
+\entry{ubaraccent}{122}{\code {ubaraccent}}
+\entry{udotaccent}{122}{\code {udotaccent}}
+\entry{v (check accent)}{122}{\code {v \r {(check accent)}}}
+\entry{questiondown}{123}{\code {questiondown}}
+\entry{exclamdown}{123}{\code {exclamdown}}
+\entry{aa}{123}{\code {aa}}
+\entry{AA}{123}{\code {AA}}
+\entry{ae}{123}{\code {ae}}
+\entry{AE}{123}{\code {AE}}
+\entry{dh}{123}{\code {dh}}
+\entry{DH}{123}{\code {DH}}
+\entry{dotless}{123}{\code {dotless}}
+\entry{l}{123}{\code {l}}
+\entry{L}{123}{\code {L}}
+\entry{o}{123}{\code {o}}
+\entry{O}{123}{\code {O}}
+\entry{oe}{123}{\code {oe}}
+\entry{OE}{123}{\code {OE}}
+\entry{ordf}{123}{\code {ordf}}
+\entry{ordm}{123}{\code {ordm}}
+\entry{ss}{123}{\code {ss}}
+\entry{th}{123}{\code {th}}
+\entry{TH}{123}{\code {TH}}
+\entry{documentencoding}{123}{\code {documentencoding}}
+\entry{quotedblleft}{124}{\code {quotedblleft}}
+\entry{quoteleft}{124}{\code {quoteleft}}
+\entry{quotedblright}{124}{\code {quotedblright}}
+\entry{quoteright}{124}{\code {quoteright}}
+\entry{quotedblbase}{124}{\code {quotedblbase}}
+\entry{quotesinglbase}{124}{\code {quotesinglbase}}
+\entry{guillemetleft}{124}{\code {guillemetleft}}
+\entry{guillemotleft}{124}{\code {guillemotleft}}
+\entry{guillemetright}{124}{\code {guillemetright}}
+\entry{guillemotright}{124}{\code {guillemotright}}
+\entry{guilsinglleft}{124}{\code {guilsinglleft}}
+\entry{guilsinglright}{124}{\code {guilsinglright}}
+\entry{math}{124}{\code {math}}
+\entry{{\tt \indexbackslash } (literal {\tt \indexbackslash } in 
@math)}{125}{\code {{\tt \backslashcurfont } \r {(literal {\tt 
\backslashcurfont } in \code address@hidden)}}}
+\entry{TeX}{125}{\code {TeX}}
+\entry{LaTeX}{125}{\code {LaTeX}}
+\entry{copyright}{125}{\code {copyright}}
+\entry{registeredsymbol}{126}{\code {registeredsymbol}}
+\entry{dots}{126}{\code {dots}}
+\entry{enddots}{126}{\code {enddots}}
+\entry{bullet}{126}{\code {bullet}}
+\entry{euro}{126}{\code {euro}}
+\entry{pounds}{126}{\code {pounds}}
+\entry{textdegree}{126}{\code {textdegree}}
+\entry{minus}{127}{\code {minus}}
+\entry{geq}{127}{\code {geq}}
+\entry{leq}{127}{\code {leq}}
+\entry{result}{128}{\code {result}}
+\entry{expansion}{128}{\code {expansion}}
+\entry{print}{128}{\code {print}}
+\entry{error}{129}{\code {error}}
+\entry{equiv}{129}{\code {equiv}}
+\entry{point}{129}{\code {point}}
+\entry{clicksequence}{130}{\code {clicksequence}}
+\entry{click}{130}{\code {click}}
+\entry{arrow}{130}{\code {arrow}}
+\entry{clickstyle}{130}{\code {clickstyle}}
+\entry{* (force line break)}{132}{\code {* \r {(force line break)}}}
+\entry{/ (allow line break)}{132}{\code {/ \r {(allow line break)}}}
+\entry{- (discretionary hyphen)}{133}{\code {- \r {(discretionary hyphen)}}}
+\entry{hyphenation}{133}{\code {hyphenation}}
+\entry{allowcodebreaks}{133}{\code {allowcodebreaks}}
+\entry{w (prevent line break)}{134}{\code {w \r {(prevent line break)}}}
+\entry{tie (unbreakable interword space)}{134}{\code {tie \r {(unbreakable 
interword space)}}}
+\entry{sp (line spacing)}{134}{\code {sp \r {(line spacing)}}}
+\entry{page}{134}{\code {page}}
+\entry{group}{135}{\code {group}}
+\entry{need}{135}{\code {need}}
+\entry{forward-word}{136}{\code {forward-word}}
+\entry{fn-name}{137}{\code {fn-name}}
+\entry{foobar}{138}{\code {foobar}}
+\entry{deffnx}{138}{\code {deffnx}}
+\entry{isearch-forward}{138}{\code {isearch-forward}}
+\entry{isearch-backward}{138}{\code {isearch-backward}}
+\entry{deffn}{139}{\code {deffn}}
+\entry{defun}{139}{\code {defun}}
+\entry{defmac}{139}{\code {defmac}}
+\entry{defspec}{139}{\code {defspec}}
+\entry{defvr}{140}{\code {defvr}}
+\entry{defvar}{140}{\code {defvar}}
+\entry{defopt}{140}{\code {defopt}}
+\entry{deftypefn}{141}{\code {deftypefn}}
+\entry{foobar}{141}{\code {foobar}}
+\entry{deftypefun}{142}{\code {deftypefun}}
+\entry{deftypefnnewline}{142}{\code {deftypefnnewline}}
+\entry{deftypevr}{142}{\code {deftypevr}}
+\entry{deftypevar}{143}{\code {deftypevar}}
+\entry{deftp}{143}{\code {deftp}}
+\entry{defcv}{144}{\code {defcv}}
+\entry{deftypecv}{144}{\code {deftypecv}}
+\entry{defivar}{144}{\code {defivar}}
+\entry{deftypeivar}{145}{\code {deftypeivar}}
+\entry{defop}{145}{\code {defop}}
+\entry{deftypeop}{146}{\code {deftypeop}}
+\entry{defmethod}{146}{\code {defmethod}}
+\entry{defmethod}{146}{\code {defmethod}}
+\entry{apply}{147}{\code {apply}}
+\entry{documentlanguage}{149}{\code {documentlanguage}}
+\entry{documentencoding}{150}{\code {documentencoding}}
+\entry{ifinfo}{152}{\code {ifinfo}}
+\entry{ifdocbook}{152}{\code {ifdocbook}}
+\entry{ifhtml}{152}{\code {ifhtml}}
+\entry{ifplaintext}{152}{\code {ifplaintext}}
+\entry{iftex}{152}{\code {iftex}}
+\entry{ifxml}{152}{\code {ifxml}}
+\entry{errormsg}{153}{\code {errormsg}}
+\entry{ifnotdocbook}{153}{\code {ifnotdocbook}}
+\entry{ifnothtml}{153}{\code {ifnothtml}}
+\entry{ifnotinfo}{153}{\code {ifnotinfo}}
+\entry{ifnotplaintext}{153}{\code {ifnotplaintext}}
+\entry{ifnottex}{153}{\code {ifnottex}}
+\entry{ifnotxml}{153}{\code {ifnotxml}}
+\entry{tex}{154}{\code {tex}}
+\entry{{\tt \indexbackslash }gdef within @tex}{154}{\code {{\tt 
\backslashcurfont }gdef \r {within \code address@hidden
+\entry{{\tt \indexbackslash }globaldefs within @tex}{154}{\code {{\tt 
\backslashcurfont }globaldefs \r {within \code address@hidden
+\entry{ifhtml}{154}{\code {ifhtml}}
+\entry{html}{154}{\code {html}}
+\entry{ifxml}{154}{\code {ifxml}}
+\entry{xml}{154}{\code {xml}}
+\entry{ifdocbook}{155}{\code {ifdocbook}}
+\entry{docbook}{155}{\code {docbook}}
+\entry{inlinefmt}{155}{\code {inlinefmt}}
+\entry{inlinefmtifelse}{155}{\code {inlinefmtifelse}}
+\entry{inlineraw}{155}{\code {inlineraw}}
+\entry{set}{156}{\code {set}}
+\entry{value}{156}{\code {value}}
+\entry{clear}{156}{\code {clear}}
+\entry{ifset}{157}{\code {ifset}}
+\entry{ifclear}{158}{\code {ifclear}}
+\entry{inlineifset}{158}{\code {inlineifset}}
+\entry{inlineifclear}{158}{\code {inlineifclear}}
+\entry{macro}{162}{\code {macro}}
+\entry{rmacro}{163}{\code {rmacro}}
+\entry{unmacro}{163}{\code {unmacro}}
+\entry{alias}{168}{\code {alias}}
+\entry{definfoenclose}{168}{\code {definfoenclose}}
+\entry{phoo}{169}{\code {phoo}}
+\entry{headword}{169}{\code {headword}}
+\entry{errormsg, and line numbers in TeX{}}{170}{\code {errormsg\r {, and line 
numbers in \TeX {}}}}
+\entry{include}{172}{\code {include}}
+\entry{texinfo-multiple-files-update}{172}{\code 
{texinfo-multiple-files-update}}
+\entry{novalidate}{176}{\code {novalidate}}
+\entry{hbox}{183}{\code {hbox}}
+\entry{{\tt \indexbackslash }emergencystretch}{183}{\code {{\tt 
\backslashcurfont }emergencystretch}}
+\entry{finalout}{183}{\code {finalout}}
+\entry{smallbook}{183}{\code {smallbook}}
+\entry{afourpaper}{184}{\code {afourpaper}}
+\entry{afourlatex}{184}{\code {afourlatex}}
+\entry{afourwide}{184}{\code {afourwide}}
+\entry{pagesizes}{184}{\code {pagesizes}}
+\entry{cropmarks}{185}{\code {cropmarks}}
+\entry{{\tt \indexbackslash }mag (raw TeX{} magnification)}{185}{\code {{\tt 
\backslashcurfont }mag \r {(raw \TeX {} magnification)}}}
+\entry{Texinfo::Parser module}{187}{\code {Texinfo::Parser module}}
+\entry{docbook}{197}{\code {docbook}}
+\entry{dvi}{197}{\code {dvi}}
+\entry{dvipdf}{197}{\code {dvipdf}}
+\entry{html}{197}{\code {html}}
+\entry{info}{197}{\code {info}}
+\entry{pdf}{197}{\code {pdf}}
+\entry{plaintext}{197}{\code {plaintext}}
+\entry{ps}{197}{\code {ps}}
+\entry{xml}{197}{\code {xml}}
+\entry{debugcount}{197}{\code {debugcount}}
+\entry{debugtree}{197}{\code {debugtree}}
+\entry{parse}{197}{\code {parse}}
+\entry{plaintexinfo}{197}{\code {plaintexinfo}}
+\entry{rawtext}{197}{\code {rawtext}}
+\entry{structure}{197}{\code {structure}}
+\entry{texinfosxml}{197}{\code {texinfosxml}}
+\entry{textcontent}{197}{\code {textcontent}}
+\entry{complete_tree_nodes_menus}{206}{\code {complete_tree_nodes_menus}}
+\entry{fill_gaps_in_sectioning}{206}{\code {fill_gaps_in_sectioning}}
+\entry{indent_menu_descriptions}{206}{\code {indent_menu_descriptions}}
+\entry{insert_nodes_for_sectioning_commands}{207}{\code 
{insert_nodes_for_sectioning_commands}}
+\entry{move_index_entries_after_items}{207}{\code 
{move_index_entries_after_items}}
+\entry{regenerate_master_menu}{207}{\code {regenerate_master_menu}}
+\entry{simple_menu}{207}{\code {simple_menu}}
+\entry{makeinfo-region}{211}{\code {makeinfo-region}}
+\entry{makeinfo-buffer}{211}{\code {makeinfo-buffer}}
+\entry{next-error}{211}{\code {next-error}}
+\entry{makeinfo-kill-job}{212}{\code {makeinfo-kill-job}}
+\entry{makeinfo-recenter-output-buffer}{212}{\code 
{makeinfo-recenter-output-buffer}}
+\entry{texinfo-format-region}{212}{\code {texinfo-format-region}}
+\entry{texinfo-format-buffer}{212}{\code {texinfo-format-buffer}}
+\entry{dircategory}{216}{\code {dircategory}}
+\entry{direntry}{216}{\code {direntry}}
+\entry{refill}{247}{\code {refill}}
+\entry{everyheading}{268}{\code {everyheading}}
+\entry{everyfooting}{268}{\code {everyfooting}}
+\entry{evenheading}{268}{\code {evenheading}}
+\entry{evenfooting}{268}{\code {evenfooting}}
+\entry{oddheading}{268}{\code {oddheading}}
+\entry{oddfooting}{268}{\code {oddfooting}}
+\entry{thispage}{269}{\code {thispage}}
+\entry{thissectionname}{269}{\code {thissectionname}}
+\entry{thissectionnum}{269}{\code {thissectionnum}}
+\entry{thissection}{269}{\code {thissection}}
+\entry{thischaptername}{269}{\code {thischaptername}}
+\entry{thischapternum}{269}{\code {thischapternum}}
+\entry{thischapter}{269}{\code {thischapter}}
+\entry{thistitle}{269}{\code {thistitle}}
+\entry{thisfile}{269}{\code {thisfile}}
+\entry{today}{269}{\code {today}}
+\entry{everyheadingmarks}{269}{\code {everyheadingmarks}}
+\entry{everyfootingmarks}{269}{\code {everyfootingmarks}}
+\entry{evenheadingmarks}{270}{\code {evenheadingmarks}}
+\entry{oddheadingmarks}{270}{\code {oddheadingmarks}}
+\entry{evenfootingmarks}{270}{\code {evenfootingmarks}}
+\entry{oddfootingmarks}{270}{\code {oddfootingmarks}}
+\entry{texinfo-show-structure}{274}{\code {texinfo-show-structure}}
+\entry{occur}{275}{\code {occur}}
+\entry{Info-validate}{275}{\code {Info-validate}}

Added: trunk/texindex/tests/texinfo.fns
===================================================================
--- trunk/texindex/tests/texinfo.fns                            (rev 0)
+++ trunk/texindex/tests/texinfo.fns    2014-12-03 00:57:15 UTC (rev 5946)
@@ -0,0 +1,454 @@
+\initial {!}
+\entry {\code {! \r {(end of sentence)}}}{121}
+\initial {"}
+\entry {\code {" \r {(umlaut accent)}}}{122}
+\initial {'}
+\entry {\code {' \r {(umlaut accent)}}}{122}
+\initial {*}
+\entry {\code {* \r {(force line break)}}}{132}
+\initial {,}
+\entry {\code {, \r {(cedilla accent)}}}{122}
+\initial {-}
+\entry {\code {- \r {(discretionary hyphen)}}}{133}
+\entry {\code {- (in image alt string)}}{108}
+\initial {.}
+\entry {\code {. \r {(end of sentence)}}}{121}
+\initial {/}
+\entry {\code {/ \r {(allow line break)}}}{132}
+\initial {<}
+\entry {\code {<colon> \r {(suppress end-of-sentence space)}}}{120}
+\entry {\code {<newline>}}{119}
+\entry {\code {<space>}}{119}
+\entry {\code {<tab>}}{119}
+\initial {=}
+\entry {\code {= \r {(macron accent)}}}{122}
+\initial {?}
+\entry {\code {? \r {(end of sentence)}}}{121}
+\initial address@hidden
+\entry {\code {@ \r {(literal \samp address@hidden)}}}{117}
+\entry {\code address@hidden \char 123}{\tt \char 125} \r {(literal \samp 
address@hidden)}}}{117}
+\entry {\code address@hidden \var {on-off}}}{119}
+\entry {\code address@hidden \var {on-off}}}{119}
+\entry {\code address@hidden \char 123}{\tt \char 125} \r {(literal \samp 
{#})}}}{118}
+\entry {\code address@hidden \char 123}{\tt \char 125} \r {(literal \samp 
{{\tt \char 123}})}}}{117}
+\entry {\code address@hidden \char 123}{\tt \char 125} \r {(literal \samp 
{{\tt \char 125}})}}}{117}
+\initial {^}
+\entry {\code {^ \r {(circumflex accent)}}}{122}
+\initial {`}
+\entry {\code {` \r {(grave accent)}}}{122}
+\initial {\\}
+\entry {\code {{\tt \backslashcurfont } \r {(literal {\tt \backslashcurfont } 
in \code address@hidden)}}}{125}
+\entry {\code {{\tt \backslashcurfont }emergencystretch}}{183}
+\entry {\code {{\tt \backslashcurfont }gdef \r {within \code address@hidden
+\entry {\code {{\tt \backslashcurfont }globaldefs \r {within \code 
address@hidden
+\entry {\code {{\tt \backslashcurfont }input \r {(raw \TeX {} startup)}}}{10}
+\entry {\code {{\tt \backslashcurfont }mag \r {(raw \TeX {} 
magnification)}}}{185}
+\initial {|}
+\entry {\code {{\tt \char 123} \r {(literal \samp {{\tt \char 123}})}}}{117}
+\entry {\code {{\tt \char 125} \r {(literal \samp {{\tt \char 125}})}}}{117}
+\initial {~}
+\entry {\code {~ \r {(tilde accent)}}}{122}
+\initial {A}
+\entry {\code {aa}}{123}
+\entry {\code {AA}}{123}
+\entry {\code {abbr}}{83}
+\entry {\code {acronym}}{83}
+\entry {\code {ae}}{123}
+\entry {\code {AE}}{123}
+\entry {\code {afourlatex}}{184}
+\entry {\code {afourpaper}}{184}
+\entry {\code {afourwide}}{184}
+\entry {\code {alias}}{168}
+\entry {\code {allowcodebreaks}}{133}
+\entry {\code {anchor}}{58}
+\entry {\code {appendix}}{48}
+\entry {\code {appendixsec}}{49}
+\entry {\code {appendixsection}}{49}
+\entry {\code {appendixsubsec}}{49}
+\entry {\code {appendixsubsubsec}}{50}
+\entry {\code {apply}}{147}
+\entry {\code {arrow}}{130}
+\entry {\code {asis}}{101}
+\entry {\code {author}}{35}
+\initial {B}
+\entry {\code {b \r {(bold font)}}}{86}
+\entry {\code {backslash}}{118}
+\entry {\code {bullet}}{126}
+\entry {\code {bye}}{44, 45}
+\initial {C}
+\entry {\code {c \r {(comment)}}}{10}
+\entry {\code {caption}}{106}
+\entry {\code {cartouche}}{96}
+\entry {\code {center}}{34}
+\entry {\code {centerchap}}{48}
+\entry {\code {chapheading}}{48}
+\entry {\code {chapter}}{47}
+\entry {\code {cindex}}{112}
+\entry {\code {cite}}{75}
+\entry {\code {clear}}{156}
+\entry {\code {click}}{130}
+\entry {\code {clicksequence}}{130}
+\entry {\code {clickstyle}}{130}
+\entry {\code {code}}{77}
+\entry {\code {columnfractions}}{103}
+\entry {\code {comma}}{118}
+\entry {\code {command}}{82}
+\entry {\code {comment}}{10}
+\entry {\code {complete_tree_nodes_menus}}{206}
+\entry {\code {contents}}{37}
+\entry {\code {copying}}{32}
+\entry {\code {copyright}}{32, 125}
+\entry {\code {cropmarks}}{185}
+\initial {D}
+\entry {\code {debugcount}}{197}
+\entry {\code {debugtree}}{197}
+\entry {\code {defcodeindex}}{115}
+\entry {\code {defcv}}{144}
+\entry {\code {deffn}}{139}
+\entry {\code {deffnx}}{138}
+\entry {\code {defindex}}{115}
+\entry {\code {definfoenclose}}{168}
+\entry {\code {defivar}}{144}
+\entry {\code {defmac}}{139}
+\entry {\code {defmethod}}{146}
+\entry {\code {defop}}{145}
+\entry {\code {defopt}}{140}
+\entry {\code {defspec}}{139}
+\entry {\code {deftp}}{143}
+\entry {\code {deftypecv}}{144}
+\entry {\code {deftypefn}}{141}
+\entry {\code {deftypefnnewline}}{142}
+\entry {\code {deftypefun}}{142}
+\entry {\code {deftypeivar}}{145}
+\entry {\code {deftypeop}}{146}
+\entry {\code {deftypevar}}{143}
+\entry {\code {deftypevr}}{142}
+\entry {\code {defun}}{139}
+\entry {\code {defvar}}{140}
+\entry {\code {defvr}}{140}
+\entry {\code {DEL \r {(comment character)}}}{10}
+\entry {\code {detailmenu}}{39, 58}
+\entry {\code {dfn}}{82}
+\entry {\code {dh}}{123}
+\entry {\code {DH}}{123}
+\entry {\code {dircategory}}{216}
+\entry {\code {direntry}}{216}
+\entry {\code {display}}{92}
+\entry {\code {dmn}}{122}
+\entry {\code {docbook}}{155, 197}
+\entry {\code {documentdescription}}{40}
+\entry {\code {documentencoding}}{122, 123, 150}
+\entry {\code {documentlanguage}}{149}
+\entry {\code {dotaccent}}{122}
+\entry {\code {dotless}}{123}
+\entry {\code {dots}}{126}
+\entry {\code {dvi}}{197}
+\entry {\code {dvipdf}}{197}
+\initial {E}
+\entry {\code {email}}{84}
+\entry {\code {emph}}{85}
+\entry {\code {end}}{87, 97}
+\entry {\code {enddots}}{126}
+\entry {\code {enumerate}}{99}
+\entry {\code {env}}{81}
+\entry {\code {equiv}}{129}
+\entry {\code {error}}{129}
+\entry {\code {errormsg}}{153}
+\entry {\code {errormsg\r {, and line numbers in \TeX {}}}}{170}
+\entry {\code {euro}}{126}
+\entry {\code {evenfooting}}{268}
+\entry {\code {evenfootingmarks}}{270}
+\entry {\code {evenheading}}{268}
+\entry {\code {evenheadingmarks}}{270}
+\entry {\code {everyfooting}}{268}
+\entry {\code {everyfootingmarks}}{269}
+\entry {\code {everyheading}}{268}
+\entry {\code {everyheadingmarks}}{269}
+\entry {\code {example}}{89}
+\entry {\code {exampleindent}}{43}
+\entry {\code {exclamdown}}{123}
+\entry {\code {exdent}}{93}
+\entry {\code {expansion}}{128}
+\initial {F}
+\entry {\code {file}}{82}
+\entry {\code {fill_gaps_in_sectioning}}{206}
+\entry {\code {filll \r {\TeX {} dimension}}}{36}
+\entry {\code {finalout}}{183}
+\entry {\code {findex}}{112}
+\entry {\code {firstparagraphindent}}{43}
+\entry {\code {float}}{105}
+\entry {\code {flushleft}}{93}
+\entry {\code {flushright}}{93}
+\entry {\code {fn-name}}{137}
+\entry {\code {fonttextsize}}{85}
+\entry {\code {foobar}}{138, 141}
+\entry {\code {footnote}}{109}
+\entry {\code {footnotestyle}}{110}
+\entry {\code {format}}{93}
+\entry {\code {forward-word}}{136}
+\entry {\code {frenchspacing}}{121}
+\entry {\code {ftable}}{102}
+\initial {G}
+\entry {\code {geq}}{127}
+\entry {\code {group}}{135}
+\entry {\code {guillemetleft}}{124}
+\entry {\code {guillemetright}}{124}
+\entry {\code {guillemotleft}}{124}
+\entry {\code {guillemotright}}{124}
+\entry {\code {guilsinglleft}}{124}
+\entry {\code {guilsinglright}}{124}
+\initial {H}
+\entry {\code {H \r {(Hungarian umlaut accent)}}}{122}
+\entry {\code {hbox}}{183}
+\entry {\code {heading}}{49}
+\entry {\code {headings}}{41}
+\entry {\code {headitem}}{103}
+\entry {\code {headitemfont}}{103}
+\entry {\code {headword}}{169}
+\entry {\code {html}}{154, 197}
+\entry {\code {hyphenation}}{133}
+\initial {I}
+\entry {\code {i \r {(italic font)}}}{86}
+\entry {\code {ifclear}}{158}
+\entry {\code {ifdocbook}}{152, 155}
+\entry {\code {ifhtml}}{152, 154}
+\entry {\code {ifinfo}}{152}
+\entry {\code {ifnotdocbook}}{153}
+\entry {\code {ifnothtml}}{153}
+\entry {\code {ifnotinfo}}{153}
+\entry {\code {ifnotplaintext}}{153}
+\entry {\code {ifnottex}}{153}
+\entry {\code {ifnotxml}}{153}
+\entry {\code {ifplaintext}}{152}
+\entry {\code {ifset}}{157}
+\entry {\code {iftex}}{152}
+\entry {\code {ifxml}}{152, 154}
+\entry {\code {ignore}}{10}
+\entry {\code {image}}{107}
+\entry {\code {include}}{172}
+\entry {\code {indent}}{95}
+\entry {\code {indent_menu_descriptions}}{206}
+\entry {\code {indentedblock}}{89}
+\entry {\code {indicateurl}}{84}
+\entry {\code {info}}{197}
+\entry {\code {Info-validate}}{275}
+\entry {\code {inforef}}{73}
+\entry {\code {inlinefmt}}{155}
+\entry {\code {inlinefmtifelse}}{155}
+\entry {\code {inlineifclear}}{158}
+\entry {\code {inlineifset}}{158}
+\entry {\code {inlineraw}}{155}
+\entry {\code {insert_nodes_for_sectioning_commands}}{207}
+\entry {\code {insertcopying}}{33}
+\entry {\code {isearch-backward}}{138}
+\entry {\code {isearch-forward}}{138}
+\entry {\code {item}}{98, 101, 103}
+\entry {\code {itemize}}{98}
+\entry {\code {itemx}}{102}
+\initial {K}
+\entry {\code {kbd}}{78}
+\entry {\code {kbdinputstyle}}{78}
+\entry {\code {key}}{79}
+\entry {\code {kindex}}{112}
+\initial {L}
+\entry {\code {l}}{123}
+\entry {\code {LaTeX}}{125}
+\entry {\code {leq}}{127}
+\entry {\code {lisp}}{91}
+\entry {\code {listoffloats}}{106}
+\entry {\code {lowersections}}{51}
+\entry {\code {L}}{123}
+\initial {M}
+\entry {\code {macro}}{162}
+\entry {\code {majorheading}}{48}
+\entry {\code {makeinfo-buffer}}{211}
+\entry {\code {makeinfo-kill-job}}{212}
+\entry {\code {makeinfo-recenter-output-buffer}}{212}
+\entry {\code {makeinfo-region}}{211}
+\entry {\code {math}}{124}
+\entry {\code {menu}}{61}
+\entry {\code {minus}}{127}
+\entry {\code {move_index_entries_after_items}}{207}
+\entry {\code {multitable}}{102}
+\initial {N}
+\entry {\code {need}}{135}
+\entry {\code {next-error}}{211}
+\entry {\code {node}}{53}
+\entry {\code {noindent}}{94}
+\entry {\code {novalidate}}{176}
+\initial {O}
+\entry {\code {o}}{123}
+\entry {\code {occur}}{275}
+\entry {\code {occur-mode-goto-occurrence}}{19}
+\entry {\code {oddfooting}}{268}
+\entry {\code {oddfootingmarks}}{270}
+\entry {\code {oddheading}}{268}
+\entry {\code {oddheadingmarks}}{270}
+\entry {\code {oe}}{123}
+\entry {\code {OE}}{123}
+\entry {\code {ogonek}}{122}
+\entry {\code {option}}{82}
+\entry {\code {ordf}}{123}
+\entry {\code {ordm}}{123}
+\entry {\code {O}}{123}
+\initial {P}
+\entry {\code {page}}{134}
+\entry {\code {page\r {, within \code address@hidden
+\entry {\code {pagesizes}}{184}
+\entry {\code {paragraphindent}}{42}
+\entry {\code {parse}}{197}
+\entry {\code {part}}{50}
+\entry {\code {pdf}}{197}
+\entry {\code {phoo}}{169}
+\entry {\code {pindex}}{112}
+\entry {\code {plaintexinfo}}{197}
+\entry {\code {plaintext}}{197}
+\entry {\code {point}}{129}
+\entry {\code {pounds}}{126}
+\entry {\code {print}}{128}
+\entry {\code {printindex}}{44}
+\entry {\code {ps}}{197}
+\entry {\code {pxref}}{72}
+\initial {Q}
+\entry {\code {questiondown}}{123}
+\entry {\code {quotation}}{88}
+\entry {\code {quotedblbase}}{124}
+\entry {\code {quotedblleft}}{124}
+\entry {\code {quotedblright}}{124}
+\entry {\code {quoteleft}}{124}
+\entry {\code {quoteright}}{124}
+\entry {\code {quotesinglbase}}{124}
+\initial {R}
+\entry {\code {r \r {(roman font)}}}{86}
+\entry {\code {raggedright}}{94}
+\entry {\code {raisesections}}{51}
+\entry {\code {rawtext}}{197}
+\entry {\code {ref}}{72}
+\entry {\code {refill}}{247}
+\entry {\code {regenerate_master_menu}}{207}
+\entry {\code {registeredsymbol}}{126}
+\entry {\code {result}}{128}
+\entry {\code {ringaccent}}{122}
+\entry {\code {rmacro}}{163}
+\initial {S}
+\entry {\code {samp}}{80}
+\entry {\code {sansserif \r {(sans serif font)}}}{86}
+\entry {\code {sc \r {(small caps font)}}}{85}
+\entry {\code {section}}{48}
+\entry {\code {set}}{156}
+\entry {\code {setchapternewpage}}{40}
+\entry {\code {setcontentsaftertitlepage}}{38}
+\entry {\code {setfilename}}{30}
+\entry {\code {setshortcontentsaftertitlepage}}{38}
+\entry {\code {settitle}}{31}
+\entry {\code {shortcaption}}{106}
+\entry {\code {shortcontents}}{37}
+\entry {\code {shorttitlepage}}{34}
+\entry {\code {simple_menu}}{207}
+\entry {\code {slanted \r {(slanted font)}}}{86}
+\entry {\code {smallbook}}{183}
+\entry {\code {smalldisplay}}{92}
+\entry {\code {smallexample}}{92}
+\entry {\code {smallformat}}{92, 93}
+\entry {\code {smallindentedblock}}{89}
+\entry {\code {smalllisp}}{92}
+\entry {\code {smallquotation}}{89, 92}
+\entry {\code {sp \r {(line spacing)}}}{134}
+\entry {\code {sp \r {(titlepage line spacing)}}}{34}
+\entry {\code {ss}}{123}
+\entry {\code {strong}}{85}
+\entry {\code {structure}}{197}
+\entry {\code {subheading}}{49}
+\entry {\code {subsection}}{49}
+\entry {\code {subsubheading}}{50}
+\entry {\code {subsubsection}}{50}
+\entry {\code {subtitle}}{35}
+\entry {\code {summarycontents}}{37}
+\entry {\code {syncodeindex}}{114}
+\entry {\code {synindex}}{115}
+\initial {T}
+\entry {\code {t \r {(typewriter font)}}}{86}
+\entry {\code {tab}}{103}
+\entry {\code {table}}{100}
+\entry {\code {tex}}{154}
+\entry {\code {texinfo-all-menus-update}}{21}
+\entry {\code {texinfo-every-node-update}}{21}
+\entry {\code {texinfo-format-buffer}}{24, 212}
+\entry {\code {texinfo-format-region}}{24, 212}
+\entry {\code {texinfo-indent-menu-description}}{23}
+\entry {\code address@hidden
+\entry {\code address@hidden
+\entry {\code address@hidden
+\entry {\code address@hidden
+\entry {\code address@hidden
+\entry {\code address@hidden
+\entry {\code address@hidden
+\entry {\code address@hidden
+\entry {\code address@hidden
+\entry {\code address@hidden
+\entry {\code address@hidden
+\entry {\code {texinfo-insert-braces}}{18}
+\entry {\code {texinfo-insert-node-lines}}{23}
+\entry {\code {texinfo-make-menu}}{21}
+\entry {\code {texinfo-master-menu}}{20}
+\entry {\code {texinfo-multiple-files-update}}{172}
+\entry {\code {texinfo-multiple-files-update \r {(in brief)}}}{23}
+\entry {\code {texinfo-sequential-node-update}}{23}
+\entry {\code {texinfo-show-structure}}{19, 274}
+\entry {\code {texinfo-start-menu-description}}{18}
+\entry {\code {texinfo-tex-buffer}}{25}
+\entry {\code {texinfo-tex-print}}{25}
+\entry {\code {texinfo-tex-region}}{25}
+\entry {\code {texinfo-update-node}}{21}
+\entry {\code {Texinfo::Parser module}}{187}
+\entry {\code {texinfosxml}}{197}
+\entry {\code {textcontent}}{197}
+\entry {\code {textdegree}}{126}
+\entry {\code {TeX}}{125}
+\entry {\code {th}}{123}
+\entry {\code {thischapter}}{269}
+\entry {\code {thischaptername}}{269}
+\entry {\code {thischapternum}}{269}
+\entry {\code {thisfile}}{269}
+\entry {\code {thispage}}{269}
+\entry {\code {thissection}}{269}
+\entry {\code {thissectionname}}{269}
+\entry {\code {thissectionnum}}{269}
+\entry {\code {thistitle}}{269}
+\entry {\code {TH}}{123}
+\entry {\code {tie \r {(unbreakable interword space)}}}{134}
+\entry {\code {tieaccent}}{122}
+\entry {\code {tindex}}{112}
+\entry {\code {title}}{35}
+\entry {\code {titlefont}}{34}
+\entry {\code {titlepage}}{33}
+\entry {\code {today}}{269}
+\entry {\code {top}}{38, 57}
+\initial {U}
+\entry {\code {u \r {(breve accent)}}}{122}
+\entry {\code {ubaraccent}}{122}
+\entry {\code {udotaccent}}{122}
+\entry {\code {unmacro}}{163}
+\entry {\code {unnumbered}}{48}
+\entry {\code {unnumberedsec}}{49}
+\entry {\code {unnumberedsubsec}}{49}
+\entry {\code {unnumberedsubsubsec}}{50}
+\entry {\code {up-list}}{18}
+\entry {\code {uref}}{74}
+\entry {\code {urefbreakstyle}}{74}
+\initial {V}
+\entry {\code {v \r {(check accent)}}}{122}
+\entry {\code {value}}{156}
+\entry {\code {var}}{81}
+\entry {\code {verb}}{80}
+\entry {\code {verbatim}}{90}
+\entry {\code {verbatiminclude}}{91}
+\entry {\code {vindex}}{112}
+\entry {\code {vskip \r {\TeX {} vertical skip}}}{36}
+\entry {\code {vtable}}{102}
+\initial {W}
+\entry {\code {w \r {(prevent line break)}}}{134}
+\initial {X}
+\entry {\code {xml}}{154, 197}
+\entry {\code {xref}}{67}
+\entry {\code {xrefautomaticsectiontitle}}{69}


Property changes on: trunk/texindex/tests/texinfo.fns
___________________________________________________________________
Added: svn:eol-style
   + native

Added: trunk/texindex/tests/texinfo.fns-cvers
===================================================================
--- trunk/texindex/tests/texinfo.fns-cvers                              (rev 0)
+++ trunk/texindex/tests/texinfo.fns-cvers      2014-12-03 00:57:15 UTC (rev 
5946)
@@ -0,0 +1,454 @@
+\initial {!}
+\entry {\code {! \r {(end of sentence)}}}{121}
+\initial {"}
+\entry {\code {" \r {(umlaut accent)}}}{122}
+\initial {'}
+\entry {\code {' \r {(umlaut accent)}}}{122}
+\initial {*}
+\entry {\code {* \r {(force line break)}}}{132}
+\initial {,}
+\entry {\code {, \r {(cedilla accent)}}}{122}
+\initial {-}
+\entry {\code {- \r {(discretionary hyphen)}}}{133}
+\entry {\code {- (in image alt string)}}{108}
+\initial {.}
+\entry {\code {. \r {(end of sentence)}}}{121}
+\initial {/}
+\entry {\code {/ \r {(allow line break)}}}{132}
+\initial {<}
+\entry {\code {<colon> \r {(suppress end-of-sentence space)}}}{120}
+\entry {\code {<newline>}}{119}
+\entry {\code {<space>}}{119}
+\entry {\code {<tab>}}{119}
+\initial {=}
+\entry {\code {= \r {(macron accent)}}}{122}
+\initial {?}
+\entry {\code {? \r {(end of sentence)}}}{121}
+\initial address@hidden
+\entry {\code {@ \r {(literal \samp address@hidden)}}}{117}
+\entry {\code address@hidden \char 123}{\tt \char 125} \r {(literal \samp 
address@hidden)}}}{117}
+\entry {\code address@hidden \var {on-off}}}{119}
+\entry {\code address@hidden \var {on-off}}}{119}
+\entry {\code address@hidden \char 123}{\tt \char 125} \r {(literal \samp 
{#})}}}{118}
+\entry {\code address@hidden \char 123}{\tt \char 125} \r {(literal \samp 
{{\tt \char 123}})}}}{117}
+\entry {\code address@hidden \char 123}{\tt \char 125} \r {(literal \samp 
{{\tt \char 125}})}}}{117}
+\initial {^}
+\entry {\code {^ \r {(circumflex accent)}}}{122}
+\initial {`}
+\entry {\code {` \r {(grave accent)}}}{122}
+\initial {{\tt \indexbackslash }}
+\entry {\code {{\tt \backslashcurfont } \r {(literal {\tt \backslashcurfont } 
in \code address@hidden)}}}{125}
+\entry {\code {{\tt \backslashcurfont }emergencystretch}}{183}
+\entry {\code {{\tt \backslashcurfont }gdef \r {within \code address@hidden
+\entry {\code {{\tt \backslashcurfont }globaldefs \r {within \code 
address@hidden
+\entry {\code {{\tt \backslashcurfont }input \r {(raw \TeX {} startup)}}}{10}
+\entry {\code {{\tt \backslashcurfont }mag \r {(raw \TeX {} 
magnification)}}}{185}
+\initial {|}
+\entry {\code {{\tt \char 123} \r {(literal \samp {{\tt \char 123}})}}}{117}
+\entry {\code {{\tt \char 125} \r {(literal \samp {{\tt \char 125}})}}}{117}
+\initial {~}
+\entry {\code {~ \r {(tilde accent)}}}{122}
+\initial {A}
+\entry {\code {aa}}{123}
+\entry {\code {AA}}{123}
+\entry {\code {abbr}}{83}
+\entry {\code {acronym}}{83}
+\entry {\code {ae}}{123}
+\entry {\code {AE}}{123}
+\entry {\code {afourlatex}}{184}
+\entry {\code {afourpaper}}{184}
+\entry {\code {afourwide}}{184}
+\entry {\code {alias}}{168}
+\entry {\code {allowcodebreaks}}{133}
+\entry {\code {anchor}}{58}
+\entry {\code {appendix}}{48}
+\entry {\code {appendixsec}}{49}
+\entry {\code {appendixsection}}{49}
+\entry {\code {appendixsubsec}}{49}
+\entry {\code {appendixsubsubsec}}{50}
+\entry {\code {apply}}{147}
+\entry {\code {arrow}}{130}
+\entry {\code {asis}}{101}
+\entry {\code {author}}{35}
+\initial {B}
+\entry {\code {b \r {(bold font)}}}{86}
+\entry {\code {backslash}}{118}
+\entry {\code {bullet}}{126}
+\entry {\code {bye}}{44, 45}
+\initial {C}
+\entry {\code {c \r {(comment)}}}{10}
+\entry {\code {caption}}{106}
+\entry {\code {cartouche}}{96}
+\entry {\code {center}}{34}
+\entry {\code {centerchap}}{48}
+\entry {\code {chapheading}}{48}
+\entry {\code {chapter}}{47}
+\entry {\code {cindex}}{112}
+\entry {\code {cite}}{75}
+\entry {\code {clear}}{156}
+\entry {\code {click}}{130}
+\entry {\code {clicksequence}}{130}
+\entry {\code {clickstyle}}{130}
+\entry {\code {code}}{77}
+\entry {\code {columnfractions}}{103}
+\entry {\code {comma}}{118}
+\entry {\code {command}}{82}
+\entry {\code {comment}}{10}
+\entry {\code {complete_tree_nodes_menus}}{206}
+\entry {\code {contents}}{37}
+\entry {\code {copying}}{32}
+\entry {\code {copyright}}{32, 125}
+\entry {\code {cropmarks}}{185}
+\initial {D}
+\entry {\code {debugcount}}{197}
+\entry {\code {debugtree}}{197}
+\entry {\code {defcodeindex}}{115}
+\entry {\code {defcv}}{144}
+\entry {\code {deffn}}{139}
+\entry {\code {deffnx}}{138}
+\entry {\code {defindex}}{115}
+\entry {\code {definfoenclose}}{168}
+\entry {\code {defivar}}{144}
+\entry {\code {defmac}}{139}
+\entry {\code {defmethod}}{146}
+\entry {\code {defop}}{145}
+\entry {\code {defopt}}{140}
+\entry {\code {defspec}}{139}
+\entry {\code {deftp}}{143}
+\entry {\code {deftypecv}}{144}
+\entry {\code {deftypefn}}{141}
+\entry {\code {deftypefnnewline}}{142}
+\entry {\code {deftypefun}}{142}
+\entry {\code {deftypeivar}}{145}
+\entry {\code {deftypeop}}{146}
+\entry {\code {deftypevar}}{143}
+\entry {\code {deftypevr}}{142}
+\entry {\code {defun}}{139}
+\entry {\code {defvar}}{140}
+\entry {\code {defvr}}{140}
+\entry {\code {DEL \r {(comment character)}}}{10}
+\entry {\code {detailmenu}}{39, 58}
+\entry {\code {dfn}}{82}
+\entry {\code {dh}}{123}
+\entry {\code {DH}}{123}
+\entry {\code {dircategory}}{216}
+\entry {\code {direntry}}{216}
+\entry {\code {display}}{92}
+\entry {\code {dmn}}{122}
+\entry {\code {docbook}}{155, 197}
+\entry {\code {documentdescription}}{40}
+\entry {\code {documentencoding}}{122, 123, 150}
+\entry {\code {documentlanguage}}{149}
+\entry {\code {dotaccent}}{122}
+\entry {\code {dotless}}{123}
+\entry {\code {dots}}{126}
+\entry {\code {dvi}}{197}
+\entry {\code {dvipdf}}{197}
+\initial {E}
+\entry {\code {email}}{84}
+\entry {\code {emph}}{85}
+\entry {\code {end}}{87, 97}
+\entry {\code {enddots}}{126}
+\entry {\code {enumerate}}{99}
+\entry {\code {env}}{81}
+\entry {\code {equiv}}{129}
+\entry {\code {error}}{129}
+\entry {\code {errormsg}}{153}
+\entry {\code {errormsg\r {, and line numbers in \TeX {}}}}{170}
+\entry {\code {euro}}{126}
+\entry {\code {evenfooting}}{268}
+\entry {\code {evenfootingmarks}}{270}
+\entry {\code {evenheading}}{268}
+\entry {\code {evenheadingmarks}}{270}
+\entry {\code {everyfooting}}{268}
+\entry {\code {everyfootingmarks}}{269}
+\entry {\code {everyheading}}{268}
+\entry {\code {everyheadingmarks}}{269}
+\entry {\code {example}}{89}
+\entry {\code {exampleindent}}{43}
+\entry {\code {exclamdown}}{123}
+\entry {\code {exdent}}{93}
+\entry {\code {expansion}}{128}
+\initial {F}
+\entry {\code {file}}{82}
+\entry {\code {fill_gaps_in_sectioning}}{206}
+\entry {\code {filll \r {\TeX {} dimension}}}{36}
+\entry {\code {finalout}}{183}
+\entry {\code {findex}}{112}
+\entry {\code {firstparagraphindent}}{43}
+\entry {\code {float}}{105}
+\entry {\code {flushleft}}{93}
+\entry {\code {flushright}}{93}
+\entry {\code {fn-name}}{137}
+\entry {\code {fonttextsize}}{85}
+\entry {\code {foobar}}{138, 141}
+\entry {\code {footnote}}{109}
+\entry {\code {footnotestyle}}{110}
+\entry {\code {format}}{93}
+\entry {\code {forward-word}}{136}
+\entry {\code {frenchspacing}}{121}
+\entry {\code {ftable}}{102}
+\initial {G}
+\entry {\code {geq}}{127}
+\entry {\code {group}}{135}
+\entry {\code {guillemetleft}}{124}
+\entry {\code {guillemetright}}{124}
+\entry {\code {guillemotleft}}{124}
+\entry {\code {guillemotright}}{124}
+\entry {\code {guilsinglleft}}{124}
+\entry {\code {guilsinglright}}{124}
+\initial {H}
+\entry {\code {H \r {(Hungarian umlaut accent)}}}{122}
+\entry {\code {hbox}}{183}
+\entry {\code {heading}}{49}
+\entry {\code {headings}}{41}
+\entry {\code {headitem}}{103}
+\entry {\code {headitemfont}}{103}
+\entry {\code {headword}}{169}
+\entry {\code {html}}{154, 197}
+\entry {\code {hyphenation}}{133}
+\initial {I}
+\entry {\code {i \r {(italic font)}}}{86}
+\entry {\code {ifclear}}{158}
+\entry {\code {ifdocbook}}{152, 155}
+\entry {\code {ifhtml}}{152, 154}
+\entry {\code {ifinfo}}{152}
+\entry {\code {ifnotdocbook}}{153}
+\entry {\code {ifnothtml}}{153}
+\entry {\code {ifnotinfo}}{153}
+\entry {\code {ifnotplaintext}}{153}
+\entry {\code {ifnottex}}{153}
+\entry {\code {ifnotxml}}{153}
+\entry {\code {ifplaintext}}{152}
+\entry {\code {ifset}}{157}
+\entry {\code {iftex}}{152}
+\entry {\code {ifxml}}{152, 154}
+\entry {\code {ignore}}{10}
+\entry {\code {image}}{107}
+\entry {\code {include}}{172}
+\entry {\code {indent}}{95}
+\entry {\code {indent_menu_descriptions}}{206}
+\entry {\code {indentedblock}}{89}
+\entry {\code {indicateurl}}{84}
+\entry {\code {info}}{197}
+\entry {\code {Info-validate}}{275}
+\entry {\code {inforef}}{73}
+\entry {\code {inlinefmt}}{155}
+\entry {\code {inlinefmtifelse}}{155}
+\entry {\code {inlineifclear}}{158}
+\entry {\code {inlineifset}}{158}
+\entry {\code {inlineraw}}{155}
+\entry {\code {insert_nodes_for_sectioning_commands}}{207}
+\entry {\code {insertcopying}}{33}
+\entry {\code {isearch-backward}}{138}
+\entry {\code {isearch-forward}}{138}
+\entry {\code {item}}{98, 101, 103}
+\entry {\code {itemize}}{98}
+\entry {\code {itemx}}{102}
+\initial {K}
+\entry {\code {kbd}}{78}
+\entry {\code {kbdinputstyle}}{78}
+\entry {\code {key}}{79}
+\entry {\code {kindex}}{112}
+\initial {L}
+\entry {\code {l}}{123}
+\entry {\code {L}}{123}
+\entry {\code {LaTeX}}{125}
+\entry {\code {leq}}{127}
+\entry {\code {lisp}}{91}
+\entry {\code {listoffloats}}{106}
+\entry {\code {lowersections}}{51}
+\initial {M}
+\entry {\code {macro}}{162}
+\entry {\code {majorheading}}{48}
+\entry {\code {makeinfo-buffer}}{211}
+\entry {\code {makeinfo-kill-job}}{212}
+\entry {\code {makeinfo-recenter-output-buffer}}{212}
+\entry {\code {makeinfo-region}}{211}
+\entry {\code {math}}{124}
+\entry {\code {menu}}{61}
+\entry {\code {minus}}{127}
+\entry {\code {move_index_entries_after_items}}{207}
+\entry {\code {multitable}}{102}
+\initial {N}
+\entry {\code {need}}{135}
+\entry {\code {next-error}}{211}
+\entry {\code {node}}{53}
+\entry {\code {noindent}}{94}
+\entry {\code {novalidate}}{176}
+\initial {O}
+\entry {\code {o}}{123}
+\entry {\code {O}}{123}
+\entry {\code {occur}}{275}
+\entry {\code {occur-mode-goto-occurrence}}{19}
+\entry {\code {oddfooting}}{268}
+\entry {\code {oddfootingmarks}}{270}
+\entry {\code {oddheading}}{268}
+\entry {\code {oddheadingmarks}}{270}
+\entry {\code {oe}}{123}
+\entry {\code {OE}}{123}
+\entry {\code {ogonek}}{122}
+\entry {\code {option}}{82}
+\entry {\code {ordf}}{123}
+\entry {\code {ordm}}{123}
+\initial {P}
+\entry {\code {page}}{134}
+\entry {\code {page\r {, within \code address@hidden
+\entry {\code {pagesizes}}{184}
+\entry {\code {paragraphindent}}{42}
+\entry {\code {parse}}{197}
+\entry {\code {part}}{50}
+\entry {\code {pdf}}{197}
+\entry {\code {phoo}}{169}
+\entry {\code {pindex}}{112}
+\entry {\code {plaintexinfo}}{197}
+\entry {\code {plaintext}}{197}
+\entry {\code {point}}{129}
+\entry {\code {pounds}}{126}
+\entry {\code {print}}{128}
+\entry {\code {printindex}}{44}
+\entry {\code {ps}}{197}
+\entry {\code {pxref}}{72}
+\initial {Q}
+\entry {\code {questiondown}}{123}
+\entry {\code {quotation}}{88}
+\entry {\code {quotedblbase}}{124}
+\entry {\code {quotedblleft}}{124}
+\entry {\code {quotedblright}}{124}
+\entry {\code {quoteleft}}{124}
+\entry {\code {quoteright}}{124}
+\entry {\code {quotesinglbase}}{124}
+\initial {R}
+\entry {\code {r \r {(roman font)}}}{86}
+\entry {\code {raggedright}}{94}
+\entry {\code {raisesections}}{51}
+\entry {\code {rawtext}}{197}
+\entry {\code {ref}}{72}
+\entry {\code {refill}}{247}
+\entry {\code {regenerate_master_menu}}{207}
+\entry {\code {registeredsymbol}}{126}
+\entry {\code {result}}{128}
+\entry {\code {ringaccent}}{122}
+\entry {\code {rmacro}}{163}
+\initial {S}
+\entry {\code {samp}}{80}
+\entry {\code {sansserif \r {(sans serif font)}}}{86}
+\entry {\code {sc \r {(small caps font)}}}{85}
+\entry {\code {section}}{48}
+\entry {\code {set}}{156}
+\entry {\code {setchapternewpage}}{40}
+\entry {\code {setcontentsaftertitlepage}}{38}
+\entry {\code {setfilename}}{30}
+\entry {\code {setshortcontentsaftertitlepage}}{38}
+\entry {\code {settitle}}{31}
+\entry {\code {shortcaption}}{106}
+\entry {\code {shortcontents}}{37}
+\entry {\code {shorttitlepage}}{34}
+\entry {\code {simple_menu}}{207}
+\entry {\code {slanted \r {(slanted font)}}}{86}
+\entry {\code {smallbook}}{183}
+\entry {\code {smalldisplay}}{92}
+\entry {\code {smallexample}}{92}
+\entry {\code {smallformat}}{92, 93}
+\entry {\code {smallindentedblock}}{89}
+\entry {\code {smalllisp}}{92}
+\entry {\code {smallquotation}}{89, 92}
+\entry {\code {sp \r {(line spacing)}}}{134}
+\entry {\code {sp \r {(titlepage line spacing)}}}{34}
+\entry {\code {ss}}{123}
+\entry {\code {strong}}{85}
+\entry {\code {structure}}{197}
+\entry {\code {subheading}}{49}
+\entry {\code {subsection}}{49}
+\entry {\code {subsubheading}}{50}
+\entry {\code {subsubsection}}{50}
+\entry {\code {subtitle}}{35}
+\entry {\code {summarycontents}}{37}
+\entry {\code {syncodeindex}}{114}
+\entry {\code {synindex}}{115}
+\initial {T}
+\entry {\code {t \r {(typewriter font)}}}{86}
+\entry {\code {tab}}{103}
+\entry {\code {table}}{100}
+\entry {\code {tex}}{154}
+\entry {\code {TeX}}{125}
+\entry {\code {texinfo-all-menus-update}}{21}
+\entry {\code {texinfo-every-node-update}}{21}
+\entry {\code {texinfo-format-buffer}}{24, 212}
+\entry {\code {texinfo-format-region}}{24, 212}
+\entry {\code {texinfo-indent-menu-description}}{23}
+\entry {\code address@hidden
+\entry {\code address@hidden
+\entry {\code address@hidden
+\entry {\code address@hidden
+\entry {\code address@hidden
+\entry {\code address@hidden
+\entry {\code address@hidden
+\entry {\code address@hidden
+\entry {\code address@hidden
+\entry {\code address@hidden
+\entry {\code address@hidden
+\entry {\code {texinfo-insert-braces}}{18}
+\entry {\code {texinfo-insert-node-lines}}{23}
+\entry {\code {texinfo-make-menu}}{21}
+\entry {\code {texinfo-master-menu}}{20}
+\entry {\code {texinfo-multiple-files-update}}{172}
+\entry {\code {texinfo-multiple-files-update \r {(in brief)}}}{23}
+\entry {\code {texinfo-sequential-node-update}}{23}
+\entry {\code {texinfo-show-structure}}{19, 274}
+\entry {\code {texinfo-start-menu-description}}{18}
+\entry {\code {texinfo-tex-buffer}}{25}
+\entry {\code {texinfo-tex-print}}{25}
+\entry {\code {texinfo-tex-region}}{25}
+\entry {\code {texinfo-update-node}}{21}
+\entry {\code {Texinfo::Parser module}}{187}
+\entry {\code {texinfosxml}}{197}
+\entry {\code {textcontent}}{197}
+\entry {\code {textdegree}}{126}
+\entry {\code {th}}{123}
+\entry {\code {TH}}{123}
+\entry {\code {thischapter}}{269}
+\entry {\code {thischaptername}}{269}
+\entry {\code {thischapternum}}{269}
+\entry {\code {thisfile}}{269}
+\entry {\code {thispage}}{269}
+\entry {\code {thissection}}{269}
+\entry {\code {thissectionname}}{269}
+\entry {\code {thissectionnum}}{269}
+\entry {\code {thistitle}}{269}
+\entry {\code {tie \r {(unbreakable interword space)}}}{134}
+\entry {\code {tieaccent}}{122}
+\entry {\code {tindex}}{112}
+\entry {\code {title}}{35}
+\entry {\code {titlefont}}{34}
+\entry {\code {titlepage}}{33}
+\entry {\code {today}}{269}
+\entry {\code {top}}{38, 57}
+\initial {U}
+\entry {\code {u \r {(breve accent)}}}{122}
+\entry {\code {ubaraccent}}{122}
+\entry {\code {udotaccent}}{122}
+\entry {\code {unmacro}}{163}
+\entry {\code {unnumbered}}{48}
+\entry {\code {unnumberedsec}}{49}
+\entry {\code {unnumberedsubsec}}{49}
+\entry {\code {unnumberedsubsubsec}}{50}
+\entry {\code {up-list}}{18}
+\entry {\code {uref}}{74}
+\entry {\code {urefbreakstyle}}{74}
+\initial {V}
+\entry {\code {v \r {(check accent)}}}{122}
+\entry {\code {value}}{156}
+\entry {\code {var}}{81}
+\entry {\code {verb}}{80}
+\entry {\code {verbatim}}{90}
+\entry {\code {verbatiminclude}}{91}
+\entry {\code {vindex}}{112}
+\entry {\code {vskip \r {\TeX {} vertical skip}}}{36}
+\entry {\code {vtable}}{102}
+\initial {W}
+\entry {\code {w \r {(prevent line break)}}}{134}
+\initial {X}
+\entry {\code {xml}}{154, 197}
+\entry {\code {xref}}{67}
+\entry {\code {xrefautomaticsectiontitle}}{69}

Added: trunk/texindex/tests/texinfo.fns-good
===================================================================
--- trunk/texindex/tests/texinfo.fns-good                               (rev 0)
+++ trunk/texindex/tests/texinfo.fns-good       2014-12-03 00:57:15 UTC (rev 
5946)
@@ -0,0 +1,454 @@
+\initial {!}
+\entry {\code {! \r {(end of sentence)}}}{121}
+\initial {"}
+\entry {\code {" \r {(umlaut accent)}}}{122}
+\initial {'}
+\entry {\code {' \r {(umlaut accent)}}}{122}
+\initial {*}
+\entry {\code {* \r {(force line break)}}}{132}
+\initial {,}
+\entry {\code {, \r {(cedilla accent)}}}{122}
+\initial {-}
+\entry {\code {- \r {(discretionary hyphen)}}}{133}
+\entry {\code {- (in image alt string)}}{108}
+\initial {.}
+\entry {\code {. \r {(end of sentence)}}}{121}
+\initial {/}
+\entry {\code {/ \r {(allow line break)}}}{132}
+\initial {<}
+\entry {\code {<colon> \r {(suppress end-of-sentence space)}}}{120}
+\entry {\code {<newline>}}{119}
+\entry {\code {<space>}}{119}
+\entry {\code {<tab>}}{119}
+\initial {=}
+\entry {\code {= \r {(macron accent)}}}{122}
+\initial {?}
+\entry {\code {? \r {(end of sentence)}}}{121}
+\initial address@hidden
+\entry {\code {@ \r {(literal \samp address@hidden)}}}{117}
+\entry {\code address@hidden \char 123}{\tt \char 125} \r {(literal \samp 
address@hidden)}}}{117}
+\entry {\code address@hidden \var {on-off}}}{119}
+\entry {\code address@hidden \var {on-off}}}{119}
+\entry {\code address@hidden \char 123}{\tt \char 125} \r {(literal \samp 
{#})}}}{118}
+\entry {\code address@hidden \char 123}{\tt \char 125} \r {(literal \samp 
{{\tt \char 123}})}}}{117}
+\entry {\code address@hidden \char 123}{\tt \char 125} \r {(literal \samp 
{{\tt \char 125}})}}}{117}
+\initial {^}
+\entry {\code {^ \r {(circumflex accent)}}}{122}
+\initial {`}
+\entry {\code {` \r {(grave accent)}}}{122}
+\initial {\\}
+\entry {\code {{\tt \backslashcurfont } \r {(literal {\tt \backslashcurfont } 
in \code address@hidden)}}}{125}
+\entry {\code {{\tt \backslashcurfont }emergencystretch}}{183}
+\entry {\code {{\tt \backslashcurfont }gdef \r {within \code address@hidden
+\entry {\code {{\tt \backslashcurfont }globaldefs \r {within \code 
address@hidden
+\entry {\code {{\tt \backslashcurfont }input \r {(raw \TeX {} startup)}}}{10}
+\entry {\code {{\tt \backslashcurfont }mag \r {(raw \TeX {} 
magnification)}}}{185}
+\initial {|}
+\entry {\code {{\tt \char 123} \r {(literal \samp {{\tt \char 123}})}}}{117}
+\entry {\code {{\tt \char 125} \r {(literal \samp {{\tt \char 125}})}}}{117}
+\initial {~}
+\entry {\code {~ \r {(tilde accent)}}}{122}
+\initial {A}
+\entry {\code {aa}}{123}
+\entry {\code {AA}}{123}
+\entry {\code {abbr}}{83}
+\entry {\code {acronym}}{83}
+\entry {\code {ae}}{123}
+\entry {\code {AE}}{123}
+\entry {\code {afourlatex}}{184}
+\entry {\code {afourpaper}}{184}
+\entry {\code {afourwide}}{184}
+\entry {\code {alias}}{168}
+\entry {\code {allowcodebreaks}}{133}
+\entry {\code {anchor}}{58}
+\entry {\code {appendix}}{48}
+\entry {\code {appendixsec}}{49}
+\entry {\code {appendixsection}}{49}
+\entry {\code {appendixsubsec}}{49}
+\entry {\code {appendixsubsubsec}}{50}
+\entry {\code {apply}}{147}
+\entry {\code {arrow}}{130}
+\entry {\code {asis}}{101}
+\entry {\code {author}}{35}
+\initial {B}
+\entry {\code {b \r {(bold font)}}}{86}
+\entry {\code {backslash}}{118}
+\entry {\code {bullet}}{126}
+\entry {\code {bye}}{44, 45}
+\initial {C}
+\entry {\code {c \r {(comment)}}}{10}
+\entry {\code {caption}}{106}
+\entry {\code {cartouche}}{96}
+\entry {\code {center}}{34}
+\entry {\code {centerchap}}{48}
+\entry {\code {chapheading}}{48}
+\entry {\code {chapter}}{47}
+\entry {\code {cindex}}{112}
+\entry {\code {cite}}{75}
+\entry {\code {clear}}{156}
+\entry {\code {click}}{130}
+\entry {\code {clicksequence}}{130}
+\entry {\code {clickstyle}}{130}
+\entry {\code {code}}{77}
+\entry {\code {columnfractions}}{103}
+\entry {\code {comma}}{118}
+\entry {\code {command}}{82}
+\entry {\code {comment}}{10}
+\entry {\code {complete_tree_nodes_menus}}{206}
+\entry {\code {contents}}{37}
+\entry {\code {copying}}{32}
+\entry {\code {copyright}}{32, 125}
+\entry {\code {cropmarks}}{185}
+\initial {D}
+\entry {\code {debugcount}}{197}
+\entry {\code {debugtree}}{197}
+\entry {\code {defcodeindex}}{115}
+\entry {\code {defcv}}{144}
+\entry {\code {deffn}}{139}
+\entry {\code {deffnx}}{138}
+\entry {\code {defindex}}{115}
+\entry {\code {definfoenclose}}{168}
+\entry {\code {defivar}}{144}
+\entry {\code {defmac}}{139}
+\entry {\code {defmethod}}{146}
+\entry {\code {defop}}{145}
+\entry {\code {defopt}}{140}
+\entry {\code {defspec}}{139}
+\entry {\code {deftp}}{143}
+\entry {\code {deftypecv}}{144}
+\entry {\code {deftypefn}}{141}
+\entry {\code {deftypefnnewline}}{142}
+\entry {\code {deftypefun}}{142}
+\entry {\code {deftypeivar}}{145}
+\entry {\code {deftypeop}}{146}
+\entry {\code {deftypevar}}{143}
+\entry {\code {deftypevr}}{142}
+\entry {\code {defun}}{139}
+\entry {\code {defvar}}{140}
+\entry {\code {defvr}}{140}
+\entry {\code {DEL \r {(comment character)}}}{10}
+\entry {\code {detailmenu}}{39, 58}
+\entry {\code {dfn}}{82}
+\entry {\code {dh}}{123}
+\entry {\code {DH}}{123}
+\entry {\code {dircategory}}{216}
+\entry {\code {direntry}}{216}
+\entry {\code {display}}{92}
+\entry {\code {dmn}}{122}
+\entry {\code {docbook}}{155, 197}
+\entry {\code {documentdescription}}{40}
+\entry {\code {documentencoding}}{122, 123, 150}
+\entry {\code {documentlanguage}}{149}
+\entry {\code {dotaccent}}{122}
+\entry {\code {dotless}}{123}
+\entry {\code {dots}}{126}
+\entry {\code {dvi}}{197}
+\entry {\code {dvipdf}}{197}
+\initial {E}
+\entry {\code {email}}{84}
+\entry {\code {emph}}{85}
+\entry {\code {end}}{87, 97}
+\entry {\code {enddots}}{126}
+\entry {\code {enumerate}}{99}
+\entry {\code {env}}{81}
+\entry {\code {equiv}}{129}
+\entry {\code {error}}{129}
+\entry {\code {errormsg}}{153}
+\entry {\code {errormsg\r {, and line numbers in \TeX {}}}}{170}
+\entry {\code {euro}}{126}
+\entry {\code {evenfooting}}{268}
+\entry {\code {evenfootingmarks}}{270}
+\entry {\code {evenheading}}{268}
+\entry {\code {evenheadingmarks}}{270}
+\entry {\code {everyfooting}}{268}
+\entry {\code {everyfootingmarks}}{269}
+\entry {\code {everyheading}}{268}
+\entry {\code {everyheadingmarks}}{269}
+\entry {\code {example}}{89}
+\entry {\code {exampleindent}}{43}
+\entry {\code {exclamdown}}{123}
+\entry {\code {exdent}}{93}
+\entry {\code {expansion}}{128}
+\initial {F}
+\entry {\code {file}}{82}
+\entry {\code {fill_gaps_in_sectioning}}{206}
+\entry {\code {filll \r {\TeX {} dimension}}}{36}
+\entry {\code {finalout}}{183}
+\entry {\code {findex}}{112}
+\entry {\code {firstparagraphindent}}{43}
+\entry {\code {float}}{105}
+\entry {\code {flushleft}}{93}
+\entry {\code {flushright}}{93}
+\entry {\code {fn-name}}{137}
+\entry {\code {fonttextsize}}{85}
+\entry {\code {foobar}}{138, 141}
+\entry {\code {footnote}}{109}
+\entry {\code {footnotestyle}}{110}
+\entry {\code {format}}{93}
+\entry {\code {forward-word}}{136}
+\entry {\code {frenchspacing}}{121}
+\entry {\code {ftable}}{102}
+\initial {G}
+\entry {\code {geq}}{127}
+\entry {\code {group}}{135}
+\entry {\code {guillemetleft}}{124}
+\entry {\code {guillemetright}}{124}
+\entry {\code {guillemotleft}}{124}
+\entry {\code {guillemotright}}{124}
+\entry {\code {guilsinglleft}}{124}
+\entry {\code {guilsinglright}}{124}
+\initial {H}
+\entry {\code {H \r {(Hungarian umlaut accent)}}}{122}
+\entry {\code {hbox}}{183}
+\entry {\code {heading}}{49}
+\entry {\code {headings}}{41}
+\entry {\code {headitem}}{103}
+\entry {\code {headitemfont}}{103}
+\entry {\code {headword}}{169}
+\entry {\code {html}}{154, 197}
+\entry {\code {hyphenation}}{133}
+\initial {I}
+\entry {\code {i \r {(italic font)}}}{86}
+\entry {\code {ifclear}}{158}
+\entry {\code {ifdocbook}}{152, 155}
+\entry {\code {ifhtml}}{152, 154}
+\entry {\code {ifinfo}}{152}
+\entry {\code {ifnotdocbook}}{153}
+\entry {\code {ifnothtml}}{153}
+\entry {\code {ifnotinfo}}{153}
+\entry {\code {ifnotplaintext}}{153}
+\entry {\code {ifnottex}}{153}
+\entry {\code {ifnotxml}}{153}
+\entry {\code {ifplaintext}}{152}
+\entry {\code {ifset}}{157}
+\entry {\code {iftex}}{152}
+\entry {\code {ifxml}}{152, 154}
+\entry {\code {ignore}}{10}
+\entry {\code {image}}{107}
+\entry {\code {include}}{172}
+\entry {\code {indent}}{95}
+\entry {\code {indent_menu_descriptions}}{206}
+\entry {\code {indentedblock}}{89}
+\entry {\code {indicateurl}}{84}
+\entry {\code {info}}{197}
+\entry {\code {Info-validate}}{275}
+\entry {\code {inforef}}{73}
+\entry {\code {inlinefmt}}{155}
+\entry {\code {inlinefmtifelse}}{155}
+\entry {\code {inlineifclear}}{158}
+\entry {\code {inlineifset}}{158}
+\entry {\code {inlineraw}}{155}
+\entry {\code {insert_nodes_for_sectioning_commands}}{207}
+\entry {\code {insertcopying}}{33}
+\entry {\code {isearch-backward}}{138}
+\entry {\code {isearch-forward}}{138}
+\entry {\code {item}}{98, 101, 103}
+\entry {\code {itemize}}{98}
+\entry {\code {itemx}}{102}
+\initial {K}
+\entry {\code {kbd}}{78}
+\entry {\code {kbdinputstyle}}{78}
+\entry {\code {key}}{79}
+\entry {\code {kindex}}{112}
+\initial {L}
+\entry {\code {l}}{123}
+\entry {\code {LaTeX}}{125}
+\entry {\code {leq}}{127}
+\entry {\code {lisp}}{91}
+\entry {\code {listoffloats}}{106}
+\entry {\code {lowersections}}{51}
+\entry {\code {L}}{123}
+\initial {M}
+\entry {\code {macro}}{162}
+\entry {\code {majorheading}}{48}
+\entry {\code {makeinfo-buffer}}{211}
+\entry {\code {makeinfo-kill-job}}{212}
+\entry {\code {makeinfo-recenter-output-buffer}}{212}
+\entry {\code {makeinfo-region}}{211}
+\entry {\code {math}}{124}
+\entry {\code {menu}}{61}
+\entry {\code {minus}}{127}
+\entry {\code {move_index_entries_after_items}}{207}
+\entry {\code {multitable}}{102}
+\initial {N}
+\entry {\code {need}}{135}
+\entry {\code {next-error}}{211}
+\entry {\code {node}}{53}
+\entry {\code {noindent}}{94}
+\entry {\code {novalidate}}{176}
+\initial {O}
+\entry {\code {o}}{123}
+\entry {\code {occur}}{275}
+\entry {\code {occur-mode-goto-occurrence}}{19}
+\entry {\code {oddfooting}}{268}
+\entry {\code {oddfootingmarks}}{270}
+\entry {\code {oddheading}}{268}
+\entry {\code {oddheadingmarks}}{270}
+\entry {\code {oe}}{123}
+\entry {\code {OE}}{123}
+\entry {\code {ogonek}}{122}
+\entry {\code {option}}{82}
+\entry {\code {ordf}}{123}
+\entry {\code {ordm}}{123}
+\entry {\code {O}}{123}
+\initial {P}
+\entry {\code {page}}{134}
+\entry {\code {page\r {, within \code address@hidden
+\entry {\code {pagesizes}}{184}
+\entry {\code {paragraphindent}}{42}
+\entry {\code {parse}}{197}
+\entry {\code {part}}{50}
+\entry {\code {pdf}}{197}
+\entry {\code {phoo}}{169}
+\entry {\code {pindex}}{112}
+\entry {\code {plaintexinfo}}{197}
+\entry {\code {plaintext}}{197}
+\entry {\code {point}}{129}
+\entry {\code {pounds}}{126}
+\entry {\code {print}}{128}
+\entry {\code {printindex}}{44}
+\entry {\code {ps}}{197}
+\entry {\code {pxref}}{72}
+\initial {Q}
+\entry {\code {questiondown}}{123}
+\entry {\code {quotation}}{88}
+\entry {\code {quotedblbase}}{124}
+\entry {\code {quotedblleft}}{124}
+\entry {\code {quotedblright}}{124}
+\entry {\code {quoteleft}}{124}
+\entry {\code {quoteright}}{124}
+\entry {\code {quotesinglbase}}{124}
+\initial {R}
+\entry {\code {r \r {(roman font)}}}{86}
+\entry {\code {raggedright}}{94}
+\entry {\code {raisesections}}{51}
+\entry {\code {rawtext}}{197}
+\entry {\code {ref}}{72}
+\entry {\code {refill}}{247}
+\entry {\code {regenerate_master_menu}}{207}
+\entry {\code {registeredsymbol}}{126}
+\entry {\code {result}}{128}
+\entry {\code {ringaccent}}{122}
+\entry {\code {rmacro}}{163}
+\initial {S}
+\entry {\code {samp}}{80}
+\entry {\code {sansserif \r {(sans serif font)}}}{86}
+\entry {\code {sc \r {(small caps font)}}}{85}
+\entry {\code {section}}{48}
+\entry {\code {set}}{156}
+\entry {\code {setchapternewpage}}{40}
+\entry {\code {setcontentsaftertitlepage}}{38}
+\entry {\code {setfilename}}{30}
+\entry {\code {setshortcontentsaftertitlepage}}{38}
+\entry {\code {settitle}}{31}
+\entry {\code {shortcaption}}{106}
+\entry {\code {shortcontents}}{37}
+\entry {\code {shorttitlepage}}{34}
+\entry {\code {simple_menu}}{207}
+\entry {\code {slanted \r {(slanted font)}}}{86}
+\entry {\code {smallbook}}{183}
+\entry {\code {smalldisplay}}{92}
+\entry {\code {smallexample}}{92}
+\entry {\code {smallformat}}{92, 93}
+\entry {\code {smallindentedblock}}{89}
+\entry {\code {smalllisp}}{92}
+\entry {\code {smallquotation}}{89, 92}
+\entry {\code {sp \r {(line spacing)}}}{134}
+\entry {\code {sp \r {(titlepage line spacing)}}}{34}
+\entry {\code {ss}}{123}
+\entry {\code {strong}}{85}
+\entry {\code {structure}}{197}
+\entry {\code {subheading}}{49}
+\entry {\code {subsection}}{49}
+\entry {\code {subsubheading}}{50}
+\entry {\code {subsubsection}}{50}
+\entry {\code {subtitle}}{35}
+\entry {\code {summarycontents}}{37}
+\entry {\code {syncodeindex}}{114}
+\entry {\code {synindex}}{115}
+\initial {T}
+\entry {\code {t \r {(typewriter font)}}}{86}
+\entry {\code {tab}}{103}
+\entry {\code {table}}{100}
+\entry {\code {tex}}{154}
+\entry {\code {texinfo-all-menus-update}}{21}
+\entry {\code {texinfo-every-node-update}}{21}
+\entry {\code {texinfo-format-buffer}}{24, 212}
+\entry {\code {texinfo-format-region}}{24, 212}
+\entry {\code {texinfo-indent-menu-description}}{23}
+\entry {\code address@hidden
+\entry {\code address@hidden
+\entry {\code address@hidden
+\entry {\code address@hidden
+\entry {\code address@hidden
+\entry {\code address@hidden
+\entry {\code address@hidden
+\entry {\code address@hidden
+\entry {\code address@hidden
+\entry {\code address@hidden
+\entry {\code address@hidden
+\entry {\code {texinfo-insert-braces}}{18}
+\entry {\code {texinfo-insert-node-lines}}{23}
+\entry {\code {texinfo-make-menu}}{21}
+\entry {\code {texinfo-master-menu}}{20}
+\entry {\code {texinfo-multiple-files-update}}{172}
+\entry {\code {texinfo-multiple-files-update \r {(in brief)}}}{23}
+\entry {\code {texinfo-sequential-node-update}}{23}
+\entry {\code {texinfo-show-structure}}{19, 274}
+\entry {\code {texinfo-start-menu-description}}{18}
+\entry {\code {texinfo-tex-buffer}}{25}
+\entry {\code {texinfo-tex-print}}{25}
+\entry {\code {texinfo-tex-region}}{25}
+\entry {\code {texinfo-update-node}}{21}
+\entry {\code {Texinfo::Parser module}}{187}
+\entry {\code {texinfosxml}}{197}
+\entry {\code {textcontent}}{197}
+\entry {\code {textdegree}}{126}
+\entry {\code {TeX}}{125}
+\entry {\code {th}}{123}
+\entry {\code {thischapter}}{269}
+\entry {\code {thischaptername}}{269}
+\entry {\code {thischapternum}}{269}
+\entry {\code {thisfile}}{269}
+\entry {\code {thispage}}{269}
+\entry {\code {thissection}}{269}
+\entry {\code {thissectionname}}{269}
+\entry {\code {thissectionnum}}{269}
+\entry {\code {thistitle}}{269}
+\entry {\code {TH}}{123}
+\entry {\code {tie \r {(unbreakable interword space)}}}{134}
+\entry {\code {tieaccent}}{122}
+\entry {\code {tindex}}{112}
+\entry {\code {title}}{35}
+\entry {\code {titlefont}}{34}
+\entry {\code {titlepage}}{33}
+\entry {\code {today}}{269}
+\entry {\code {top}}{38, 57}
+\initial {U}
+\entry {\code {u \r {(breve accent)}}}{122}
+\entry {\code {ubaraccent}}{122}
+\entry {\code {udotaccent}}{122}
+\entry {\code {unmacro}}{163}
+\entry {\code {unnumbered}}{48}
+\entry {\code {unnumberedsec}}{49}
+\entry {\code {unnumberedsubsec}}{49}
+\entry {\code {unnumberedsubsubsec}}{50}
+\entry {\code {up-list}}{18}
+\entry {\code {uref}}{74}
+\entry {\code {urefbreakstyle}}{74}
+\initial {V}
+\entry {\code {v \r {(check accent)}}}{122}
+\entry {\code {value}}{156}
+\entry {\code {var}}{81}
+\entry {\code {verb}}{80}
+\entry {\code {verbatim}}{90}
+\entry {\code {verbatiminclude}}{91}
+\entry {\code {vindex}}{112}
+\entry {\code {vskip \r {\TeX {} vertical skip}}}{36}
+\entry {\code {vtable}}{102}
+\initial {W}
+\entry {\code {w \r {(prevent line break)}}}{134}
+\initial {X}
+\entry {\code {xml}}{154, 197}
+\entry {\code {xref}}{67}
+\entry {\code {xrefautomaticsectiontitle}}{69}

Added: trunk/texindex/ti.twjr
===================================================================
--- trunk/texindex/ti.twjr                              (rev 0)
+++ trunk/texindex/ti.twjr      2014-12-03 00:57:15 UTC (rev 5946)
@@ -0,0 +1,1329 @@
+\input texinfo   @c -*-texinfo-*-
address@hidden vim: filetype=texinfo tabstop=4
address@hidden %**start of header (This is for running Texinfo on a region.)
address@hidden texindex.info
address@hidden Texindex: A Program For Sorting Indices
address@hidden %**end of header (This is for running Texinfo on a region.)
+
address@hidden Change how xref titles are quoted.
address@hidden
address@hidden Smarter brace handling, you need this texindex!
address@hidden
address@hidden FORPRINT
address@hidden
address@hidden
address@hidden
address@hidden ifclear
+
address@hidden on
+
address@hidden The following information should be updated here only!
address@hidden This sets the edition of the document.
+
address@hidden These apply across the board.
address@hidden UPDATE-MONTH August, 2014
address@hidden EDITION 0.95
+
address@hidden TITLE Texindex: A Program For Sorting Indices
address@hidden SHORTTITLE Texindex
+
address@hidden
address@hidden DOCUMENT book
address@hidden CHAPTER chapter
address@hidden APPENDIX appendix
address@hidden SECTION section
address@hidden SUBSECTION subsection
address@hidden iftex
address@hidden
address@hidden DOCUMENT Web page
address@hidden CHAPTER chapter
address@hidden APPENDIX appendix
address@hidden SECTION section
address@hidden SUBSECTION subsection
address@hidden ifhtml
address@hidden
address@hidden DOCUMENT Info file
address@hidden CHAPTER major node
address@hidden APPENDIX major node
address@hidden SECTION minor node
address@hidden SUBSECTION node
address@hidden ifinfo
address@hidden
address@hidden DOCUMENT book
address@hidden CHAPTER chapter
address@hidden APPENDIX appendix
address@hidden SECTION section
address@hidden SUBSECTION subsection
address@hidden ifdocbook
+
address@hidden some special symbols
address@hidden
address@hidden ii{text}
address@hidden
address@hidden macro
address@hidden ifnottex
+
address@hidden merge the function and variable indexes into the concept index
address@hidden do so without the code font, and in the index entries do the
address@hidden font management ourselves.  Also merge in the chunk definition
address@hidden and reference entries, which jrweave creates for us.
address@hidden
address@hidden fn cp
address@hidden vr cp
address@hidden cd cp
address@hidden cr cp
address@hidden ifnothtml
+
address@hidden If "finalout" is commented out, the printed output will show
address@hidden black boxes that mark lines that are too long.  Thus, it is
address@hidden unwise to comment it out when running a master in case there are
address@hidden overfulls which are deemed okay.
+
address@hidden
address@hidden @finalout
address@hidden iftex
+
address@hidden
address@hidden
+<para>Published by:</para>
+
+<literallayout class="normal">Free Software Foundation
+51 Franklin Street, Fifth Floor
+Boston, MA  02110-1301 USA
+Phone: +1-617-542-5942
+Fax: +1-617-542-2652
+Email: <email>gnu@@gnu.org</email>
+URL: <ulink 
url="http://www.gnu.org/";>http://www.gnu.org/</ulink></literallayout>
+
+<literallayout class="normal">Copyright &copy; 2014
+Free Software Foundation
+All Rights Reserved.</literallayout>
address@hidden docbook
+
address@hidden
+Copyright @copyright{} 2014 @*
+Free Software Foundation @*
+All Rights Reserved.
address@hidden ifnotdocbook
address@hidden 1
+The @command{texindex} program is copyright
address@hidden 2014 by the Free Software Foundation. It is published under
+the conditions of the GNU General Public License, version 3.
address@hidden 2
+This is Edition @value{EDITION} of @address@hidden
address@hidden copying
+
address@hidden Uncomment this for the release.  Leaving it off saves paper
address@hidden during editing and review.
address@hidden @setchapternewpage odd
+
address@hidden Uncomment this if it's ever printed as a real book(let).
address@hidden @shorttitlepage @value{SHORTTITLE}
+
address@hidden
address@hidden @value{TITLE}
address@hidden @value{UPDATE-MONTH}
address@hidden Arnold D.@: Robbins
+
address@hidden
address@hidden Include the Distribution inside the titlepage environment so
address@hidden that headings are turned off.  Headings on and off do not work.
+
address@hidden
address@hidden 0pt plus 1filll
+Published by:
address@hidden 1
+Free Software Foundation @*
+51 Franklin Street, Fifth Floor @*
+Boston, MA  02110-1301 USA @*
+Phone: +1-617-542-5942 @*
+Fax: +1-617-542-2652 @*
+Email: @email{gnu@@gnu.org} @*
+URL: @uref{http://www.gnu.org/} @*
+
address@hidden
address@hidden ifnotdocbook
address@hidden titlepage
+
address@hidden @set DRAFT @i{DRAFT}
address@hidden DRAFT
+
address@hidden
address@hidden off
address@hidden @thispage @| @value{DRAFT} @| @address@hidden
address@hidden  @address@hidden @| @value{DRAFT} @| @thispage
address@hidden iftex
+
address@hidden
address@hidden
address@hidden
address@hidden Top
address@hidden General Introduction
address@hidden Preface node should come right after the Top
address@hidden node, in `unnumbered' sections, then the introductory chapter.
address@hidden Licensing nodes are appendices, they're not central to TexiWebJr.
+
+This file documents @command{texindex}, a program that processes the raw
+index files produced by the @file{texinfo.tex} macro package for @TeX{}.
+
address@hidden
address@hidden ifnotxml
address@hidden ifnotdocbook
address@hidden ifnottex
+
address@hidden
+* Preface::                     Introductory remarks.
+* Requirements::                How the program should work.
+* Organization::                Top level organization.
+* Processing Records::          Processing each record.
+* Necessary Stuff::             Stuff the program needs.
+* Concept Index::               The index.
+
address@hidden
+* Audience::                    Who should read this @value{DOCUMENT}.
+* Conventions::                 Typographical conventions.
+* Acknowledgements::            Acknowledgements.
+* Start of file::               What to do at the start of each file.
+* Per Record Processing::       Processing the record.
+* End File Processing::         Sorting and printing.
+* Entry Comparison::            Comparing entries.
+* Copyright Statement::         Copyright info.
+* Library Functions::           Necessary library functions.
+* Helper Functions::            Helper functions.
+* I18N::                        Internationalization.
address@hidden detailmenu
address@hidden menu
+
address@hidden @summarycontents
address@hidden
+
address@hidden Add these to the menu if they ever get included.
address@hidden @node Foreword
address@hidden @unnumbered Foreword
+
address@hidden Preface
address@hidden Preface
+
+This @value{DOCUMENT} describes @file{texindex.awk}, a reimplementation of
+the C program @file{texindex.c}.  The purpose is to make the program more
+maintainable, and in particular, to support the ability to have @address@hidden
+and @address@hidden as characters that can be listed correctly in the index.
+
address@hidden
+* Audience::                    Who should read this @value{DOCUMENT}.
+* Conventions::                 Typographical conventions.
+* Acknowledgements::            Acknowledgements.
address@hidden menu
+
address@hidden Audience
address@hidden Intended Audience
+
+You should read this @value{DOCUMENT} if you want to understand
+how @file{texindex.awk} works. You should be familiar with
+the @command{awk} programming language.
+
+If you are interested in array indexing, you've come to
+the wrong place. @xref{knuth}.
+
address@hidden Scale figure to 4.5 inches which is good for both smallbook
address@hidden and regular.  TeX will scale height also automatically.
address@hidden Figure,knuth
address@hidden (@url{http://xkcd.com/163/})}
address@hidden @image{donald_knuth, 5in, , Indexing}
address@hidden float
+
address@hidden Conventions
address@hidden Typographical Conventions
+
address@hidden Copied mostly verbatim from the gawk manual.
+
address@hidden TexiWeb Jr.@: literate programming system
address@hidden Texinfo document formatting language
+This @value{DOCUMENT} is a @dfn{literate program},
+written using the
address@hidden://github.com/arnoldrobbins/texiwebjr,
address@hidden Jr.@:} literate programming system}.
+The underlying documentation system is
address@hidden://www.gnu.org/software/texinfo/, Texinfo},
+the GNU documentation formatting language.
+A single Texinfo source file is used to produce both the printed and online
+versions of a program's documentation.
address@hidden
+Because of this, the typographical conventions
+are slightly different than in other books you may have read.
address@hidden ifnotinfo
+
+Examples you would type at the command-line are preceded by the common
+shell primary and secondary prompts, @samp{$} and @samp{>}.  Input that
+you type is shown @kbd{like this}.  Output from the command is preceded
+by the glyph address@hidden''.  This typically represents the command's
+standard output.  Error messages, and other output on the command's
+standard error, are preceded by the glyph address@hidden''.  For example:
+
address@hidden
+$ @kbd{echo hi on stdout}
address@hidden hi on stdout
+$ @kbd{echo hello on stderr 1>&2}
address@hidden hello on stderr
address@hidden example
+
address@hidden
+In the text, command names appear in @code{this font}, while code segments
+appear in the same font and quoted, @samp{like this}.  Options look
+like this: @option{-f}.  Some things are emphasized @emph{like this},
+and if a point needs to be made strongly, it is done @strong{like this}.
+The first occurrence of a new term is usually its @dfn{definition} and
+appears in the same font as the previous occurrence of ``definition''
+in this sentence.  Finally, file names are indicated like this:
address@hidden/path/to/our/file}.
address@hidden ifnotinfo
+
address@hidden Acknowledgements
address@hidden Acknowledgements
+
+Thanks to Karl Berry for guidance in understanding the requirements
+for what needs to be done.
+
address@hidden Requirements
address@hidden Requirements
+
+The input to this program is the list of unsorted index entries
+produced by @file{texinfo.tex} when a Texinfo document is processed.
+For example, two lines from the @command{gawk} documentation might
+look like this:
+
address@hidden
address@hidden address@hidden@address@hidden@{POSIX \command @address@hidden@}
address@hidden
address@hidden address@hidden@address@hidden@{POSIX \command @address@hidden@}
address@hidden example
+
+There are three ``fields'' enclosed in braces:
+
address@hidden @bullet
address@hidden
+The sort key. This is the text of the entry with all markup removed.
+It should contain only ASCII characters.
+
address@hidden
+The page number for this entry.
+
address@hidden
+The actual text to go into the printed index, which can include markup.
address@hidden itemize
+
+The braces are balanced in all cases, although for use by this program,
+braces can be included in the sort key by escaping them with the
address@hidden character}. This is the first character on the line. It is
+either a backslash, or a Texinfo at-sign, @samp{@@}.
+
+The job is to sort the entries, and merge those which are identical,
+except for the page numbers.  For the above two entries, the output
+should be:
+
address@hidden
+\entry @{POSIX \command @address@hidden@address@hidden, address@hidden
address@hidden example
+
+The sorting should be in the order of: all symbols first, then all digits, then
+all letters, with uppercase letters following lowercase ones, so we will need
+some smarts.
+
+Input lines can be duplicated (same entry, same page, more than once), so
+we will have to deal with that.
+
+In addition, @command{texindex} must output special lines indicating the
+first character (the @dfn{initial}) of keys grouped together, but only
+if there is more than one initial used throughout the input file.
+This output looks like:
+
address@hidden
+\initial @address@hidden
address@hidden example
+
+In the rest of the program we make two fundamental assumptions:
+
address@hidden 1
address@hidden
+The mapping of sort key to display text should be unique, with
+only the line number changing each time.
+If the same sort key has two different display texts, it means that
+different markup was used, probably inadvertently. For example, suppose
+you have the following input:
+
address@hidden
+@@cindex @@address@hidden()@} function
address@hidden
+@@cindex @@address@hidden()@} function
address@hidden example
+
address@hidden
+This produces the following output from @file{texinfo.tex},
+which in turn is the input to @command{texindex}:
+
address@hidden
address@hidden() address@hidden@address@hidden@{\file @{field_split()@} 
address@hidden
address@hidden() address@hidden@address@hidden@{\code @{field_split()@} 
address@hidden
address@hidden example
+
address@hidden
+This is actually OK; the results will be visible in the final
+index as two identical appearing entries (most likely with different
+page numbers). This should cause the author of the document to search
+for entries that are identical with respect to text but that differ
+in their use of Texinfo markup.
+
address@hidden
+For the same sort key and text, page numbers will be monotonically increasing.
+This means we can just use a new page number when it comes in, and not have to
+sort entries based on both sort key and page number.
address@hidden enumerate
+
+An additional requirement is that the program be written in portable
address@hidden, and not use features that are found only in GNU @command{awk}
+(@command{gawk}).  For our purposes, ``portable'' means ``new'' @command{awk}
+as defined in the 1988 book by Aho, Weinberger and Kernighan. This gives
+us functions, multidimensional arrays and a number of other important features
+over the original @command{awk} shipped with V7 Unix.
+
address@hidden Organization
address@hidden High Level Organization
+
+The general outline is as follows:
+
address@hidden Make it executable
address@hidden texindex.awk chmod +x texindex.awk
+
+@(texindex.awk@) =
+@<Shebang header@>
+@<GPL 3 Copyright statement@>
+@<Library functions@>
+@<Helper functions@>
+
+BEGIN {
+       @<Initial stuff@>
+       @<Argument processing@>
+}
+
+@<@code{beginfile()} function@>
+@<@code{endfile()} function@>
+@<Process a record@>
+@<Work functions@>
+@
+
+In the program itself, we follow a convenient convention:
+global variable and array names all start with a capital
+letter.
+
address@hidden @code{#!} header
address@hidden shebang header
address@hidden header, @code{#!}
address@hidden header, shebang
address@hidden executable scripts
address@hidden scripts, executable
+The @samp{#!} header lets us create executable scripts.
+This lets the script be self-contained.
+For development, I've used the location of @command{gawk}
+on my system. For production, the value will be substituted
+in using Autoconf.
+
+@<Shebang header@> =
+#! /usr/local/bin/gawk -f
+@
+
+The initial setup sets up some constants, including
+the version of the program.
+The last line sets up @code{Can_split_null} which tells
+us if the built-in @code{split()} function will split
+apart a string into its individual characters or if we
+have to do to it manually.
+
address@hidden @code{TRUE} constant
address@hidden @code{FALSE} constant
address@hidden @code{EXIT_SUCCESS} constant
address@hidden @code{EXIT_FAILURE} constant
address@hidden @code{Texindex_Version} variable
address@hidden @code{Can_split_null} variable
address@hidden @code{check_split_null()} function
+@<Initial stuff@>=
+TRUE = 1
+FALSE = 0
+EXIT_SUCCESS = 0
+EXIT_FAILURE = 1
+Texindex_Version = "5.0"
+
+Can_split_null = check_split_null()
+@
+
address@hidden @code{usage()} function
address@hidden @code{version()} function
+Argument processing is very straightforward, as well as somewhat manual.
+The important thing is to remove options and their arguments from
address@hidden so that they're not treated as filenames. The options that
+print version or help information automatically exit, so there's no need
+to mess with @code{ARGV} in those cases.
+
+@<Argument processing@>=
+for (i = 1; i < ARGC; i++) {
+       if (ARGV[i] == "-h" || ARGV[i] == "--help")
+               usage(EXIT_SUCCESS)
+       else if (ARGV[i] == "--version")
+               version()
+       else if (ARGV[i] == "-k" || ARGV[i] == "--keep") {
+               # do nothing, backwards compatibility
+               delete ARGV[i]
+       } else if (ARGV[i] == "--") {
+               delete ARGV[i]
+               break
+       } else if (ARGV[i] ~ /^--?.+/)
+               usage(EXIT_FAILURE)
+       else
+               break
+}
+@
+
address@hidden Processing Records
address@hidden Processing Records
+
+Processing records includes setting things up for each
+input file, pulling apart each record, sorting the data
+at the end, and writing out the data properly.
+
address@hidden
+* Start of file::               What to do at the start of each file.
+* Per Record Processing::       Processing the record.
+* End File Processing::         Sorting and printing.
+* Entry Comparison::            Comparing entries.
address@hidden menu
+
address@hidden Start of file
address@hidden Per File Initial Setup
+
+At the beginning of each input file, the @code{beginfile()}
+function sets up the output file name.
+The convention is to simply append an @samp{s} to the name
+of the input file.  The @option{-o} option in the C
+version of @command{texindex} to specify an output file
+was never used and is purposely not carried forward into this
+version of the program.
+
+When @code{beginfile()} is called, the first record
+has already been read, so it's possible to perform the
+checks for a Texinfo index file: The first character
+must be either @samp{\} or @samp{@@}, and the next five
+characters must be the word @samp{entry}.
+
address@hidden @code{Special_chars} variable
address@hidden are the three characters that
+must be preceded by the command character inside the
+first key.
+
address@hidden @code{Output_file} variable
address@hidden @code{Command_char} variable
address@hidden @code{Do_initials} variable
address@hidden @code{del_array()} function
address@hidden @code{beginfile()} function
+@<@code{beginfile()} function@>=
+function beginfile(filename)
+{
+       Output_file = filename "s"
+
+       # Reinitialize these for each input file
+       del_array(Data)
+       del_array(Keys)
+       Do_initials = FALSE
+       Entries = 0
+       Prev_initial = ""
+
+       Command_char = substr($0, 1, 1)
+       if (   (Command_char != "\\" && Command_char != "@") \
+           || substr($0, 2, 5) != "entry")
+               fatal("%s is not a Texinfo index file\n", filename)
+
+       Special_chars = "{}" Command_char
+}
+@
+
address@hidden Per Record Processing
address@hidden Processing Each Record
+
+Record processing consists of building the data structures
+for use in sorting and printing once the whole file has been
+processed.
+
+@<Process a record@> =
+{
+       @<Remove duplicates@>
+       @<Remove leading @code{\entry}@>
+       @<Get the initial@>
+       @<Set up @code{fields} array with the data@>
+       @<Name the fields@>
+       @<Store the data for the line in the @code{Data} array@>
+       @<Check for more than one initial@>
+}
+@
+
address@hidden @code{Seen} array
+Duplicates are going to be exact. Removing them is thus easy;
+store each incoming line as the index of an array named @code{Seen}.
+If a line is not there, it has not been seen. Otherwise it
+has, and we move on to the next record.
+
+@<Remove duplicates@>=
+# Remove duplicates, which can happen
+if ($0 in Seen)
+       next
+Seen[$0] = TRUE
+@
+
+@<Remove leading @code{\entry}@>=
+# Use substr() to avoid hassles with leading backslash in sub()
+$0 = substr($0, 7)             # remove leading \entry
+@
+
address@hidden @code{extract_initial()} function
+@<Get the initial@>=
+initial = extract_initial($0)
+@
+
+Extracting the initial is mildly complicated.
+Braces can be nested, and in particular the very first field of
+the sort key can be an open brace. So it is necessary to skip leading
+open braces until we encounter the first real character.  This in turn
+could be @address@hidden or @address@hidden preceded by the command character, 
or
+another character.
+
+A direct example can be seen in what older versions of @file{texinfo.tex}
+generated if you needed to index a real backslash.  You get an input
+line something like the following:
+
address@hidden
address@hidden@{\tt \indexbackslash @} 
(backslash)@address@hidden@address@hidden @address@hidden @dots{}
address@hidden example
+
+Fortunately, the first non-brace character is a backslash, and that
+becomes the initial.
+
address@hidden @code{extract_initial()} function
address@hidden @code{char_split()} function
+@<Work functions@>=
+function extract_initial(key,  initial, nextchar, i, l, kchars)
+{
+       l = char_split(key, kchars)
+       for (i = 1; i <= l; i++)
+               if (kchars[i] != "{")
+                       break
+
+       if (i > l)
+               fatal("%s:%d: Bad key %s in record\n", FILENAME, FNR, key)
+
+       initial = toupper(kchars[i])
+       nextchar = kchars[i+1]
+       if (initial == Command_char && (nextchar == "{" || nextchar == "}"))
+               initial = nextchar
+
+       return initial
+}
+@
+
+The next part is to pull out the data of interest from the three sets of
+braces. This is delegated to a function named @code{field_split()}.
+There must be exactly three fields.
+
address@hidden @code{field_split()} function
+@<Set up @code{fields} array with the data@>=
+numfields = field_split($0, fields, "{", "}", Command_char)
+if (numfields != 3)
+       fatal("%s:%d: Bad entry\n", FILENAME, FNR)
+@
+
+We give the fields names for later use.
+
address@hidden @code{extract_initial()} function
+@<Name the fields@>=
+key = fields[1]
+linenum = fields[2]
+text = fields[3]
+@
+
address@hidden @code{Keys} array
address@hidden @code{Entries} variable
address@hidden @code{Data} array
+We use a traditional @command{awk} multidimensional array to store
+the various bits and pieces. The subscripts are based on the sort key,
+and the parts are the @code{"linenum"}, the output @code{"text"},
+and the @code{"initial"}. In addition, the key is stored as data
+in the @code{Entries} array.  This array is sorted later on.
+
+The key and the text are invariant across entries; only the line
+number changes, so we use the key and text as the unique index
+into @code{Data}.
+
+@<Store the data for the line in the @code{Data} array@>=
+if (! ((key, "text") in Data)) {
+       # first time we've seen this full line
+       Keys[++Entries] = key
+       Data[key, "linenum"] = linenum
+       Data[key, "text"] = text
+       Data[key, "initial"] = initial
+} else
+       Data[key, "linenum"] = Data[key, "linenum"] ", " linenum
+@
+
+Finally, we need to see if more than one initial occurs
+in the file. If so, we set @code{Do_initials} to true.
+As soon as it's true, we don't need to do further checking
+on subsequent lines.
+
address@hidden @code{Do_initials} variable
address@hidden @code{Prev_initial} variable
+@<Check for more than one initial@> =
+if (! Do_initials) {
+       if (Prev_initial == "")
+               Prev_initial = initial
+       else if (initial != Prev_initial)
+               Do_initials = TRUE
+}
+@
+
+Let's take a look at the function that breaks apart the record.
+Upon entry to the function, the value of @code{record}
+looks something like:
+
address@hidden
address@hidden address@hidden@address@hidden@{POSIX \command @address@hidden@}
address@hidden example
+
+The first field may have instances of @samp{@@@{} and/or @samp{@@@}}
+(or @address@hidden and/or @address@hidden), so
+the braces aren't necessarily exactly balanced.
+
+The @code{field_split()} function uses pretty straightforward ``count
+the delimiters'' code.  The loop starts at 2, since we know the first
+character is an open brace.  The main things to handle are the
+command character and the final closing brace.  The third field is
+taken as a whole; this is described shortly.
+
address@hidden @code{field_split()} function
address@hidden @code{char_split()} function
+@<Work functions@>=
+function field_split( \
+       record, fields, start, end, com_ch,                     # parameters
+       chars, numchars, out, delim_count, i, j, k) # locals
+{
+       del_array(fields)
+
+       numchars = char_split(record, chars)
+       j = 1   # index into fields
+       k = 1   # index into out
+       delim_count = 1
+       for (i = 2; i <= numchars; i++) {
+               if (chars[i] == com_ch) {
+                       @<Handle the character after the command character@>
+               } else if (chars[i] == start) {
+                       delim_count++
+                       out[k++] = chars[i]
+               } else if (chars[i] == end) {
+                       delim_count--
+
+                       if (delim_count == 0) {
+                               @<Finish off the field, set up for next field@>
+                       } else
+                               out[k++] = chars[i]
+               } else
+                       out[k++] = chars[i]
+
+               @<Special case the third field@>
+       }
+
+       return j        # num fields
+}
+@
+
+If the character following the command character is an
+open brace, close brace, or the command character itself,
+we pull it in. Otherwise, the command character is left
+alone as part of the field.
+
+@<Handle the character after the command character@>=
+if (index(Special_chars, chars[i+1]) != 0) {
+       out[k++] = chars[i+1]
+       i++
+} else
+       out[k++] = chars[i]
+@
+
+Upon seeing the final closing brace, we put all the characters
+back together into a string using @code{join()}.
+We then reset the @code{out} array for the next time through.
+If the next character isn't an open brace, then the line is bad
+and we print a fatal error. Otherwise, we reset @code{delim_count}
+to one.
+
address@hidden @code{join()} function
+@<Finish off the field, set up for next field@>=
+fields[j++] = join(out, 1, k-1, SUBSEP)
+del_array(out) # reset for next time through
+k = 1
+
+i++
+if (i <= numchars && chars[i] != start)
+       fatal("%s:%d: Bad entry\n", FILENAME, FNR)
+delim_count = 1
+@
+
+The third field is special. We just take the whole thing
+as is.  This is done by stripping off the outermost braces,
+using @code{substr()}.
+We then break out of the loop, since we're done.
+
+@<Special case the third field@>=
+if (j == 3) {  # Per Karl, just grab the whole rest of the line
+       # extract everything between the outer delimiters
+       fields[3] = substr(record, i + 1, numchars - i - 1)
+       break
+}
+@
+
+
address@hidden End File Processing
address@hidden Sorting And Printing
+
+Upon end of input, the processing is straightforward.  Sort the entries,
+and then write them out. If we are printing the initial, handle that.
+(That task is delegated to a small function.)
+
address@hidden @code{quicksort()} function
address@hidden @code{endfile()} function
address@hidden @code{Keys} array
address@hidden @code{Data} array
address@hidden @code{Entries} variable
+@<@code{endfile()} function@>=
+function endfile(filename,             i, prev_initial, initial)
+{
+       # sort the entries
+       quicksort(Keys, 1, Entries)
+
+       for (i = 1; i <= Entries; i++) {
+               # deal with initial
+               initial = Data[Keys[i], "initial"]
+               if (initial != prev_initial) {
+                       prev_initial = initial
+                       print_initial(initial)
+               }
+
+               # write the actual line \entry {...}{...}
+               printf("%centry {%s}{%s}\n",
+                       Command_char,
+                       Data[Keys[i], "text"],
+                       Data[Keys[i], "linenum"]) > Output_file
+       }
+       close(Output_file)
+}
+@
+
+Printing the initial is not complicated. The main thing
+is to precede special characters with the command character.
+
address@hidden @code{Command_char} variable
address@hidden @code{Special_chars} variable
address@hidden @code{Do_initials} variable
address@hidden @code{print_initial()} function
+@<Work functions@>=
+function print_initial(initial)
+{
+       if (Do_initials) {
+               if (index(Special_chars, initial) != 0)
+                       initial = Command_char initial
+               printf("%cinitial {%s}\n",
+                       Command_char, initial) > Output_file
+       }
+}
+@
+
+Sorting uses a standard Quick Sort, with the @code{less_than()}
+function supplying the comparison.
+
address@hidden @code{less_than()} function
address@hidden @code{quicksort()} function
address@hidden @code{quicksort_swap()} function
+@<Helper functions@>=
+# quicksort --- C.A.R. Hoare's quick sort algorithm. See Wikipedia
+#               or almost any algorithms or computer science text
+#
+# Adapted from K&R-II, page 110
+
+function quicksort(data, left, right,    i, last)
+{
+    if (left >= right)  # do nothing if array contains fewer
+        return          # than two elements
+
+    quicksort_swap(data, left, int((left + right) / 2))
+    last = left
+    for (i = left + 1; i <= right; i++)
+        if (less_than(data[i], data[left]))
+            quicksort_swap(data, ++last, i)
+    quicksort_swap(data, left, last)
+    quicksort(data, left, last - 1)
+    quicksort(data, last + 1, right)
+}
+
+# quicksort_swap --- quicksort helper function, could be inline
+
+function quicksort_swap(data, i, j, temp)
+{
+    temp = data[i]
+    data[i] = data[j]
+    data[j] = temp
+}
+@
+
address@hidden Entry Comparison
address@hidden Comparing Index Entries
+
+The comparison function is the heart of the sorting algorithm.
+The comparison is based on the indexing rules, which are:
+
address@hidden @bullet
address@hidden
+All symbols first.
+
address@hidden
+Followed by digits.
+
address@hidden
+Followed by letters. Lowercase precedes uppercase and both ``a''
+and ``A'' precede anything starting with ``b'' or ``B'' (etc.).
address@hidden itemize
+
+Implementing these rules is a little complicated.
+The first thing we need is a table
+that maps characters to comparison values.
+The following code is based on the original C @command{texindex},
+although the actual comparison algorithm is more sophisticated.
+
+The @code{Ordval} array maps characters to numeric
+values.  Most characters map to their ASCII code.
+We add 512 to the value of each of the digits.
+Both uppercase and lowercase letters map to the same
+numeric value, which is the ASCII code for the uppercase
+letter plus address@hidden code should also work for
+EBCDIC systems, although @TeX{} does everything in ASCII,
+so I'm not sure how much of a difference it makes.}
+
+The table must be built completely before changing the
+mapping of the letters, because all of the uppercase and
+lowercase letters must be in the table before we can
+change their values.
+
address@hidden @code{Ordval} array
+@<Work functions@>=
+BEGIN {
+       for (i = 0; i < 256; i++) {
+               c = sprintf("%c", i)
+               Ordval[c] = i   # map character to value
+
+               if ((n = isdigit(c)) > 0) {
+                       Ordval[c] += 512
+               }
+       }
+
+       # Give both 'A' and 'a' the same code
+       i = Ordval["A"]
+       j = Ordval["Z"]
+       for (; i <= j; i++) {
+               c = sprintf("%c", i)
+
+               # In ASCII, 'A' is before 'a', so this is
+               # the right order to check
+               #
+               # Checking isupper() lets this work for EBCDIC, too.
+
+               if (isupper(c)) {
+                       Ordval[c] += 512
+                       Ordval[tolower(c)] = Ordval[c]
+               }
+       }
+}
+@
+
+Here is the @code{less_than()} function. It returns true if the @code{left}
+string is ``less than'' the @code{right} string.
+
+The comparison algorithm is relatively straightforward, once we define
+how things should work.  We loop over each pair of characters in the
address@hidden and @code{right} strings, comparing them one at a time.
+When comparing two characters, there are three cases, one of which
+has three subcases, as follows:
+
address@hidden @i
address@hidden Two letters
+
address@hidden nested table
address@hidden @i
address@hidden Same letter, but different case
+This is the complicated case. First, we want lowercase letters
+to be ordered before uppercase ones, even though this is the
+opposite of the natural ASCII ordering.  To make this happen,
+we use a @samp{>} comparison instead of a @samp{<} comparison.
+
+Second, when two characters are equal, we have to look ahead
+at the next characters to decide whether to continue the
+loop or quit. As long as we are not at the end of the string,
+and at least one of the following characters in either string is a letter,
+we continue the loop. Otherwise we do the character comparison
+and return.
+
address@hidden Two different letters, but same case
address@hidden Two different letters, different case
+Use the comparison of the respective @code{Ordval} values.
address@hidden table
address@hidden end nested table
+
address@hidden A letter and something else
address@hidden Two nonletters
+Use the comparison of the respective @code{Ordval} values.
+
address@hidden table
+
address@hidden
+When the values are equal, continue around the loop.
+And, as usual, if one string is an initial substring
+of the other, that one is considered to be ``less than''
+the other one.
+
+The rules just described actually produce @emph{better}
+results than did the C version of @command{texindex}.
+For example, @samp{beginfile()} sorts out to be before
address@hidden, whereas with the C version they came out
+in the opposite order.
+
address@hidden @code{Ordval} array
address@hidden @code{char_split()} function
address@hidden @code{less_than()} function
address@hidden @code{isalpha()} function
+@<Work functions@>=
+function less_than(left, right,                len_l, len_r, len, chars_l, 
chars_r)
+{
+       len_l = length(left)
+       len_r = length(right)
+       len = (len_l < len_r ? len_l : len_r)
+
+       char_split(left, chars_l)
+       char_split(right, chars_r)
+
+       for (i = 1; i <= len; i++) {
+               if (isalpha(chars_l[i]) && isalpha(chars_r[i])) {
+                       # same char different case
+                       # upper case comes out last
+                       if (chars_l[i] != chars_r[i] &&
+                               tolower(chars_l[i]) == tolower(chars_r[i])) {
+                                       if (   i != len \
+                                               && (isalpha(chars_l[i+1]) \
+                                                       || 
isalpha(chars_r[i+1])))
+                                               continue
+                                       if (chars_l[i] > chars_r[i])
+                                               return 1
+                                       return 0
+                       }
+                       # same case, different char,
+                       # or different case, different char:
+                       # letter order wins
+                       if (Ordval[chars_l[i]] < Ordval[chars_r[i]])
+                               return 1
+
+                       if (Ordval[chars_l[i]] > Ordval[chars_r[i]])
+                               return 0
+
+                       # equal, keep going
+                       continue
+               }
+
+               # letter and something else, or two non-letters
+               # letter order wins
+               if (Ordval[chars_l[i]] < Ordval[chars_r[i]])
+                       return 1
+
+               if (Ordval[chars_l[i]] > Ordval[chars_r[i]])
+                       return 0
+
+               # equal, keep going
+       }
+
+       # equal so far, shorter one wins
+       if (len_l < len_r)
+               return 1
+
+       return 0
+}
+@
+
address@hidden Necessary Stuff
address@hidden Necessary Stuff That Isn't Thrilling
+
+This @value{CHAPTER} provides a number of parts
+that are necessary but not exciting.
+
address@hidden
+* Copyright Statement::         Copyright info.
+* Library Functions::           Necessary library functions.
+* Helper Functions::            Helper functions.
+* I18N::                        Internationalization.
address@hidden menu
+
address@hidden Copyright Statement
address@hidden Copyright Statement
+
address@hidden copyright statement
address@hidden GNU General Public License
address@hidden License, GNU General Public
address@hidden GPL (GNU General Public License)
+Every program needs a copyright statement.
+
+@<GPL 3 Copyright statement@>=
+#
+# Copyright (C) 2014 Free Software Foundation
+# 
+# This file is part of GNU Texinfo.
+# 
+# Texinfo is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+# 
+# Texinfo is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, 
USA
+@
+
address@hidden Library Functions
address@hidden Library Functions
+
+The program uses several library routines discussed in detail
+in the @command{gawk} documentation.  The first sets up the
+infrastructure for the @code{beginfile()} and @code{endfile()} functions.
+See 
@uref{http://www.gnu.org/software/gawk/manual/html_node/Filetrans-Function.html}
+for an explanation of how this function works.
+
address@hidden @file{ftrans.awk} library file
+@<Library functions@>=
+# ftrans.awk --- handle data file transitions
+#
+# user supplies beginfile() and endfile() functions
+#
+# Arnold Robbins, address@hidden, Public Domain
+# November 1992
+
+FNR == 1 {
+       if (_filename_ != "")
+               endfile(_filename_)
+       _filename_ = FILENAME
+       beginfile(FILENAME)
+}
+
+END  { endfile(_filename_) }
+@
+
+The next function is @code{join()}, which joins
+an array of characters back into a string.
+See @uref{http://www.gnu.org/software/gawk/manual/html_node/Join-Function.html}
+for an explanation of how this function works.
+
address@hidden @file{join.awk} library file
address@hidden @code{join()} function
+@<Library functions@>=
+# join.awk --- join an array into a string
+#
+# Arnold Robbins, address@hidden, Public Domain
+# May 1993
+
+function join(array, start, end, sep,    result, i)
+{
+       if (sep == "")
+               sep = " "
+       else if (sep == SUBSEP) # magic value
+               sep = ""
+       result = array[start]
+       for (i = start + 1; i <= end; i++)
+               result = result sep array[i]
+       return result
+}
+@
+
address@hidden Helper Functions
address@hidden Helper Functions
+
+A number of helper functions make the main code easier
+to follow.
address@hidden()} clears out an array.
+
address@hidden @code{del_array()} function
+@<Helper functions@>=
+function del_array(a)
+{
+       # Portable and faster than
+       #       for (i in a)
+       #               delete a[i]
+       split("", a)
+}
+@
+
+This function checks if the @command{awk} running this program
+supports using the null string for the separator, splitting each
+character off into a separate element. If so, the return value will
+be the number of elements in the array, and it will be more than one.
+It is called at program startup.
+
address@hidden @code{check_split_null()} function
+@<Helper functions@>=
+function check_split_null(             n, a)
+{
+       n = split("abcde", a, "")
+       return (n == 5)
+}
+@
+
+This function splits a string into separate characters, letting
address@hidden do the work if possible. If not, each character
+is extracted manually using a loop and @code{substr()}.
+
address@hidden @code{char_split()} function
address@hidden @code{Can_split_null} variable
address@hidden @code{del_array()} function
+@<Helper functions@>=
+function char_split(string, array,             n, i)
+{
+       if (Can_split_null)
+               return split(string, array, "")
+
+       # do it the hard way
+       del_array(array)
+       n = length(string)
+       for (i = 1; i <= n; i++)
+               array[i] = substr(string, i, 1)
+
+       return n
+}
+@
+
+The @code{fatal()} function prints a fatal error message
+and then exits.
+
address@hidden @code{fatal()} function
+@<Helper functions@>=
+function fatal(format, arg1, arg2, arg3, arg4, arg5,
+                                               arg6, arg7, arg8, arg9, arg10)
+{
+       printf(format, arg1, arg2, arg3, arg4, arg5,
+                       arg6, arg7, arg8, arg9, arg10) > "/dev/stderr"
+       exit EXIT_FAILURE
+}
+@
+
address@hidden @code{isupper()} function
address@hidden @code{islower()} function
address@hidden @code{isalpha()} function
address@hidden @code{isdigit()} function
+The following functions help identify what a character is; they are
+similar in nature to the various macros in the C @code{<ctype.h>}
+header file.  Since each one returns a count, the return value
+could be used to compute which character from the set was seen;
+this turned out not to be necessary in this program but it might
+useful in some other context.
+
+@<Helper functions@>=
+function isupper(c)
+{
+       return index("ABCDEFGHIJKLMNOPQRSTUVWXYZ", c)
+}
+
+function islower(c)
+{
+       return index("abcdefghijklmnopqrstuvwxyz", c)
+}
+
+function isalpha(c)
+{
+       return islower(c) || isupper(c)
+}
+
+function isdigit(c)
+{
+       return index("0123456789", c)
+}
+@
+
address@hidden I18N
address@hidden Internationalization
+
+For @command{gawk}, we can arrange for the messages in the
address@hidden()} and @code{version()} functions to be translated.
+We do this by setting the text domain at startup.
+For more information on internationalization in @command{gawk}, see
address@hidden://www.gnu.org/software/gawk/manual/html_node/Internationalization.html}.
+
+@<Initial stuff@>=
+TEXTDOMAIN = "texinfo"
+@
+
address@hidden
+On non-GNU versions of @command{awk}, this is harmless.
+
+The @code{usage()} and @code{version()} functions print the
+necessary information and then exit. The strings that
+can and should be translated are prefixed with an
+underscore.
+
address@hidden @code{Texindex_Version} variable
address@hidden @code{usage()} function
address@hidden @code{version()} function
+@<Helper functions@>=
+function usage(exit_val)
+{
+       print _"Usage: texindex [OPTION]... FILE..."
+       print _"Generate a sorted index for each TeX output FILE."
+       print _"Usually FILE... is specified as `foo.??' for a document 
`foo.texi'."
+       print ""
+       print _"Options:"
+       print _" -h, --help     display this help and exit"
+       print _" --version      display version information and exit"
+       print _" --             end option processing"
+       print ""
+       print _"Email bug reports to address@hidden,"
+       print _"general questions and discussion to address@hidden"
+       print _"Texinfo home page: http://www.gnu.org/software/texinfo/";
+
+       exit exit_val
+}
+
+function version()
+{
+       print "texindex (GNU texinfo)", Texindex_Version
+       print ""
+       print _"Copyright (C) 2014 Free Software Foundation, Inc."
+       print _"License GPLv3+: GNU GPL version 3 or later 
<http://gnu.org/licenses/gpl.html>"
+       print _"This is free software: you are free to change and redistribute 
it."
+       print _"There is NO WARRANTY, to the extent permitted by law."
+
+       exit EXIT_SUCCESS
+}
+@
+
address@hidden
address@hidden Bibliography
address@hidden Bibliography
address@hidden ignore
+
address@hidden Concept Index
address@hidden Index
+
address@hidden cp
+
address@hidden
+
+TODO:




reply via email to

[Prev in Thread] Current Thread [Next in Thread]