summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2014-03-27 22:22:35 +0200
committerArnold D. Robbins <arnold@skeeve.com>2014-03-27 22:22:35 +0200
commitef5a25cdb3af19a1f2cc14e25e1a93914aae82c1 (patch)
tree545b930dc4bdad03f9bb95952b94aff945a08129
parent00c8e9d7dbd0a868f066f3f83c277d0cd3901af5 (diff)
downloadgawk-ef5a25cdb3af19a1f2cc14e25e1a93914aae82c1.tar.gz
Finishing indexing changes, special treatment for functions.
-rw-r--r--doc/ChangeLog6
-rw-r--r--doc/gawk.info714
-rw-r--r--doc/gawk.texi130
-rw-r--r--doc/gawktexi.in130
4 files changed, 518 insertions, 462 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 1a59539c..84750e4a 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,9 @@
+2014-03-27 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawktexi.in: Finish the massive indexing improvements such that
+ functions are indexed the way I want in TeX and the way Eli
+ wants in Info.
+
2014-03-27 Eli Zaretskii <eliz@gnu.org>
* gawktexi.in: First round of massive indexing improvements.
diff --git a/doc/gawk.info b/doc/gawk.info
index 29af8ab4..033a804e 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -12199,7 +12199,8 @@ enclosed in square brackets ([ ]):
Variables::). The default string value is
`"%a %b %e %H:%M:%S %Z %Y"'. This format string produces output
that is equivalent to that of the `date' utility. You can assign
- a new value to `PROCINFO["strftime"]' to change the default format.
+ a new value to `PROCINFO["strftime"]' to change the default
+ format; see below for the various format directives.
`systime()'
Return the current time as the number of seconds since the system
@@ -30051,8 +30052,8 @@ Index
* ' (single quote), in shell commands: Quoting. (line 31)
* ' (single quote), vs. apostrophe: Comments. (line 27)
* ' (single quote), with double quotes: Quoting. (line 53)
-* () (parentheses): Regexp Operators. (line 79)
* () (parentheses), in a profile: Profiling. (line 146)
+* () (parentheses), regexp operator: Regexp Operators. (line 79)
* * (asterisk), * operator, as multiplication operator: Precedence.
(line 55)
* * (asterisk), * operator, as regexp operator: Regexp Operators.
@@ -30318,9 +30319,9 @@ Index
(line 6)
* anagram.awk program: Anagram Program. (line 22)
* anagrams, finding: Anagram Program. (line 6)
+* and: Bitwise Functions. (line 39)
* AND bitwise operation: Bitwise Functions. (line 6)
* and Boolean-logic operator: Boolean Ops. (line 6)
-* and() function (gawk): Bitwise Functions. (line 39)
* ANSI: Glossary. (line 35)
* API informational variables: Extension API Informational Variables.
(line 6)
@@ -30393,14 +30394,14 @@ Index
(line 52)
* ASCII <1>: Glossary. (line 133)
* ASCII: Ordinal Functions. (line 45)
-* asort() function (gawk) <1>: Array Sorting Functions.
+* asort <1>: Array Sorting Functions.
(line 6)
-* asort() function (gawk): String Functions. (line 32)
+* asort: String Functions. (line 32)
* asort() function (gawk), arrays, sorting: Array Sorting Functions.
(line 6)
-* asorti() function (gawk) <1>: Array Sorting Functions.
+* asorti <1>: Array Sorting Functions.
(line 6)
-* asorti() function (gawk): String Functions. (line 32)
+* asorti: String Functions. (line 32)
* asorti() function (gawk), arrays, sorting: Array Sorting Functions.
(line 6)
* assert() function (C library): Assert Function. (line 6)
@@ -30571,9 +30572,9 @@ Index
* Berry, Karl <1>: Ranges and Locales. (line 74)
* Berry, Karl: Acknowledgments. (line 33)
* binary input/output: User-modified. (line 10)
+* bindtextdomain <1>: Programmer i18n. (line 47)
+* bindtextdomain: I18N Functions. (line 12)
* bindtextdomain() function (C library): Explaining gettext. (line 49)
-* bindtextdomain() function (gawk) <1>: Programmer i18n. (line 47)
-* bindtextdomain() function (gawk): I18N Functions. (line 12)
* bindtextdomain() function (gawk), portability and: I18N Portability.
(line 33)
* BINMODE variable <1>: PC Using. (line 33)
@@ -30713,10 +30714,10 @@ Index
(line 6)
* cliff_rand() user-defined function: Cliff Random Function.
(line 12)
-* close file or coprocess: I/O Functions. (line 10)
-* close() function <1>: I/O Functions. (line 10)
-* close() function: Close Files And Pipes.
+* close <1>: I/O Functions. (line 10)
+* close: Close Files And Pipes.
(line 18)
+* close file or coprocess: I/O Functions. (line 10)
* close() function, portability: Close Files And Pipes.
(line 81)
* close() function, return value: Close Files And Pipes.
@@ -30787,7 +30788,7 @@ Index
* compiling gawk for MS-DOS and MS-Windows: PC Compiling. (line 13)
* compiling gawk for VMS: VMS Compilation. (line 6)
* compiling gawk with EMX for OS/2: PC Compiling. (line 28)
-* compl() function (gawk): Bitwise Functions. (line 43)
+* compl: Bitwise Functions. (line 43)
* complement, bitwise: Bitwise Functions. (line 25)
* compound statements, control statements and: Statements. (line 10)
* concatenating: Concatenation. (line 8)
@@ -30822,7 +30823,7 @@ Index
* convert string to upper case: String Functions. (line 527)
* converting integer array subscripts: Numeric Array Subscripts.
(line 31)
-* converting, dates to timestamps: Time Functions. (line 75)
+* converting, dates to timestamps: Time Functions. (line 76)
* converting, numbers to strings <1>: Bitwise Functions. (line 109)
* converting, numbers to strings: Conversion. (line 6)
* converting, strings to numbers <1>: Bitwise Functions. (line 109)
@@ -30837,7 +30838,7 @@ Index
* coprocesses, closing: Close Files And Pipes.
(line 6)
* coprocesses, getline from: Getline/Coprocess. (line 6)
-* cos() function: Numeric Functions. (line 15)
+* cos: Numeric Functions. (line 15)
* cosine: Numeric Functions. (line 15)
* counting: Wc Program. (line 6)
* csh utility: Statements/Lines. (line 44)
@@ -30845,7 +30846,7 @@ Index
* csh utility, |& operator, comparison with: Two-way I/O. (line 44)
* ctime() user-defined function: Function Example. (line 73)
* currency symbols, localization: Explaining gettext. (line 103)
-* current system time: Time Functions. (line 65)
+* current system time: Time Functions. (line 66)
* custom.h file: Configuration Philosophy.
(line 30)
* customized input parser: Input Parsers. (line 6)
@@ -30903,18 +30904,18 @@ Index
* database, group, reading: Group Functions. (line 6)
* database, users, reading: Passwd Functions. (line 6)
* date utility, GNU: Time Functions. (line 17)
-* date utility, POSIX: Time Functions. (line 262)
-* dates, converting to timestamps: Time Functions. (line 75)
+* date utility, POSIX: Time Functions. (line 263)
+* dates, converting to timestamps: Time Functions. (line 76)
* dates, information related to, localization: Explaining gettext.
(line 115)
* Davies, Stephen <1>: Contributors. (line 74)
* Davies, Stephen: Acknowledgments. (line 60)
-* dcgettext() function (gawk) <1>: Programmer i18n. (line 19)
-* dcgettext() function (gawk): I18N Functions. (line 22)
+* dcgettext <1>: Programmer i18n. (line 19)
+* dcgettext: I18N Functions. (line 22)
* dcgettext() function (gawk), portability and: I18N Portability.
(line 33)
-* dcngettext() function (gawk) <1>: Programmer i18n. (line 36)
-* dcngettext() function (gawk): I18N Functions. (line 28)
+* dcngettext <1>: Programmer i18n. (line 36)
+* dcngettext: I18N Functions. (line 28)
* dcngettext() function (gawk), portability and: I18N Portability.
(line 33)
* deadlocks: Two-way I/O. (line 70)
@@ -31239,7 +31240,7 @@ Index
* exit status, of VMS: VMS Running. (line 29)
* exit the debugger: Miscellaneous Debugger Commands.
(line 99)
-* exp() function: Numeric Functions. (line 18)
+* exp: Numeric Functions. (line 18)
* expand utility: Very Simple. (line 69)
* Expat XML parser library: gawkextlib. (line 35)
* exponent: Numeric Functions. (line 18)
@@ -31301,7 +31302,7 @@ Index
* features, undocumented: Undocumented. (line 6)
* Fenlason, Jay <1>: Contributors. (line 18)
* Fenlason, Jay: History. (line 30)
-* fflush() function: I/O Functions. (line 25)
+* fflush: I/O Functions. (line 25)
* field numbers: Nonconstant Fields. (line 6)
* field operator $: Fields. (line 19)
* field operators, dollar sign as: Fields. (line 19)
@@ -31422,7 +31423,7 @@ Index
(line 57)
* format specifiers, printf statement: Control Letters. (line 6)
* format specifiers, strftime() function (gawk): Time Functions.
- (line 88)
+ (line 89)
* format time string: Time Functions. (line 48)
* formats, numeric output: OFMT. (line 6)
* formatting output: Printf. (line 6)
@@ -31609,8 +31610,8 @@ Index
* General Public License (GPL): Glossary. (line 306)
* General Public License, See GPL: Manual History. (line 11)
* generate time values: Time Functions. (line 25)
-* gensub() function (gawk) <1>: String Functions. (line 82)
-* gensub() function (gawk): Using Constant Regexps.
+* gensub <1>: String Functions. (line 82)
+* gensub: Using Constant Regexps.
(line 43)
* gensub() function (gawk), escape processing: Gory Details. (line 6)
* getaddrinfo() function (C library): TCP/IP Networking. (line 38)
@@ -31685,8 +31686,8 @@ Index
* group file: Group Functions. (line 6)
* group id of gawk user: Auto-set. (line 177)
* groups, information about: Group Functions. (line 6)
-* gsub() function <1>: String Functions. (line 135)
-* gsub() function: Using Constant Regexps.
+* gsub <1>: String Functions. (line 135)
+* gsub: Using Constant Regexps.
(line 43)
* gsub() function, arguments of: String Functions. (line 460)
* gsub() function, escape processing: Gory Details. (line 6)
@@ -31730,7 +31731,8 @@ Index
(line 83)
* IGNORECASE variable, in example programs: Library Functions.
(line 53)
-* IGNORECASE variable, ~ and !~ operators: Case-sensitivity. (line 26)
+* IGNORECASE variable, with ~ and !~ operators: Case-sensitivity.
+ (line 26)
* Illumos: Other Versions. (line 104)
* Illumos, POSIX-compliant awk: Other Versions. (line 104)
* implementation issues, gawk: Notes. (line 6)
@@ -31748,7 +31750,7 @@ Index
(line 37)
* in operator, use in loops: Scanning an Array. (line 17)
* increment operators: Increment Ops. (line 6)
-* index() function: String Functions. (line 151)
+* index: String Functions. (line 151)
* indexing arrays: Array Intro. (line 49)
* indirect function calls: Indirect Calls. (line 6)
* infinite precision: Arbitrary Precision Arithmetic.
@@ -31783,8 +31785,8 @@ Index
* installation, VMS: VMS Installation. (line 6)
* installing gawk: Installation. (line 6)
* instruction tracing, in debugger: Debugger Info. (line 89)
+* int: Numeric Functions. (line 23)
* INT signal (MS-Windows): Profiling. (line 214)
-* int() function: Numeric Functions. (line 23)
* integer array indices: Numeric Array Subscripts.
(line 31)
* integers: General Arithmetic. (line 6)
@@ -31813,7 +31815,7 @@ Index
* interval expressions, regexp operator: Regexp Operators. (line 116)
* inventory-shipped file: Sample Data Files. (line 32)
* invoke shell command: I/O Functions. (line 72)
-* isarray() function (gawk): Type Functions. (line 11)
+* isarray: Type Functions. (line 11)
* ISO: Glossary. (line 368)
* ISO 8859-1: Glossary. (line 133)
* ISO Latin-1: Glossary. (line 133)
@@ -31870,9 +31872,9 @@ Index
* left shift: Bitwise Functions. (line 46)
* left shift, bitwise: Bitwise Functions. (line 32)
* leftmost longest match: Multiple Line. (line 26)
+* length: String Functions. (line 164)
* length of input record: String Functions. (line 171)
* length of string: String Functions. (line 164)
-* length() function: String Functions. (line 164)
* Lesser General Public License (LGPL): Glossary. (line 397)
* LGPL (Lesser General Public License): Glossary. (line 397)
* libmawk: Other Versions. (line 120)
@@ -31934,8 +31936,8 @@ Index
* localization: I18N and L10N. (line 6)
* localization, See internationalization, localization: I18N and L10N.
(line 6)
+* log: Numeric Functions. (line 30)
* log files, timestamps in: Time Functions. (line 6)
-* log() function: Numeric Functions. (line 30)
* logarithm: Numeric Functions. (line 30)
* logical false/true: Truth Values. (line 6)
* logical operators, See Boolean expressions: Boolean Ops. (line 6)
@@ -31952,7 +31954,7 @@ Index
* loops, See Also while statement: While Statement. (line 6)
* loops, while: While Statement. (line 6)
* ls utility: More Complex. (line 15)
-* lshift() function (gawk): Bitwise Functions. (line 46)
+* lshift: Bitwise Functions. (line 46)
* lvalues/rvalues: Assignment Ops. (line 32)
* mail-list file: Sample Data Files. (line 6)
* mailing labels, printing: Labels Program. (line 6)
@@ -31964,8 +31966,8 @@ Index
(line 6)
* marked strings, extracting: String Extraction. (line 6)
* Marx, Groucho: Increment Ops. (line 60)
+* match: String Functions. (line 204)
* match regexp in string: String Functions. (line 204)
-* match() function: String Functions. (line 204)
* match() function, RSTART/RLENGTH variables: String Functions.
(line 221)
* matching, expressions, See comparison expressions: Typing and Comparison.
@@ -31990,7 +31992,7 @@ Index
* metacharacters in regular expressions: Regexp Operators. (line 6)
* metacharacters, escape sequences for: Escape Sequences. (line 130)
* minimum precision supported by MPFR library: Auto-set. (line 221)
-* mktime() function (gawk): Time Functions. (line 25)
+* mktime: Time Functions. (line 25)
* modifiers, in format specifiers: Format Modifiers. (line 6)
* monetary information, localization: Explaining gettext. (line 103)
* MPFR: Gawk and MPFR. (line 6)
@@ -32141,9 +32143,9 @@ Index
* options, long <1>: Options. (line 6)
* options, long: Command Line. (line 13)
* options, printing list of: Options. (line 154)
+* or: Bitwise Functions. (line 49)
* OR bitwise operation: Bitwise Functions. (line 6)
* or Boolean-logic operator: Boolean Ops. (line 6)
-* or() function (gawk): Bitwise Functions. (line 49)
* ord() extension function: Extension Sample Ord.
(line 12)
* ord() user-defined function: Ordinal Functions. (line 16)
@@ -32169,10 +32171,10 @@ Index
(line 36)
* P1003.1 POSIX standard: Glossary. (line 454)
* parent process id of gawk process: Auto-set. (line 186)
-* parentheses (): Regexp Operators. (line 79)
* parentheses (), in a profile: Profiling. (line 146)
+* parentheses (), regexp operator: Regexp Operators. (line 79)
* password file: Passwd Functions. (line 16)
-* patsplit() function (gawk): String Functions. (line 291)
+* patsplit: String Functions. (line 291)
* patterns: Patterns and Actions.
(line 6)
* patterns, comparison expressions as: Expression Patterns. (line 14)
@@ -32265,7 +32267,7 @@ Index
* POSIX awk, changes in awk versions: POSIX. (line 6)
* POSIX awk, continue statement and: Continue Statement. (line 43)
* POSIX awk, CONVFMT variable and: User-modified. (line 28)
-* POSIX awk, date utility and: Time Functions. (line 262)
+* POSIX awk, date utility and: Time Functions. (line 263)
* POSIX awk, field separators and <1>: Field Splitting Summary.
(line 40)
* POSIX awk, field separators and: Fields. (line 6)
@@ -32394,7 +32396,7 @@ Index
* Rakitzis, Byron: History Sorting. (line 25)
* Ramey, Chet <1>: General Data Types. (line 6)
* Ramey, Chet: Acknowledgments. (line 60)
-* rand() function: Numeric Functions. (line 34)
+* rand: Numeric Functions. (line 34)
* random numbers, Cliff: Cliff Random Function.
(line 6)
* random numbers, rand()/srand() functions: Numeric Functions.
@@ -32535,7 +32537,7 @@ Index
* RS variable <1>: User-modified. (line 143)
* RS variable: Records. (line 20)
* RS variable, multiline records and: Multiple Line. (line 17)
-* rshift() function (gawk): Bitwise Functions. (line 52)
+* rshift: Bitwise Functions. (line 52)
* RSTART variable: Auto-set. (line 259)
* RSTART variable, match() function and: String Functions. (line 221)
* RT variable <1>: Auto-set. (line 266)
@@ -32679,7 +32681,7 @@ Index
* SIGUSR1 signal, for dynamic profiling: Profiling. (line 188)
* silent debugger command: Debugger Execution Control.
(line 10)
-* sin() function: Numeric Functions. (line 75)
+* sin: Numeric Functions. (line 75)
* sine: Numeric Functions. (line 75)
* single precision floating-point: General Arithmetic. (line 21)
* single quote ('): One-shot. (line 15)
@@ -32721,20 +32723,20 @@ Index
* source files, search path for: Igawk Program. (line 368)
* sparse arrays: Array Intro. (line 70)
* Spencer, Henry: Glossary. (line 12)
+* split: String Functions. (line 313)
* split string into array: String Functions. (line 291)
* split utility: Split Program. (line 6)
-* split() function: String Functions. (line 313)
* split() function, array elements, deleting: Delete. (line 61)
* split.awk program: Split Program. (line 30)
-* sprintf() function <1>: String Functions. (line 378)
-* sprintf() function: OFMT. (line 15)
+* sprintf <1>: String Functions. (line 378)
+* sprintf: OFMT. (line 15)
* sprintf() function, OFMT variable and: User-modified. (line 124)
* sprintf() function, print/printf statements and: Round Function.
(line 6)
-* sqrt() function: Numeric Functions. (line 78)
+* sqrt: Numeric Functions. (line 78)
* square brackets ([]), regexp operator: Regexp Operators. (line 55)
* square root: Numeric Functions. (line 78)
-* srand() function: Numeric Functions. (line 82)
+* srand: Numeric Functions. (line 82)
* stack frame: Debugging Terms. (line 10)
* Stallman, Richard <1>: Glossary. (line 297)
* Stallman, Richard <2>: Contributors. (line 23)
@@ -32759,7 +32761,7 @@ Index
* stream editors <1>: Simple Sed. (line 6)
* stream editors: Field Splitting Summary.
(line 46)
-* strftime() function (gawk): Time Functions. (line 48)
+* strftime: Time Functions. (line 48)
* string constants: Scalar Constants. (line 15)
* string constants, vs. regexp constants: Computed Regexps. (line 38)
* string extraction (internationalization): String Extraction.
@@ -32783,11 +32785,11 @@ Index
* strings, null: Regexp Field Splitting.
(line 43)
* strings, numeric: Variable Typing. (line 6)
-* strtonum() function (gawk): String Functions. (line 385)
+* strtonum: String Functions. (line 385)
* strtonum() function (gawk), --non-decimal-data option and: Nondecimal Data.
(line 36)
-* sub() function <1>: String Functions. (line 406)
-* sub() function: Using Constant Regexps.
+* sub <1>: String Functions. (line 406)
+* sub: Using Constant Regexps.
(line 43)
* sub() function, arguments of: String Functions. (line 460)
* sub() function, escape processing: Gory Details. (line 6)
@@ -32803,7 +32805,7 @@ Index
* SUBSEP variable, and multidimensional arrays: Multidimensional.
(line 16)
* substitute in string: String Functions. (line 82)
-* substr() function: String Functions. (line 479)
+* substr: String Functions. (line 479)
* substring: String Functions. (line 479)
* Sumner, Andrew: Other Versions. (line 64)
* supplementary groups of gawk process: Auto-set. (line 234)
@@ -32811,8 +32813,8 @@ Index
* SYMTAB array: Auto-set. (line 274)
* syntactic ambiguity: /= operator vs. /=.../ regexp constant: Assignment Ops.
(line 147)
-* system() function: I/O Functions. (line 72)
-* systime() function (gawk): Time Functions. (line 65)
+* system: I/O Functions. (line 72)
+* systime: Time Functions. (line 66)
* t debugger command (alias for tbreak): Breakpoint Control. (line 90)
* tbreak debugger command: Breakpoint Control. (line 90)
* Tcl: Library Names. (line 57)
@@ -32858,11 +32860,11 @@ Index
* time, retrieving: Time Functions. (line 17)
* timeout, reading input: Read Timeout. (line 6)
* timestamps: Time Functions. (line 6)
-* timestamps, converting dates to: Time Functions. (line 75)
+* timestamps, converting dates to: Time Functions. (line 76)
* timestamps, formatted: Getlocaltime Function.
(line 6)
-* tolower() function: String Functions. (line 521)
-* toupper() function: String Functions. (line 527)
+* tolower: String Functions. (line 521)
+* toupper: String Functions. (line 527)
* tr utility: Translate Program. (line 6)
* trace debugger command: Miscellaneous Debugger Commands.
(line 108)
@@ -33041,8 +33043,8 @@ Index
* writea() extension function: Extension Sample Read write array.
(line 9)
* xgettext utility: String Extraction. (line 13)
+* xor: Bitwise Functions. (line 55)
* XOR bitwise operation: Bitwise Functions. (line 6)
-* xor() function (gawk): Bitwise Functions. (line 55)
* Yawitz, Efraim: Contributors. (line 129)
* Zaretskii, Eli <1>: Bugs. (line 70)
* Zaretskii, Eli <2>: Contributors. (line 55)
@@ -33307,300 +33309,300 @@ Ref: Gory Details-Footnote-2506851
Node: I/O Functions507002
Ref: I/O Functions-Footnote-1513992
Node: Time Functions514139
-Ref: Time Functions-Footnote-1525072
-Ref: Time Functions-Footnote-2525140
-Ref: Time Functions-Footnote-3525298
-Ref: Time Functions-Footnote-4525409
-Ref: Time Functions-Footnote-5525521
-Ref: Time Functions-Footnote-6525748
-Node: Bitwise Functions526014
-Ref: table-bitwise-ops526576
-Ref: Bitwise Functions-Footnote-1530797
-Node: Type Functions530981
-Node: I18N Functions532132
-Node: User-defined533759
-Node: Definition Syntax534563
-Ref: Definition Syntax-Footnote-1539477
-Node: Function Example539546
-Ref: Function Example-Footnote-1542195
-Node: Function Caveats542217
-Node: Calling A Function542735
-Node: Variable Scope543690
-Node: Pass By Value/Reference546653
-Node: Return Statement550161
-Node: Dynamic Typing553142
-Node: Indirect Calls554073
-Node: Library Functions563760
-Ref: Library Functions-Footnote-1567273
-Ref: Library Functions-Footnote-2567416
-Node: Library Names567587
-Ref: Library Names-Footnote-1571060
-Ref: Library Names-Footnote-2571280
-Node: General Functions571366
-Node: Strtonum Function572394
-Node: Assert Function575324
-Node: Round Function578650
-Node: Cliff Random Function580191
-Node: Ordinal Functions581207
-Ref: Ordinal Functions-Footnote-1584284
-Ref: Ordinal Functions-Footnote-2584536
-Node: Join Function584747
-Ref: Join Function-Footnote-1586518
-Node: Getlocaltime Function586718
-Node: Readfile Function590459
-Node: Data File Management592298
-Node: Filetrans Function592930
-Node: Rewind Function596999
-Node: File Checking598386
-Node: Empty Files599480
-Node: Ignoring Assigns601710
-Node: Getopt Function603264
-Ref: Getopt Function-Footnote-1614567
-Node: Passwd Functions614770
-Ref: Passwd Functions-Footnote-1623748
-Node: Group Functions623836
-Node: Walking Arrays631920
-Node: Sample Programs634056
-Node: Running Examples634730
-Node: Clones635458
-Node: Cut Program636682
-Node: Egrep Program646533
-Ref: Egrep Program-Footnote-1654306
-Node: Id Program654416
-Node: Split Program658065
-Ref: Split Program-Footnote-1661584
-Node: Tee Program661712
-Node: Uniq Program664515
-Node: Wc Program671944
-Ref: Wc Program-Footnote-1676210
-Ref: Wc Program-Footnote-2676410
-Node: Miscellaneous Programs676502
-Node: Dupword Program677690
-Node: Alarm Program679721
-Node: Translate Program684528
-Ref: Translate Program-Footnote-1688915
-Ref: Translate Program-Footnote-2689163
-Node: Labels Program689297
-Ref: Labels Program-Footnote-1692668
-Node: Word Sorting692752
-Node: History Sorting696636
-Node: Extract Program698475
-Ref: Extract Program-Footnote-1705978
-Node: Simple Sed706106
-Node: Igawk Program709168
-Ref: Igawk Program-Footnote-1724325
-Ref: Igawk Program-Footnote-2724526
-Node: Anagram Program724664
-Node: Signature Program727732
-Node: Advanced Features728832
-Node: Nondecimal Data730718
-Node: Array Sorting732301
-Node: Controlling Array Traversal732998
-Node: Array Sorting Functions741282
-Ref: Array Sorting Functions-Footnote-1745151
-Node: Two-way I/O745345
-Ref: Two-way I/O-Footnote-1750777
-Node: TCP/IP Networking750859
-Node: Profiling753703
-Node: Internationalization761206
-Node: I18N and L10N762631
-Node: Explaining gettext763317
-Ref: Explaining gettext-Footnote-1768385
-Ref: Explaining gettext-Footnote-2768569
-Node: Programmer i18n768734
-Node: Translator i18n772936
-Node: String Extraction773730
-Ref: String Extraction-Footnote-1774691
-Node: Printf Ordering774777
-Ref: Printf Ordering-Footnote-1777559
-Node: I18N Portability777623
-Ref: I18N Portability-Footnote-1780072
-Node: I18N Example780135
-Ref: I18N Example-Footnote-1782773
-Node: Gawk I18N782845
-Node: Debugger783466
-Node: Debugging784437
-Node: Debugging Concepts784870
-Node: Debugging Terms786726
-Node: Awk Debugging789323
-Node: Sample Debugging Session790215
-Node: Debugger Invocation790735
-Node: Finding The Bug792068
-Node: List of Debugger Commands798555
-Node: Breakpoint Control799889
-Node: Debugger Execution Control803553
-Node: Viewing And Changing Data806913
-Node: Execution Stack810269
-Node: Debugger Info811736
-Node: Miscellaneous Debugger Commands815718
-Node: Readline Support820894
-Node: Limitations821725
-Node: Arbitrary Precision Arithmetic823977
-Ref: Arbitrary Precision Arithmetic-Footnote-1825626
-Node: General Arithmetic825774
-Node: Floating Point Issues827494
-Node: String Conversion Precision828375
-Ref: String Conversion Precision-Footnote-1830080
-Node: Unexpected Results830189
-Node: POSIX Floating Point Problems832342
-Ref: POSIX Floating Point Problems-Footnote-1836167
-Node: Integer Programming836205
-Node: Floating-point Programming837944
-Ref: Floating-point Programming-Footnote-1844275
-Ref: Floating-point Programming-Footnote-2844545
-Node: Floating-point Representation844809
-Node: Floating-point Context845974
-Ref: table-ieee-formats846813
-Node: Rounding Mode848197
-Ref: table-rounding-modes848676
-Ref: Rounding Mode-Footnote-1851691
-Node: Gawk and MPFR851870
-Node: Arbitrary Precision Floats853125
-Ref: Arbitrary Precision Floats-Footnote-1855568
-Node: Setting Precision855884
-Ref: table-predefined-precision-strings856570
-Node: Setting Rounding Mode858715
-Ref: table-gawk-rounding-modes859119
-Node: Floating-point Constants860306
-Node: Changing Precision861735
-Ref: Changing Precision-Footnote-1863132
-Node: Exact Arithmetic863306
-Node: Arbitrary Precision Integers866444
-Ref: Arbitrary Precision Integers-Footnote-1869459
-Node: Dynamic Extensions869606
-Node: Extension Intro871064
-Node: Plugin License872329
-Node: Extension Mechanism Outline873014
-Ref: load-extension873431
-Ref: load-new-function874909
-Ref: call-new-function875904
-Node: Extension API Description877919
-Node: Extension API Functions Introduction879206
-Node: General Data Types884133
-Ref: General Data Types-Footnote-1889828
-Node: Requesting Values890127
-Ref: table-value-types-returned890864
-Node: Memory Allocation Functions891818
-Ref: Memory Allocation Functions-Footnote-1894564
-Node: Constructor Functions894660
-Node: Registration Functions896418
-Node: Extension Functions897103
-Node: Exit Callback Functions899405
-Node: Extension Version String900654
-Node: Input Parsers901304
-Node: Output Wrappers911061
-Node: Two-way processors915571
-Node: Printing Messages917779
-Ref: Printing Messages-Footnote-1918856
-Node: Updating `ERRNO'919008
-Node: Accessing Parameters919747
-Node: Symbol Table Access920977
-Node: Symbol table by name921491
-Node: Symbol table by cookie923240
-Ref: Symbol table by cookie-Footnote-1927372
-Node: Cached values927435
-Ref: Cached values-Footnote-1930925
-Node: Array Manipulation931016
-Ref: Array Manipulation-Footnote-1932114
-Node: Array Data Types932153
-Ref: Array Data Types-Footnote-1934856
-Node: Array Functions934948
-Node: Flattening Arrays938784
-Node: Creating Arrays945636
-Node: Extension API Variables950361
-Node: Extension Versioning950997
-Node: Extension API Informational Variables952898
-Node: Extension API Boilerplate953984
-Node: Finding Extensions957788
-Node: Extension Example958348
-Node: Internal File Description959078
-Node: Internal File Ops963169
-Ref: Internal File Ops-Footnote-1974678
-Node: Using Internal File Ops974818
-Ref: Using Internal File Ops-Footnote-1977171
-Node: Extension Samples977437
-Node: Extension Sample File Functions978961
-Node: Extension Sample Fnmatch987446
-Node: Extension Sample Fork989215
-Node: Extension Sample Inplace990428
-Node: Extension Sample Ord992206
-Node: Extension Sample Readdir993042
-Node: Extension Sample Revout994574
-Node: Extension Sample Rev2way995167
-Node: Extension Sample Read write array995857
-Node: Extension Sample Readfile997740
-Node: Extension Sample API Tests998558
-Node: Extension Sample Time999083
-Node: gawkextlib1000447
-Node: Language History1003228
-Node: V7/SVR3.11004821
-Node: SVR41007141
-Node: POSIX1008583
-Node: BTL1009969
-Node: POSIX/GNU1010703
-Node: Feature History1016302
-Node: Common Extensions1029278
-Node: Ranges and Locales1030590
-Ref: Ranges and Locales-Footnote-11035207
-Ref: Ranges and Locales-Footnote-21035234
-Ref: Ranges and Locales-Footnote-31035468
-Node: Contributors1035689
-Node: Installation1041070
-Node: Gawk Distribution1041964
-Node: Getting1042448
-Node: Extracting1043274
-Node: Distribution contents1044966
-Node: Unix Installation1050671
-Node: Quick Installation1051288
-Node: Additional Configuration Options1053734
-Node: Configuration Philosophy1055470
-Node: Non-Unix Installation1057824
-Node: PC Installation1058282
-Node: PC Binary Installation1059581
-Node: PC Compiling1061429
-Node: PC Testing1064373
-Node: PC Using1065549
-Node: Cygwin1069717
-Node: MSYS1070526
-Node: VMS Installation1071040
-Node: VMS Compilation1071804
-Ref: VMS Compilation-Footnote-11073056
-Node: VMS Dynamic Extensions1073114
-Node: VMS Installation Details1074487
-Node: VMS Running1076738
-Node: VMS GNV1079572
-Node: VMS Old Gawk1080295
-Node: Bugs1080765
-Node: Other Versions1084683
-Node: Notes1090767
-Node: Compatibility Mode1091567
-Node: Additions1092350
-Node: Accessing The Source1093277
-Node: Adding Code1094717
-Node: New Ports1100762
-Node: Derived Files1104897
-Ref: Derived Files-Footnote-11110218
-Ref: Derived Files-Footnote-21110252
-Ref: Derived Files-Footnote-31110852
-Node: Future Extensions1110950
-Node: Implementation Limitations1111533
-Node: Extension Design1112785
-Node: Old Extension Problems1113939
-Ref: Old Extension Problems-Footnote-11115447
-Node: Extension New Mechanism Goals1115504
-Ref: Extension New Mechanism Goals-Footnote-11118869
-Node: Extension Other Design Decisions1119055
-Node: Extension Future Growth1121161
-Node: Old Extension Mechanism1121997
-Node: Basic Concepts1123737
-Node: Basic High Level1124418
-Ref: figure-general-flow1124689
-Ref: figure-process-flow1125288
-Ref: Basic High Level-Footnote-11128517
-Node: Basic Data Typing1128702
-Node: Glossary1132057
-Node: Copying1157286
-Node: GNU Free Documentation License1194843
-Node: Index1219980
+Ref: Time Functions-Footnote-1525122
+Ref: Time Functions-Footnote-2525190
+Ref: Time Functions-Footnote-3525348
+Ref: Time Functions-Footnote-4525459
+Ref: Time Functions-Footnote-5525571
+Ref: Time Functions-Footnote-6525798
+Node: Bitwise Functions526064
+Ref: table-bitwise-ops526626
+Ref: Bitwise Functions-Footnote-1530847
+Node: Type Functions531031
+Node: I18N Functions532182
+Node: User-defined533809
+Node: Definition Syntax534613
+Ref: Definition Syntax-Footnote-1539527
+Node: Function Example539596
+Ref: Function Example-Footnote-1542245
+Node: Function Caveats542267
+Node: Calling A Function542785
+Node: Variable Scope543740
+Node: Pass By Value/Reference546703
+Node: Return Statement550211
+Node: Dynamic Typing553192
+Node: Indirect Calls554123
+Node: Library Functions563810
+Ref: Library Functions-Footnote-1567323
+Ref: Library Functions-Footnote-2567466
+Node: Library Names567637
+Ref: Library Names-Footnote-1571110
+Ref: Library Names-Footnote-2571330
+Node: General Functions571416
+Node: Strtonum Function572444
+Node: Assert Function575374
+Node: Round Function578700
+Node: Cliff Random Function580241
+Node: Ordinal Functions581257
+Ref: Ordinal Functions-Footnote-1584334
+Ref: Ordinal Functions-Footnote-2584586
+Node: Join Function584797
+Ref: Join Function-Footnote-1586568
+Node: Getlocaltime Function586768
+Node: Readfile Function590509
+Node: Data File Management592348
+Node: Filetrans Function592980
+Node: Rewind Function597049
+Node: File Checking598436
+Node: Empty Files599530
+Node: Ignoring Assigns601760
+Node: Getopt Function603314
+Ref: Getopt Function-Footnote-1614617
+Node: Passwd Functions614820
+Ref: Passwd Functions-Footnote-1623798
+Node: Group Functions623886
+Node: Walking Arrays631970
+Node: Sample Programs634106
+Node: Running Examples634780
+Node: Clones635508
+Node: Cut Program636732
+Node: Egrep Program646583
+Ref: Egrep Program-Footnote-1654356
+Node: Id Program654466
+Node: Split Program658115
+Ref: Split Program-Footnote-1661634
+Node: Tee Program661762
+Node: Uniq Program664565
+Node: Wc Program671994
+Ref: Wc Program-Footnote-1676260
+Ref: Wc Program-Footnote-2676460
+Node: Miscellaneous Programs676552
+Node: Dupword Program677740
+Node: Alarm Program679771
+Node: Translate Program684578
+Ref: Translate Program-Footnote-1688965
+Ref: Translate Program-Footnote-2689213
+Node: Labels Program689347
+Ref: Labels Program-Footnote-1692718
+Node: Word Sorting692802
+Node: History Sorting696686
+Node: Extract Program698525
+Ref: Extract Program-Footnote-1706028
+Node: Simple Sed706156
+Node: Igawk Program709218
+Ref: Igawk Program-Footnote-1724375
+Ref: Igawk Program-Footnote-2724576
+Node: Anagram Program724714
+Node: Signature Program727782
+Node: Advanced Features728882
+Node: Nondecimal Data730768
+Node: Array Sorting732351
+Node: Controlling Array Traversal733048
+Node: Array Sorting Functions741332
+Ref: Array Sorting Functions-Footnote-1745201
+Node: Two-way I/O745395
+Ref: Two-way I/O-Footnote-1750827
+Node: TCP/IP Networking750909
+Node: Profiling753753
+Node: Internationalization761256
+Node: I18N and L10N762681
+Node: Explaining gettext763367
+Ref: Explaining gettext-Footnote-1768435
+Ref: Explaining gettext-Footnote-2768619
+Node: Programmer i18n768784
+Node: Translator i18n772986
+Node: String Extraction773780
+Ref: String Extraction-Footnote-1774741
+Node: Printf Ordering774827
+Ref: Printf Ordering-Footnote-1777609
+Node: I18N Portability777673
+Ref: I18N Portability-Footnote-1780122
+Node: I18N Example780185
+Ref: I18N Example-Footnote-1782823
+Node: Gawk I18N782895
+Node: Debugger783516
+Node: Debugging784487
+Node: Debugging Concepts784920
+Node: Debugging Terms786776
+Node: Awk Debugging789373
+Node: Sample Debugging Session790265
+Node: Debugger Invocation790785
+Node: Finding The Bug792118
+Node: List of Debugger Commands798605
+Node: Breakpoint Control799939
+Node: Debugger Execution Control803603
+Node: Viewing And Changing Data806963
+Node: Execution Stack810319
+Node: Debugger Info811786
+Node: Miscellaneous Debugger Commands815768
+Node: Readline Support820944
+Node: Limitations821775
+Node: Arbitrary Precision Arithmetic824027
+Ref: Arbitrary Precision Arithmetic-Footnote-1825676
+Node: General Arithmetic825824
+Node: Floating Point Issues827544
+Node: String Conversion Precision828425
+Ref: String Conversion Precision-Footnote-1830130
+Node: Unexpected Results830239
+Node: POSIX Floating Point Problems832392
+Ref: POSIX Floating Point Problems-Footnote-1836217
+Node: Integer Programming836255
+Node: Floating-point Programming837994
+Ref: Floating-point Programming-Footnote-1844325
+Ref: Floating-point Programming-Footnote-2844595
+Node: Floating-point Representation844859
+Node: Floating-point Context846024
+Ref: table-ieee-formats846863
+Node: Rounding Mode848247
+Ref: table-rounding-modes848726
+Ref: Rounding Mode-Footnote-1851741
+Node: Gawk and MPFR851920
+Node: Arbitrary Precision Floats853175
+Ref: Arbitrary Precision Floats-Footnote-1855618
+Node: Setting Precision855934
+Ref: table-predefined-precision-strings856620
+Node: Setting Rounding Mode858765
+Ref: table-gawk-rounding-modes859169
+Node: Floating-point Constants860356
+Node: Changing Precision861785
+Ref: Changing Precision-Footnote-1863182
+Node: Exact Arithmetic863356
+Node: Arbitrary Precision Integers866494
+Ref: Arbitrary Precision Integers-Footnote-1869509
+Node: Dynamic Extensions869656
+Node: Extension Intro871114
+Node: Plugin License872379
+Node: Extension Mechanism Outline873064
+Ref: load-extension873481
+Ref: load-new-function874959
+Ref: call-new-function875954
+Node: Extension API Description877969
+Node: Extension API Functions Introduction879256
+Node: General Data Types884183
+Ref: General Data Types-Footnote-1889878
+Node: Requesting Values890177
+Ref: table-value-types-returned890914
+Node: Memory Allocation Functions891868
+Ref: Memory Allocation Functions-Footnote-1894614
+Node: Constructor Functions894710
+Node: Registration Functions896468
+Node: Extension Functions897153
+Node: Exit Callback Functions899455
+Node: Extension Version String900704
+Node: Input Parsers901354
+Node: Output Wrappers911111
+Node: Two-way processors915621
+Node: Printing Messages917829
+Ref: Printing Messages-Footnote-1918906
+Node: Updating `ERRNO'919058
+Node: Accessing Parameters919797
+Node: Symbol Table Access921027
+Node: Symbol table by name921541
+Node: Symbol table by cookie923290
+Ref: Symbol table by cookie-Footnote-1927422
+Node: Cached values927485
+Ref: Cached values-Footnote-1930975
+Node: Array Manipulation931066
+Ref: Array Manipulation-Footnote-1932164
+Node: Array Data Types932203
+Ref: Array Data Types-Footnote-1934906
+Node: Array Functions934998
+Node: Flattening Arrays938834
+Node: Creating Arrays945686
+Node: Extension API Variables950411
+Node: Extension Versioning951047
+Node: Extension API Informational Variables952948
+Node: Extension API Boilerplate954034
+Node: Finding Extensions957838
+Node: Extension Example958398
+Node: Internal File Description959128
+Node: Internal File Ops963219
+Ref: Internal File Ops-Footnote-1974728
+Node: Using Internal File Ops974868
+Ref: Using Internal File Ops-Footnote-1977221
+Node: Extension Samples977487
+Node: Extension Sample File Functions979011
+Node: Extension Sample Fnmatch987496
+Node: Extension Sample Fork989265
+Node: Extension Sample Inplace990478
+Node: Extension Sample Ord992256
+Node: Extension Sample Readdir993092
+Node: Extension Sample Revout994624
+Node: Extension Sample Rev2way995217
+Node: Extension Sample Read write array995907
+Node: Extension Sample Readfile997790
+Node: Extension Sample API Tests998608
+Node: Extension Sample Time999133
+Node: gawkextlib1000497
+Node: Language History1003278
+Node: V7/SVR3.11004871
+Node: SVR41007191
+Node: POSIX1008633
+Node: BTL1010019
+Node: POSIX/GNU1010753
+Node: Feature History1016352
+Node: Common Extensions1029328
+Node: Ranges and Locales1030640
+Ref: Ranges and Locales-Footnote-11035257
+Ref: Ranges and Locales-Footnote-21035284
+Ref: Ranges and Locales-Footnote-31035518
+Node: Contributors1035739
+Node: Installation1041120
+Node: Gawk Distribution1042014
+Node: Getting1042498
+Node: Extracting1043324
+Node: Distribution contents1045016
+Node: Unix Installation1050721
+Node: Quick Installation1051338
+Node: Additional Configuration Options1053784
+Node: Configuration Philosophy1055520
+Node: Non-Unix Installation1057874
+Node: PC Installation1058332
+Node: PC Binary Installation1059631
+Node: PC Compiling1061479
+Node: PC Testing1064423
+Node: PC Using1065599
+Node: Cygwin1069767
+Node: MSYS1070576
+Node: VMS Installation1071090
+Node: VMS Compilation1071854
+Ref: VMS Compilation-Footnote-11073106
+Node: VMS Dynamic Extensions1073164
+Node: VMS Installation Details1074537
+Node: VMS Running1076788
+Node: VMS GNV1079622
+Node: VMS Old Gawk1080345
+Node: Bugs1080815
+Node: Other Versions1084733
+Node: Notes1090817
+Node: Compatibility Mode1091617
+Node: Additions1092400
+Node: Accessing The Source1093327
+Node: Adding Code1094767
+Node: New Ports1100812
+Node: Derived Files1104947
+Ref: Derived Files-Footnote-11110268
+Ref: Derived Files-Footnote-21110302
+Ref: Derived Files-Footnote-31110902
+Node: Future Extensions1111000
+Node: Implementation Limitations1111583
+Node: Extension Design1112835
+Node: Old Extension Problems1113989
+Ref: Old Extension Problems-Footnote-11115497
+Node: Extension New Mechanism Goals1115554
+Ref: Extension New Mechanism Goals-Footnote-11118919
+Node: Extension Other Design Decisions1119105
+Node: Extension Future Growth1121211
+Node: Old Extension Mechanism1122047
+Node: Basic Concepts1123787
+Node: Basic High Level1124468
+Ref: figure-general-flow1124739
+Ref: figure-process-flow1125338
+Ref: Basic High Level-Footnote-11128567
+Node: Basic Data Typing1128752
+Node: Glossary1132107
+Node: Copying1157336
+Node: GNU Free Documentation License1194893
+Node: Index1220030

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index aa9e3ee4..f3c54551 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -134,6 +134,30 @@
@end macro
@end ifnothtml
+@c Indexing macros
+@ifinfo
+
+@macro cindexawkfunc{name}
+@cindex @code{\name\}
+@end macro
+
+@macro cindexgawkfunc{name}
+@cindex @code{\name\}
+@end macro
+
+@end ifinfo
+
+@ifnotinfo
+
+@macro cindexawkfunc{name}
+@cindex @code{\name\()} function
+@end macro
+
+@macro cindexgawkfunc{name}
+@cindex @code{\name\()} function (@command{gawk})
+@end macro
+@end ifnotinfo
+
@ignore
Some comments on the layout for TeX.
1. Use at least texinfo.tex 2014-01-30.15
@@ -4820,8 +4844,8 @@ means it matches any string that starts with @samp{P} or contains a digit.
The alternation applies to the largest possible regexps on either side.
-@cindex @code{()} (parentheses)
-@cindex parentheses @code{()}
+@cindex @code{()} (parentheses), regexp operator
+@cindex parentheses @code{()}, regexp operator
@item (@dots{})
Parentheses are used for grouping in regular expressions, as in
arithmetic. They can be used to concatenate regular expressions
@@ -5290,7 +5314,7 @@ This works in any POSIX-compliant @command{awk}.
@cindex tilde (@code{~}), @code{~} operator
@cindex @code{!} (exclamation point), @code{!~} operator
@cindex exclamation point (@code{!}), @code{!~} operator
-@cindex @code{IGNORECASE} variable, @code{~} and @code{!~} operators
+@cindex @code{IGNORECASE} variable, with @code{~} and @code{!~} operators
@cindex @command{gawk}, @code{IGNORECASE} variable in
@c @cindex variables, @code{IGNORECASE}
Another method, specific to @command{gawk}, is to set the variable
@@ -8310,7 +8334,7 @@ numbers can be formatted. The different format specifications are discussed
more fully in
@ref{Control Letters}.
-@cindex @code{sprintf()} function
+@cindexawkfunc{sprintf}
@cindex @code{OFMT} variable
@cindex output, format specifier@comma{} @code{OFMT}
The built-in variable @code{OFMT} contains the default format specification
@@ -9312,7 +9336,7 @@ the file name or command associated with it, and subsequent
writes to the same file or command are appended to the previous writes.
The file or pipe stays open until @command{awk} exits.
-@cindex @code{close()} function
+@cindexawkfunc{close}
This implies that special steps are necessary in order to read the same
file again from the beginning, or to rerun a shell command (rather than
reading more output from the same command). The @code{close()} function
@@ -9881,9 +9905,9 @@ upon the contents of the current input record.
@cindex differences in @command{awk} and @command{gawk}, regexp constants
@cindex dark corner, regexp constants, as arguments to user-defined functions
-@cindex @code{gensub()} function (@command{gawk})
-@cindex @code{sub()} function
-@cindex @code{gsub()} function
+@cindexgawkfunc{gensub}
+@cindexawkfunc{sub}
+@cindexawkfunc{gsub}
Constant regular expressions are also used as the first argument for
the @code{gensub()}, @code{sub()}, and @code{gsub()} functions, as the
second argument of the @code{match()} function,
@@ -15553,19 +15577,19 @@ Return the arctangent of @code{@var{y} / @var{x}} in radians.
You can use @samp{pi = atan2(0, -1)} to retrieve the value of @value{PI}.
@item cos(@var{x})
-@cindex @code{cos()} function
+@cindexawkfunc{cos}
@cindex cosine
Return the cosine of @var{x}, with @var{x} in radians.
@item exp(@var{x})
-@cindex @code{exp()} function
+@cindexawkfunc{exp}
@cindex exponent
Return the exponential of @var{x} (@code{e ^ @var{x}}) or report
an error if @var{x} is out of range. The range of values @var{x} can have
depends on your machine's floating-point representation.
@item int(@var{x})
-@cindex @code{int()} function
+@cindexawkfunc{int}
@cindex round to nearest integer
Return the nearest integer to @var{x}, located between @var{x} and zero and
truncated toward zero.
@@ -15574,13 +15598,13 @@ For example, @code{int(3)} is 3, @code{int(3.9)} is 3, @code{int(-3.9)}
is @minus{}3, and @code{int(-3)} is @minus{}3 as well.
@item log(@var{x})
-@cindex @code{log()} function
+@cindexawkfunc{log}
@cindex logarithm
Return the natural logarithm of @var{x}, if @var{x} is positive;
otherwise, report an error.
@item rand()
-@cindex @code{rand()} function
+@cindexawkfunc{rand}
@cindex random numbers, @code{rand()}/@code{srand()} functions
Return a random number. The values of @code{rand()} are
uniformly distributed between zero and one.
@@ -15638,19 +15662,19 @@ use @code{srand()}.
@end quotation
@item sin(@var{x})
-@cindex @code{sin()} function
+@cindexawkfunc{sin}
@cindex sine
Return the sine of @var{x}, with @var{x} in radians.
@item sqrt(@var{x})
-@cindex @code{sqrt()} function
+@cindexawkfunc{sqrt}
@cindex square root
Return the positive square root of @var{x}.
@command{gawk} prints a warning message
if @var{x} is negative. Thus, @code{sqrt(4)} is 2.
@item srand(@r{[}@var{x}@r{]})
-@cindex @code{srand()} function
+@cindexawkfunc{srand}
Set the starting point, or seed,
for generating random numbers to the value @var{x}.
@@ -15709,10 +15733,10 @@ pound sign@w{ (@samp{#}):}
@table @code
@item asort(@var{source} @r{[}, @var{dest} @r{[}, @var{how} @r{]} @r{]}) #
@itemx asorti(@var{source} @r{[}, @var{dest} @r{[}, @var{how} @r{]} @r{]}) #
-@cindex @code{asorti()} function (@command{gawk})
+@cindexgawkfunc{asorti}
@cindex sort array
@cindex arrays, elements, retrieving number of
-@cindex @code{asort()} function (@command{gawk})
+@cindexgawkfunc{asort}
@cindex sort array indices
These two functions are similar in behavior, so they are described
together.
@@ -15776,7 +15800,7 @@ a[3] = "middle"
are not available in compatibility mode (@pxref{Options}).
@item gensub(@var{regexp}, @var{replacement}, @var{how} @r{[}, @var{target}@r{]}) #
-@cindex @code{gensub()} function (@command{gawk})
+@cindexgawkfunc{gensub}
@cindex search and replace in strings
@cindex substitute in string
Search the target string @var{target} for matches of the regular
@@ -15841,7 +15865,7 @@ is the original unchanged value of @var{target}.
in compatibility mode (@pxref{Options}).
@item gsub(@var{regexp}, @var{replacement} @r{[}, @var{target}@r{]})
-@cindex @code{gsub()} function
+@cindexawkfunc{gsub}
Search @var{target} for
@emph{all} of the longest, leftmost, @emph{nonoverlapping} matching
substrings it can find and replace them with @var{replacement}.
@@ -15863,7 +15887,7 @@ As in @code{sub()}, the characters @samp{&} and @samp{\} are special,
and the third argument must be assignable.
@item index(@var{in}, @var{find})
-@cindex @code{index()} function
+@cindexawkfunc{index}
@cindex search in string
@cindex find substring in string
Search the string @var{in} for the first occurrence of the string
@@ -15882,7 +15906,7 @@ If @var{find} is not found, @code{index()} returns zero.
It is a fatal error to use a regexp constant for @var{find}.
@item length(@r{[}@var{string}@r{]})
-@cindex @code{length()} function
+@cindexawkfunc{length}
@cindex string length
@cindex length of string
Return the number of characters in @var{string}. If
@@ -15947,7 +15971,7 @@ If @option{--posix} is supplied, using an array argument is a fatal error
(@pxref{Arrays}).
@item match(@var{string}, @var{regexp} @r{[}, @var{array}@r{]})
-@cindex @code{match()} function
+@cindexawkfunc{match}
@cindex string, regular expression match
@cindex match regexp in string
Search @var{string} for the
@@ -16064,7 +16088,7 @@ The @var{array} argument to @code{match()} is a
using a third argument is a fatal error.
@item patsplit(@var{string}, @var{array} @r{[}, @var{fieldpat} @r{[}, @var{seps} @r{]} @r{]}) #
-@cindex @code{patsplit()} function (@command{gawk})
+@cindexgawkfunc{patsplit}
@cindex split string into array
Divide
@var{string} into pieces defined by @var{fieldpat}
@@ -16096,7 +16120,7 @@ The @code{patsplit()} function is a
it is not available.
@item split(@var{string}, @var{array} @r{[}, @var{fieldsep} @r{[}, @var{seps} @r{]} @r{]})
-@cindex @code{split()} function
+@cindexawkfunc{split}
Divide @var{string} into pieces separated by @var{fieldsep}
and store the pieces in @var{array} and the separator strings in the
@var{seps} array. The first piece is stored in
@@ -16181,7 +16205,7 @@ If @var{string} does not match @var{fieldsep} at all (but is not null),
@var{string}.
@item sprintf(@var{format}, @var{expression1}, @dots{})
-@cindex @code{sprintf()} function
+@cindexawkfunc{sprintf}
@cindex formatting strings
Return (without printing) the string that @code{printf} would
have printed out with the same arguments
@@ -16195,7 +16219,7 @@ pival = sprintf("pi = %.2f (approx.)", 22/7)
@noindent
assigns the string @w{@samp{pi = 3.14 (approx.)}} to the variable @code{pival}.
-@cindex @code{strtonum()} function (@command{gawk})
+@cindexgawkfunc{strtonum}
@cindex convert string to number
@item strtonum(@var{str}) #
Examine @var{str} and return its numeric value. If @var{str}
@@ -16223,7 +16247,7 @@ for recognizing numbers (@pxref{Locales}).
in compatibility mode (@pxref{Options}).
@item sub(@var{regexp}, @var{replacement} @r{[}, @var{target}@r{]})
-@cindex @code{sub()} function
+@cindexawkfunc{sub}
@cindex replace in string
Search @var{target}, which is treated as a string, for the
leftmost, longest substring matched by the regular expression @var{regexp}.
@@ -16324,7 +16348,7 @@ Finally, if the @var{regexp} is not a regexp constant, it is converted into a
string, and then the value of that string is treated as the regexp to match.
@item substr(@var{string}, @var{start} @r{[}, @var{length}@r{]})
-@cindex @code{substr()} function
+@cindexawkfunc{substr}
@cindex substring
Return a @var{length}-character-long substring of @var{string},
starting at character number @var{start}. The first character of a
@@ -16384,7 +16408,7 @@ string = substr(string, 1, 2) "CDE" substr(string, 6)
@cindex case sensitivity, converting case
@cindex strings, converting letter case
@item tolower(@var{string})
-@cindex @code{tolower()} function
+@cindexawkfunc{tolower}
@cindex convert string to lower case
Return a copy of @var{string}, with each uppercase character
in the string replaced with its corresponding lowercase character.
@@ -16392,7 +16416,7 @@ Nonalphabetic characters are left unchanged. For example,
@code{tolower("MiXeD cAsE 123")} returns @code{"mixed case 123"}.
@item toupper(@var{string})
-@cindex @code{toupper()} function
+@cindexawkfunc{toupper}
@cindex convert string to upper case
Return a copy of @var{string}, with each lowercase character
in the string replaced with its corresponding uppercase character.
@@ -16826,7 +16850,7 @@ Optional parameters are enclosed in square brackets ([ ]):
@table @code
@item close(@var{filename} @r{[}, @var{how}@r{]})
-@cindex @code{close()} function
+@cindexawkfunc{close}
@cindex files, closing
@cindex close file or coprocess
Close the file @var{filename} for input or output. Alternatively, the
@@ -16845,7 +16869,7 @@ not matter.
which discusses this feature in more detail and gives an example.
@item fflush(@r{[}@var{filename}@r{]})
-@cindex @code{fflush()} function
+@cindexawkfunc{fflush}
@cindex flush buffered output
Flush any buffered output associated with @var{filename}, which is either a
file opened for writing or a shell command for redirecting output to
@@ -16905,7 +16929,7 @@ or if @var{filename} is not an open file, pipe, or coprocess.
In such a case, @code{fflush()} returns @minus{}1, as well.
@item system(@var{command})
-@cindex @code{system()} function
+@cindexawkfunc{system}
@cindex invoke shell command
@cindex interacting with other programs
Execute the operating-system
@@ -17220,7 +17244,7 @@ Optional parameters are enclosed in square brackets ([ ]):
@table @code
@item mktime(@var{datespec})
-@cindex @code{mktime()} function (@command{gawk})
+@cindexgawkfunc{mktime}
@cindex generate time values
Turn @var{datespec} into a timestamp in the same form
as is returned by @code{systime()}. It is similar to the function of the
@@ -17251,7 +17275,7 @@ is out of range, @code{mktime()} returns @minus{}1.
@cindex @code{PROCINFO} array
@item strftime(@r{[}@var{format} @r{[}, @var{timestamp} @r{[}, @var{utc-flag}@r{]]]})
@c STARTOFRANGE strf
-@cindex @code{strftime()} function (@command{gawk})
+@cindexgawkfunc{strftime}
@cindex format time string
Format the time specified by @var{timestamp}
based on the contents of the @var{format} string and return the result.
@@ -17269,10 +17293,10 @@ The default string value is
@code{@w{"%a %b %e %H:%M:%S %Z %Y"}}. This format string produces
output that is equivalent to that of the @command{date} utility.
You can assign a new value to @code{PROCINFO["strftime"]} to
-change the default format.
+change the default format; see below for the various format directives.
@item systime()
-@cindex @code{systime()} function (@command{gawk})
+@cindexgawkfunc{systime}
@cindex timestamps
@cindex current system time
Return the current time as the number of seconds since
@@ -17731,32 +17755,32 @@ bitwise operations just described. They are:
@cindex @command{gawk}, bitwise operations in
@table @code
-@cindex @code{and()} function (@command{gawk})
+@cindexgawkfunc{and}
@cindex bitwise AND
@item and(@var{v1}, @var{v2} @r{[}, @r{@dots{}]})
Return the bitwise AND of the arguments. There must be at least two.
-@cindex @code{compl()} function (@command{gawk})
+@cindexgawkfunc{compl}
@cindex bitwise complement
@item compl(@var{val})
Return the bitwise complement of @var{val}.
-@cindex @code{lshift()} function (@command{gawk})
+@cindexgawkfunc{lshift}
@cindex left shift
@item lshift(@var{val}, @var{count})
Return the value of @var{val}, shifted left by @var{count} bits.
-@cindex @code{or()} function (@command{gawk})
+@cindexgawkfunc{or}
@cindex bitwise OR
@item or(@var{v1}, @var{v2} @r{[}, @r{@dots{}]})
Return the bitwise OR of the arguments. There must be at least two.
-@cindex @code{rshift()} function (@command{gawk})
+@cindexgawkfunc{rshift}
@cindex right shift
@item rshift(@var{val}, @var{count})
Return the value of @var{val}, shifted right by @var{count} bits.
-@cindex @code{xor()} function (@command{gawk})
+@cindexgawkfunc{xor}
@cindex bitwise XOR
@item xor(@var{v1}, @var{v2} @r{[}, @r{@dots{}]})
Return the bitwise XOR of the arguments. There must be at least two.
@@ -17885,7 +17909,7 @@ that traverses every element of a true multidimensional array
(@pxref{Arrays of Arrays}).
@table @code
-@cindex @code{isarray()} function (@command{gawk})
+@cindexgawkfunc{isarray}
@cindex scalar or array
@item isarray(@var{x})
Return a true value if @var{x} is an array. Otherwise return false.
@@ -17920,7 +17944,7 @@ for the full story.
Optional parameters are enclosed in square brackets ([ ]):
@table @code
-@cindex @code{bindtextdomain()} function (@command{gawk})
+@cindexgawkfunc{bindtextdomain}
@cindex set directory of message catalogs
@item bindtextdomain(@var{directory} @r{[}, @var{domain}@r{]})
Set the directory in which
@@ -17934,7 +17958,7 @@ If @var{directory} is the null string (@code{""}), then
@code{bindtextdomain()} returns the current binding for the
given @var{domain}.
-@cindex @code{dcgettext()} function (@command{gawk})
+@cindexgawkfunc{dcgettext}
@cindex translate string
@item dcgettext(@var{string} @r{[}, @var{domain} @r{[}, @var{category}@r{]]})
Return the translation of @var{string} in
@@ -17942,7 +17966,7 @@ text domain @var{domain} for locale category @var{category}.
The default value for @var{domain} is the current value of @code{TEXTDOMAIN}.
The default value for @var{category} is @code{"LC_MESSAGES"}.
-@cindex @code{dcngettext()} function (@command{gawk})
+@cindexgawkfunc{dcngettext}
@item dcngettext(@var{string1}, @var{string2}, @var{number} @r{[}, @var{domain} @r{[}, @var{category}@r{]]})
Return the plural form used for @var{number} of the
translation of @var{string1} and @var{string2} in text domain
@@ -25524,9 +25548,9 @@ sorted array traversal is not the default.
@subsection Sorting Array Values and Indices with @command{gawk}
@cindex arrays, sorting
-@cindex @code{asort()} function (@command{gawk})
+@cindexgawkfunc{asort}
@cindex @code{asort()} function (@command{gawk}), arrays@comma{} sorting
-@cindex @code{asorti()} function (@command{gawk})
+@cindexgawkfunc{asorti}
@cindex @code{asorti()} function (@command{gawk}), arrays@comma{} sorting
@cindex sort function, arrays, sorting
In most @command{awk} implementations, sorting an array requires writing
@@ -26506,7 +26530,7 @@ String constants marked with a leading underscore
are candidates for translation at runtime.
String constants without a leading underscore are not translated.
-@cindex @code{dcgettext()} function (@command{gawk})
+@cindexgawkfunc{dcgettext}
@item dcgettext(@var{string} @r{[}, @var{domain} @r{[}, @var{category}@r{]]})
Return the translation of @var{string} in
text domain @var{domain} for locale category @var{category}.
@@ -26532,7 +26556,7 @@ chosen to be simple and to allow for reasonable @command{awk}-style
default arguments.
@end quotation
-@cindex @code{dcngettext()} function (@command{gawk})
+@cindexgawkfunc{dcngettext}
@item dcngettext(@var{string1}, @var{string2}, @var{number} @r{[}, @var{domain} @r{[}, @var{category}@r{]]})
Return the plural form used for @var{number} of the
translation of @var{string1} and @var{string2} in text domain
@@ -26548,7 +26572,7 @@ The same remarks about argument order as for the @code{dcgettext()} function app
@cindex files, @code{.gmo}, specifying directory of
@cindex message object files, specifying directory of
@cindex files, message object, specifying directory of
-@cindex @code{bindtextdomain()} function (@command{gawk})
+@cindexgawkfunc{bindtextdomain}
@item bindtextdomain(@var{directory} @r{[}, @var{domain}@r{]})
Change the directory in which
@code{gettext} looks for @file{.gmo} files, in case they
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index bd604300..7ca73834 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -129,6 +129,30 @@
@end macro
@end ifnothtml
+@c Indexing macros
+@ifinfo
+
+@macro cindexawkfunc{name}
+@cindex @code{\name\}
+@end macro
+
+@macro cindexgawkfunc{name}
+@cindex @code{\name\}
+@end macro
+
+@end ifinfo
+
+@ifnotinfo
+
+@macro cindexawkfunc{name}
+@cindex @code{\name\()} function
+@end macro
+
+@macro cindexgawkfunc{name}
+@cindex @code{\name\()} function (@command{gawk})
+@end macro
+@end ifnotinfo
+
@ignore
Some comments on the layout for TeX.
1. Use at least texinfo.tex 2014-01-30.15
@@ -4665,8 +4689,8 @@ means it matches any string that starts with @samp{P} or contains a digit.
The alternation applies to the largest possible regexps on either side.
-@cindex @code{()} (parentheses)
-@cindex parentheses @code{()}
+@cindex @code{()} (parentheses), regexp operator
+@cindex parentheses @code{()}, regexp operator
@item (@dots{})
Parentheses are used for grouping in regular expressions, as in
arithmetic. They can be used to concatenate regular expressions
@@ -5135,7 +5159,7 @@ This works in any POSIX-compliant @command{awk}.
@cindex tilde (@code{~}), @code{~} operator
@cindex @code{!} (exclamation point), @code{!~} operator
@cindex exclamation point (@code{!}), @code{!~} operator
-@cindex @code{IGNORECASE} variable, @code{~} and @code{!~} operators
+@cindex @code{IGNORECASE} variable, with @code{~} and @code{!~} operators
@cindex @command{gawk}, @code{IGNORECASE} variable in
@c @cindex variables, @code{IGNORECASE}
Another method, specific to @command{gawk}, is to set the variable
@@ -7928,7 +7952,7 @@ numbers can be formatted. The different format specifications are discussed
more fully in
@ref{Control Letters}.
-@cindex @code{sprintf()} function
+@cindexawkfunc{sprintf}
@cindex @code{OFMT} variable
@cindex output, format specifier@comma{} @code{OFMT}
The built-in variable @code{OFMT} contains the default format specification
@@ -8892,7 +8916,7 @@ the file name or command associated with it, and subsequent
writes to the same file or command are appended to the previous writes.
The file or pipe stays open until @command{awk} exits.
-@cindex @code{close()} function
+@cindexawkfunc{close}
This implies that special steps are necessary in order to read the same
file again from the beginning, or to rerun a shell command (rather than
reading more output from the same command). The @code{close()} function
@@ -9370,9 +9394,9 @@ upon the contents of the current input record.
@cindex differences in @command{awk} and @command{gawk}, regexp constants
@cindex dark corner, regexp constants, as arguments to user-defined functions
-@cindex @code{gensub()} function (@command{gawk})
-@cindex @code{sub()} function
-@cindex @code{gsub()} function
+@cindexgawkfunc{gensub}
+@cindexawkfunc{sub}
+@cindexawkfunc{gsub}
Constant regular expressions are also used as the first argument for
the @code{gensub()}, @code{sub()}, and @code{gsub()} functions, as the
second argument of the @code{match()} function,
@@ -14884,19 +14908,19 @@ Return the arctangent of @code{@var{y} / @var{x}} in radians.
You can use @samp{pi = atan2(0, -1)} to retrieve the value of @value{PI}.
@item cos(@var{x})
-@cindex @code{cos()} function
+@cindexawkfunc{cos}
@cindex cosine
Return the cosine of @var{x}, with @var{x} in radians.
@item exp(@var{x})
-@cindex @code{exp()} function
+@cindexawkfunc{exp}
@cindex exponent
Return the exponential of @var{x} (@code{e ^ @var{x}}) or report
an error if @var{x} is out of range. The range of values @var{x} can have
depends on your machine's floating-point representation.
@item int(@var{x})
-@cindex @code{int()} function
+@cindexawkfunc{int}
@cindex round to nearest integer
Return the nearest integer to @var{x}, located between @var{x} and zero and
truncated toward zero.
@@ -14905,13 +14929,13 @@ For example, @code{int(3)} is 3, @code{int(3.9)} is 3, @code{int(-3.9)}
is @minus{}3, and @code{int(-3)} is @minus{}3 as well.
@item log(@var{x})
-@cindex @code{log()} function
+@cindexawkfunc{log}
@cindex logarithm
Return the natural logarithm of @var{x}, if @var{x} is positive;
otherwise, report an error.
@item rand()
-@cindex @code{rand()} function
+@cindexawkfunc{rand}
@cindex random numbers, @code{rand()}/@code{srand()} functions
Return a random number. The values of @code{rand()} are
uniformly distributed between zero and one.
@@ -14969,19 +14993,19 @@ use @code{srand()}.
@end quotation
@item sin(@var{x})
-@cindex @code{sin()} function
+@cindexawkfunc{sin}
@cindex sine
Return the sine of @var{x}, with @var{x} in radians.
@item sqrt(@var{x})
-@cindex @code{sqrt()} function
+@cindexawkfunc{sqrt}
@cindex square root
Return the positive square root of @var{x}.
@command{gawk} prints a warning message
if @var{x} is negative. Thus, @code{sqrt(4)} is 2.
@item srand(@r{[}@var{x}@r{]})
-@cindex @code{srand()} function
+@cindexawkfunc{srand}
Set the starting point, or seed,
for generating random numbers to the value @var{x}.
@@ -15040,10 +15064,10 @@ pound sign@w{ (@samp{#}):}
@table @code
@item asort(@var{source} @r{[}, @var{dest} @r{[}, @var{how} @r{]} @r{]}) #
@itemx asorti(@var{source} @r{[}, @var{dest} @r{[}, @var{how} @r{]} @r{]}) #
-@cindex @code{asorti()} function (@command{gawk})
+@cindexgawkfunc{asorti}
@cindex sort array
@cindex arrays, elements, retrieving number of
-@cindex @code{asort()} function (@command{gawk})
+@cindexgawkfunc{asort}
@cindex sort array indices
These two functions are similar in behavior, so they are described
together.
@@ -15107,7 +15131,7 @@ a[3] = "middle"
are not available in compatibility mode (@pxref{Options}).
@item gensub(@var{regexp}, @var{replacement}, @var{how} @r{[}, @var{target}@r{]}) #
-@cindex @code{gensub()} function (@command{gawk})
+@cindexgawkfunc{gensub}
@cindex search and replace in strings
@cindex substitute in string
Search the target string @var{target} for matches of the regular
@@ -15172,7 +15196,7 @@ is the original unchanged value of @var{target}.
in compatibility mode (@pxref{Options}).
@item gsub(@var{regexp}, @var{replacement} @r{[}, @var{target}@r{]})
-@cindex @code{gsub()} function
+@cindexawkfunc{gsub}
Search @var{target} for
@emph{all} of the longest, leftmost, @emph{nonoverlapping} matching
substrings it can find and replace them with @var{replacement}.
@@ -15194,7 +15218,7 @@ As in @code{sub()}, the characters @samp{&} and @samp{\} are special,
and the third argument must be assignable.
@item index(@var{in}, @var{find})
-@cindex @code{index()} function
+@cindexawkfunc{index}
@cindex search in string
@cindex find substring in string
Search the string @var{in} for the first occurrence of the string
@@ -15213,7 +15237,7 @@ If @var{find} is not found, @code{index()} returns zero.
It is a fatal error to use a regexp constant for @var{find}.
@item length(@r{[}@var{string}@r{]})
-@cindex @code{length()} function
+@cindexawkfunc{length}
@cindex string length
@cindex length of string
Return the number of characters in @var{string}. If
@@ -15278,7 +15302,7 @@ If @option{--posix} is supplied, using an array argument is a fatal error
(@pxref{Arrays}).
@item match(@var{string}, @var{regexp} @r{[}, @var{array}@r{]})
-@cindex @code{match()} function
+@cindexawkfunc{match}
@cindex string, regular expression match
@cindex match regexp in string
Search @var{string} for the
@@ -15395,7 +15419,7 @@ The @var{array} argument to @code{match()} is a
using a third argument is a fatal error.
@item patsplit(@var{string}, @var{array} @r{[}, @var{fieldpat} @r{[}, @var{seps} @r{]} @r{]}) #
-@cindex @code{patsplit()} function (@command{gawk})
+@cindexgawkfunc{patsplit}
@cindex split string into array
Divide
@var{string} into pieces defined by @var{fieldpat}
@@ -15427,7 +15451,7 @@ The @code{patsplit()} function is a
it is not available.
@item split(@var{string}, @var{array} @r{[}, @var{fieldsep} @r{[}, @var{seps} @r{]} @r{]})
-@cindex @code{split()} function
+@cindexawkfunc{split}
Divide @var{string} into pieces separated by @var{fieldsep}
and store the pieces in @var{array} and the separator strings in the
@var{seps} array. The first piece is stored in
@@ -15512,7 +15536,7 @@ If @var{string} does not match @var{fieldsep} at all (but is not null),
@var{string}.
@item sprintf(@var{format}, @var{expression1}, @dots{})
-@cindex @code{sprintf()} function
+@cindexawkfunc{sprintf}
@cindex formatting strings
Return (without printing) the string that @code{printf} would
have printed out with the same arguments
@@ -15526,7 +15550,7 @@ pival = sprintf("pi = %.2f (approx.)", 22/7)
@noindent
assigns the string @w{@samp{pi = 3.14 (approx.)}} to the variable @code{pival}.
-@cindex @code{strtonum()} function (@command{gawk})
+@cindexgawkfunc{strtonum}
@cindex convert string to number
@item strtonum(@var{str}) #
Examine @var{str} and return its numeric value. If @var{str}
@@ -15554,7 +15578,7 @@ for recognizing numbers (@pxref{Locales}).
in compatibility mode (@pxref{Options}).
@item sub(@var{regexp}, @var{replacement} @r{[}, @var{target}@r{]})
-@cindex @code{sub()} function
+@cindexawkfunc{sub}
@cindex replace in string
Search @var{target}, which is treated as a string, for the
leftmost, longest substring matched by the regular expression @var{regexp}.
@@ -15655,7 +15679,7 @@ Finally, if the @var{regexp} is not a regexp constant, it is converted into a
string, and then the value of that string is treated as the regexp to match.
@item substr(@var{string}, @var{start} @r{[}, @var{length}@r{]})
-@cindex @code{substr()} function
+@cindexawkfunc{substr}
@cindex substring
Return a @var{length}-character-long substring of @var{string},
starting at character number @var{start}. The first character of a
@@ -15715,7 +15739,7 @@ string = substr(string, 1, 2) "CDE" substr(string, 6)
@cindex case sensitivity, converting case
@cindex strings, converting letter case
@item tolower(@var{string})
-@cindex @code{tolower()} function
+@cindexawkfunc{tolower}
@cindex convert string to lower case
Return a copy of @var{string}, with each uppercase character
in the string replaced with its corresponding lowercase character.
@@ -15723,7 +15747,7 @@ Nonalphabetic characters are left unchanged. For example,
@code{tolower("MiXeD cAsE 123")} returns @code{"mixed case 123"}.
@item toupper(@var{string})
-@cindex @code{toupper()} function
+@cindexawkfunc{toupper}
@cindex convert string to upper case
Return a copy of @var{string}, with each lowercase character
in the string replaced with its corresponding uppercase character.
@@ -16124,7 +16148,7 @@ Optional parameters are enclosed in square brackets ([ ]):
@table @code
@item close(@var{filename} @r{[}, @var{how}@r{]})
-@cindex @code{close()} function
+@cindexawkfunc{close}
@cindex files, closing
@cindex close file or coprocess
Close the file @var{filename} for input or output. Alternatively, the
@@ -16143,7 +16167,7 @@ not matter.
which discusses this feature in more detail and gives an example.
@item fflush(@r{[}@var{filename}@r{]})
-@cindex @code{fflush()} function
+@cindexawkfunc{fflush}
@cindex flush buffered output
Flush any buffered output associated with @var{filename}, which is either a
file opened for writing or a shell command for redirecting output to
@@ -16203,7 +16227,7 @@ or if @var{filename} is not an open file, pipe, or coprocess.
In such a case, @code{fflush()} returns @minus{}1, as well.
@item system(@var{command})
-@cindex @code{system()} function
+@cindexawkfunc{system}
@cindex invoke shell command
@cindex interacting with other programs
Execute the operating-system
@@ -16390,7 +16414,7 @@ Optional parameters are enclosed in square brackets ([ ]):
@table @code
@item mktime(@var{datespec})
-@cindex @code{mktime()} function (@command{gawk})
+@cindexgawkfunc{mktime}
@cindex generate time values
Turn @var{datespec} into a timestamp in the same form
as is returned by @code{systime()}. It is similar to the function of the
@@ -16421,7 +16445,7 @@ is out of range, @code{mktime()} returns @minus{}1.
@cindex @code{PROCINFO} array
@item strftime(@r{[}@var{format} @r{[}, @var{timestamp} @r{[}, @var{utc-flag}@r{]]]})
@c STARTOFRANGE strf
-@cindex @code{strftime()} function (@command{gawk})
+@cindexgawkfunc{strftime}
@cindex format time string
Format the time specified by @var{timestamp}
based on the contents of the @var{format} string and return the result.
@@ -16439,10 +16463,10 @@ The default string value is
@code{@w{"%a %b %e %H:%M:%S %Z %Y"}}. This format string produces
output that is equivalent to that of the @command{date} utility.
You can assign a new value to @code{PROCINFO["strftime"]} to
-change the default format.
+change the default format; see below for the various format directives.
@item systime()
-@cindex @code{systime()} function (@command{gawk})
+@cindexgawkfunc{systime}
@cindex timestamps
@cindex current system time
Return the current time as the number of seconds since
@@ -16901,32 +16925,32 @@ bitwise operations just described. They are:
@cindex @command{gawk}, bitwise operations in
@table @code
-@cindex @code{and()} function (@command{gawk})
+@cindexgawkfunc{and}
@cindex bitwise AND
@item and(@var{v1}, @var{v2} @r{[}, @r{@dots{}]})
Return the bitwise AND of the arguments. There must be at least two.
-@cindex @code{compl()} function (@command{gawk})
+@cindexgawkfunc{compl}
@cindex bitwise complement
@item compl(@var{val})
Return the bitwise complement of @var{val}.
-@cindex @code{lshift()} function (@command{gawk})
+@cindexgawkfunc{lshift}
@cindex left shift
@item lshift(@var{val}, @var{count})
Return the value of @var{val}, shifted left by @var{count} bits.
-@cindex @code{or()} function (@command{gawk})
+@cindexgawkfunc{or}
@cindex bitwise OR
@item or(@var{v1}, @var{v2} @r{[}, @r{@dots{}]})
Return the bitwise OR of the arguments. There must be at least two.
-@cindex @code{rshift()} function (@command{gawk})
+@cindexgawkfunc{rshift}
@cindex right shift
@item rshift(@var{val}, @var{count})
Return the value of @var{val}, shifted right by @var{count} bits.
-@cindex @code{xor()} function (@command{gawk})
+@cindexgawkfunc{xor}
@cindex bitwise XOR
@item xor(@var{v1}, @var{v2} @r{[}, @r{@dots{}]})
Return the bitwise XOR of the arguments. There must be at least two.
@@ -17055,7 +17079,7 @@ that traverses every element of a true multidimensional array
(@pxref{Arrays of Arrays}).
@table @code
-@cindex @code{isarray()} function (@command{gawk})
+@cindexgawkfunc{isarray}
@cindex scalar or array
@item isarray(@var{x})
Return a true value if @var{x} is an array. Otherwise return false.
@@ -17090,7 +17114,7 @@ for the full story.
Optional parameters are enclosed in square brackets ([ ]):
@table @code
-@cindex @code{bindtextdomain()} function (@command{gawk})
+@cindexgawkfunc{bindtextdomain}
@cindex set directory of message catalogs
@item bindtextdomain(@var{directory} @r{[}, @var{domain}@r{]})
Set the directory in which
@@ -17104,7 +17128,7 @@ If @var{directory} is the null string (@code{""}), then
@code{bindtextdomain()} returns the current binding for the
given @var{domain}.
-@cindex @code{dcgettext()} function (@command{gawk})
+@cindexgawkfunc{dcgettext}
@cindex translate string
@item dcgettext(@var{string} @r{[}, @var{domain} @r{[}, @var{category}@r{]]})
Return the translation of @var{string} in
@@ -17112,7 +17136,7 @@ text domain @var{domain} for locale category @var{category}.
The default value for @var{domain} is the current value of @code{TEXTDOMAIN}.
The default value for @var{category} is @code{"LC_MESSAGES"}.
-@cindex @code{dcngettext()} function (@command{gawk})
+@cindexgawkfunc{dcngettext}
@item dcngettext(@var{string1}, @var{string2}, @var{number} @r{[}, @var{domain} @r{[}, @var{category}@r{]]})
Return the plural form used for @var{number} of the
translation of @var{string1} and @var{string2} in text domain
@@ -24665,9 +24689,9 @@ sorted array traversal is not the default.
@subsection Sorting Array Values and Indices with @command{gawk}
@cindex arrays, sorting
-@cindex @code{asort()} function (@command{gawk})
+@cindexgawkfunc{asort}
@cindex @code{asort()} function (@command{gawk}), arrays@comma{} sorting
-@cindex @code{asorti()} function (@command{gawk})
+@cindexgawkfunc{asorti}
@cindex @code{asorti()} function (@command{gawk}), arrays@comma{} sorting
@cindex sort function, arrays, sorting
In most @command{awk} implementations, sorting an array requires writing
@@ -25647,7 +25671,7 @@ String constants marked with a leading underscore
are candidates for translation at runtime.
String constants without a leading underscore are not translated.
-@cindex @code{dcgettext()} function (@command{gawk})
+@cindexgawkfunc{dcgettext}
@item dcgettext(@var{string} @r{[}, @var{domain} @r{[}, @var{category}@r{]]})
Return the translation of @var{string} in
text domain @var{domain} for locale category @var{category}.
@@ -25673,7 +25697,7 @@ chosen to be simple and to allow for reasonable @command{awk}-style
default arguments.
@end quotation
-@cindex @code{dcngettext()} function (@command{gawk})
+@cindexgawkfunc{dcngettext}
@item dcngettext(@var{string1}, @var{string2}, @var{number} @r{[}, @var{domain} @r{[}, @var{category}@r{]]})
Return the plural form used for @var{number} of the
translation of @var{string1} and @var{string2} in text domain
@@ -25689,7 +25713,7 @@ The same remarks about argument order as for the @code{dcgettext()} function app
@cindex files, @code{.gmo}, specifying directory of
@cindex message object files, specifying directory of
@cindex files, message object, specifying directory of
-@cindex @code{bindtextdomain()} function (@command{gawk})
+@cindexgawkfunc{bindtextdomain}
@item bindtextdomain(@var{directory} @r{[}, @var{domain}@r{]})
Change the directory in which
@code{gettext} looks for @file{.gmo} files, in case they