| Index Entry | Section |
|
A | | |
| argument currying | 6.7 Building macros with macros |
| arguments to macros | 4.3 Macro arguments |
| arguments to macros | 5.2 Arguments to macros |
| arguments to macros, special | 5.3 Special arguments to macros |
| arguments, joining | 6.3 Recursion in m4 |
| arguments, more than nine | 5.2 Arguments to macros |
| arguments, more than nine | 6.3 Recursion in m4 |
| arguments, more than nine | 17.3 Solution for foreach |
| arguments, quoted macro | 4.4 On Quoting Arguments to macros |
| arguments, reversing | 6.3 Recursion in m4 |
| arithmetic | 12. Macros for doing arithmetic |
| arrays | 5.1 Defining a macro |
| avoiding quadratic behavior | 17.3 Solution for foreach |
|
B | | |
| basic regular expressions | 11.3 Searching for regular expressions |
| basic regular expressions | 11.6 Substituting text by regular expression |
| blind macro | 4.2 Preventing macro invocation |
| blind macro | 6.2 If-else construct, or multibranch |
| blind macro | 6.7 Building macros with macros |
| bug reports | 1.3 Problems and bugs |
| builtins, indirect call of | 5.8 Indirect call of builtins |
| builtins, special tokens | 5.5 Renaming macros |
|
C | | |
| call of builtins, indirect | 5.8 Indirect call of builtins |
| call of macros, indirect | 5.7 Indirect call of macros |
| case statement | 6.2 If-else construct, or multibranch |
| changing comment delimiters | 8.3 Changing the comment delimiters |
| changing quote delimiters | 8.2 Changing the quote characters |
| changing syntax | 8.4 Changing the lexical structure of words |
| characters, translating | 11.5 Translating characters |
| command line | 2. Invoking m4 |
| command line, file names on the | 2.6 Specifying input files on the command line |
| command line, macro definitions on the | 2.2 Command line options for preprocessor features |
| command line, options | 2. Invoking m4 |
| commands, exit status from shell | 13.4 Exit status |
| commands, running shell | 13. Macros for running shell commands |
| comment delimiters, changing | 8.3 Changing the comment delimiters |
| comments | 3.3 Comments in m4 input |
| comments, copied to output | 8.3 Changing the comment delimiters |
| comparing strings | 6.2 If-else construct, or multibranch |
| compatibility | 16. Compatibility with other versions of m4 |
| composing macros | 6.7 Building macros with macros |
| concatenating arguments | 6.3 Recursion in m4 |
| conditional, short-circuiting | 6.3 Recursion in m4 |
| conditionals | 6.1 Testing if a macro is defined |
| controlling debugging output | 7.3 Controlling debugging output |
| copying macros | 6.7 Building macros with macros |
| counting loops | 6.4 Iteration by counting |
| currying arguments | 6.7 Building macros with macros |
|
D | | |
| debugging macros | 7. How to debug macros and input |
| debugging output, controlling | 7.3 Controlling debugging output |
| debugging output, saving | 7.4 Saving debugging output |
| decrement operator | 12.1 Decrement and increment operators |
| deferring expansion | 8.5 Saving text until end of input |
| deferring output | 10. Diverting and undiverting output |
| defining new macros | 5. How to define new macros |
| definition stack | 5.6 Temporarily redefining macros |
| definition stack | 6.6 Working with definition stacks |
| definitions, displaying macro | 5.5 Renaming macros |
| definitions, displaying macro | 7.1 Displaying macro definitions |
| deleting macros | 5.4 Deleting a macro |
| deleting whitespace in input | 8.1 Deleting whitespace in input |
| delimiters, changing | 8.2 Changing the quote characters |
| delimiters, changing | 8.3 Changing the comment delimiters |
| discarding diverted text | 10.4 Discarding diverted text |
| discarding input | 6.2 If-else construct, or multibranch |
| discarding input | 8.1 Deleting whitespace in input |
| discarding input | 10.1 Diverting output |
| displaying macro definitions | 7.1 Displaying macro definitions |
| diversion numbers | 10.3 Diversion numbers |
| diverted text, discarding | 10.4 Discarding diverted text |
| diverting output to files | 10.1 Diverting output |
| dumping into frozen file | 15.1 Using frozen files |
|
E | | |
| error messages, printing | 14.1 Printing error messages |
| errors, fatal | 2.1 Command line options for operation modes |
| evaluation, of integer expressions | 12.2 Evaluating integer expressions |
| examples, understanding | 1.4 Using this manual |
| executing shell commands | 13. Macros for running shell commands |
| exit status from shell commands | 13.4 Exit status |
| exiting from m4 | 14.3 Exiting from m4 |
| expansion of macros | 4.5 Macro expansion |
| expansion, deferring | 8.5 Saving text until end of input |
| expansion, tracing macro | 7.2 Tracing macro calls |
| expressions, evaluation of integer | 12.2 Evaluating integer expressions |
| expressions, regular | 11.3 Searching for regular expressions |
| expressions, regular | 11.6 Substituting text by regular expression |
| extracting substrings | 11.4 Extracting substrings |
|
F | | |
| fast loading of frozen files | 15.1 Using frozen files |
| fatal errors | 2.1 Command line options for operation modes |
| FDL, GNU Free Documentation License | B.1 License for copying this manual |
| file format, frozen file | 15.2 Frozen file format |
| file inclusion | 9. File inclusion |
| file inclusion | 10.2 Undiverting output |
| file inclusion | 10.2 Undiverting output |
| file names, on the command line | 2.6 Specifying input files on the command line |
| files, diverting output to | 10.1 Diverting output |
| files, names of temporary | 13.5 Making temporary files |
| for each loops | 6.5 Iteration by list contents |
| for loops | 6.4 Iteration by counting |
| formatted output | 11.7 Formatting strings (printf-like) |
| Free Documentation License (FDL), GNU | B.1 License for copying this manual |
| frozen file format | 15.2 Frozen file format |
| frozen files for fast loading | 15.1 Using frozen files |
|
G | | |
| General Public License (GPL), GNU | A.1 License for copying the M4 package |
| GNU extensions | 4.2 Preventing macro invocation |
| GNU extensions | 5.1 Defining a macro |
| GNU extensions | 5.2 Arguments to macros |
| GNU extensions | 5.7 Indirect call of macros |
| GNU extensions | 5.8 Indirect call of builtins |
| GNU extensions | 7.3 Controlling debugging output |
| GNU extensions | 7.4 Saving debugging output |
| GNU extensions | 9.2 Searching for include files |
| GNU extensions | 10.1 Diverting output |
| GNU extensions | 10.2 Undiverting output |
| GNU extensions | 10.2 Undiverting output |
| GNU extensions | 11.3 Searching for regular expressions |
| GNU extensions | 11.6 Substituting text by regular expression |
| GNU extensions | 11.7 Formatting strings (printf-like) |
| GNU extensions | 12.2 Evaluating integer expressions |
| GNU extensions | 13.3 Reading the output of commands |
| GNU extensions | 13.5 Making temporary files |
| GNU extensions | 15.1 Using frozen files |
| GNU extensions | 16.1 Extensions in GNU M4 |
| GNU Free Documentation License | B.1 License for copying this manual |
| GNU General Public License | A.1 License for copying the M4 package |
| GNU M4, history of | 1.2 Historical references |
| GPL, GNU General Public License | A.1 License for copying the M4 package |
|
H | | |
| history of m4 | 1.2 Historical references |
|
I | | |
| included files, search path for | 9.2 Searching for include files |
| inclusion, of files | 9. File inclusion |
| inclusion, of files | 10.2 Undiverting output |
| inclusion, of files | 10.2 Undiverting output |
| increment operator | 12.1 Decrement and increment operators |
| indirect call of builtins | 5.8 Indirect call of builtins |
| indirect call of macros | 5.7 Indirect call of macros |
| initialization, frozen state | 15.1 Using frozen files |
| input location | 2.2 Command line options for preprocessor features |
| input location | 14.2 Printing current location |
| input tokens | 3. Lexical and syntactic conventions |
| input, discarding | 6.2 If-else construct, or multibranch |
| input, discarding | 8.1 Deleting whitespace in input |
| input, discarding | 10.1 Diverting output |
| input, saving | 8.5 Saving text until end of input |
| integer arithmetic | 12. Macros for doing arithmetic |
| integer expression evaluation | 12.2 Evaluating integer expressions |
| invoking m4 | 2. Invoking m4 |
| invoking macros | 4.1 Macro invocation |
| iterating over lists | 6.5 Iteration by list contents |
|
J | | |
| joining arguments | 6.3 Recursion in m4 |
|
L | | |
| length of strings | 11.1 Calculating length of strings |
| lexical structure of words | 8.4 Changing the lexical structure of words |
| License, code | A. How to make copies of the overall M4 package |
| License, manual | B. How to make copies of this manual |
| limit, nesting | 2.3 Command line options for limits control |
| literal output | 5.3 Special arguments to macros |
| local variables | 5.6 Temporarily redefining macros |
| location, input | 2.2 Command line options for preprocessor features |
| location, input | 14.2 Printing current location |
| loops | 6.3 Recursion in m4 |
| loops, counting | 6.4 Iteration by counting |
| loops, list iteration | 6.5 Iteration by list contents |
|
M | | |
| M4PATH | 9.2 Searching for include files |
| macro composition | 6.7 Building macros with macros |
| macro definitions, on the command line | 2.2 Command line options for preprocessor features |
| macro expansion, tracing | 7.2 Tracing macro calls |
| macro invocation | 4.1 Macro invocation |
| macro, blind | 4.2 Preventing macro invocation |
| macro, blind | 6.2 If-else construct, or multibranch |
| macro, blind | 6.7 Building macros with macros |
| macros, arguments to | 4.3 Macro arguments |
| macros, arguments to | 5.2 Arguments to macros |
| macros, copying | 6.7 Building macros with macros |
| macros, debugging | 7. How to debug macros and input |
| macros, displaying definitions | 5.5 Renaming macros |
| macros, displaying definitions | 7.1 Displaying macro definitions |
| macros, expansion of | 4.5 Macro expansion |
| macros, how to define new | 5. How to define new macros |
| macros, how to delete | 5.4 Deleting a macro |
| macros, how to rename | 5.5 Renaming macros |
| macros, indirect call of | 5.7 Indirect call of macros |
| macros, quoted arguments to | 4.4 On Quoting Arguments to macros |
| macros, recursive | 6.3 Recursion in m4 |
| macros, special arguments to | 5.3 Special arguments to macros |
| macros, temporary redefinition of | 5.6 Temporarily redefining macros |
| manipulating quotes | 6.3 Recursion in m4 |
| messages, printing error | 14.1 Printing error messages |
| more than nine arguments | 5.2 Arguments to macros |
| more than nine arguments | 6.3 Recursion in m4 |
| more than nine arguments | 17.3 Solution for foreach |
| multibranches | 6.2 If-else construct, or multibranch |
|
N | | |
| names | 3.1 Macro names |
| nesting limit | 2.3 Command line options for limits control |
| nine arguments, more than | 5.2 Arguments to macros |
| nine arguments, more than | 6.3 Recursion in m4 |
| nine arguments, more than | 17.3 Solution for foreach |
| numbers | 1.4 Using this manual |
|
O | | |
| options, command line | 2. Invoking m4 |
| output, diverting to files | 10.1 Diverting output |
| output, formatted | 11.7 Formatting strings (printf-like) |
| output, literal | 5.3 Special arguments to macros |
| output, saving debugging | 7.4 Saving debugging output |
| overview of m4 | 1.1 Introduction to m4 |
|
P | | |
| pattern substitution | 11.6 Substituting text by regular expression |
| platform macros | 13.1 Determining the platform |
| positional parameters, more than nine | 5.2 Arguments to macros |
| POSIX | 16.1 Extensions in GNU M4 |
| POSIXLY_CORRECT | 2. Invoking m4 |
| POSIXLY_CORRECT | 16.2 Facilities in System V m4 not in GNU m4 |
| preprocessor features | 2.2 Command line options for preprocessor features |
| printing error messages | 14.1 Printing error messages |
| pushdef stack | 5.6 Temporarily redefining macros |
| pushdef stack | 6.6 Working with definition stacks |
|
Q | | |
| quadratic behavior, avoiding | 17.3 Solution for foreach |
| quote delimiters, changing | 8.2 Changing the quote characters |
| quote manipulation | 6.3 Recursion in m4 |
| quoted macro arguments | 4.4 On Quoting Arguments to macros |
| quoted string | 3.2 Quoting input to m4 |
| quoting rule of thumb | 4.4 On Quoting Arguments to macros |
|
R | | |
| recursive macros | 6.3 Recursion in m4 |
| redefinition of macros, temporary | 5.6 Temporarily redefining macros |
| regular expressions | 8.4 Changing the lexical structure of words |
| regular expressions | 11.3 Searching for regular expressions |
| regular expressions | 11.6 Substituting text by regular expression |
| reloading a frozen file | 15.1 Using frozen files |
| renaming macros | 5.5 Renaming macros |
| renaming macros | 6.7 Building macros with macros |
| reporting bugs | 1.3 Problems and bugs |
| rescanning | 2.3 Command line options for limits control |
| rescanning | 4.2 Preventing macro invocation |
| rescanning | 5.3 Special arguments to macros |
| rescanning | 5.5 Renaming macros |
| rescanning | 16.3 Other incompatibilities |
| reversing arguments | 6.3 Recursion in m4 |
| rule of thumb, quoting | 4.4 On Quoting Arguments to macros |
| running shell commands | 13. Macros for running shell commands |
|
S | | |
| saving debugging output | 7.4 Saving debugging output |
| saving input | 8.5 Saving text until end of input |
| search path for included files | 9.2 Searching for include files |
| shell commands, exit status from | 13.4 Exit status |
| shell commands, running | 13. Macros for running shell commands |
| short-circuiting conditional | 6.3 Recursion in m4 |
| special arguments to macros | 5.3 Special arguments to macros |
| stack, macro definition | 5.6 Temporarily redefining macros |
| stack, macro definition | 6.6 Working with definition stacks |
| standard error, output to | 7.1 Displaying macro definitions |
| standard error, output to | 7.2 Tracing macro calls |
| standard error, output to | 14.1 Printing error messages |
| status of shell commands | 13.4 Exit status |
| status, setting m4 exit | 14.3 Exiting from m4 |
| string, quoted | 3.2 Quoting input to m4 |
| strings, length of | 11.1 Calculating length of strings |
| substitution by regular expression | 11.6 Substituting text by regular expression |
| substrings, extracting | 11.4 Extracting substrings |
| substrings, locating | 11.2 Searching for substrings |
| suggestions, reporting | 1.3 Problems and bugs |
| suppressing warnings | 4.3 Macro arguments |
| switch statement | 6.2 If-else construct, or multibranch |
| synchronization lines | 2.2 Command line options for preprocessor features |
| syntax, changing | 8.4 Changing the lexical structure of words |
|
T | | |
| temporary file names | 13.5 Making temporary files |
| temporary redefinition of macros | 5.6 Temporarily redefining macros |
| TMPDIR | 10. Diverting and undiverting output |
| tokens | 3. Lexical and syntactic conventions |
| tokens, builtin macro | 5.5 Renaming macros |
| tokens, special | 3.4 Other kinds of input tokens |
| tracing macro expansion | 7.2 Tracing macro calls |
| translating characters | 11.5 Translating characters |
|
U | | |
| undefining macros | 5.4 Deleting a macro |
| UNIX commands, exit status from | 13.4 Exit status |
| UNIX commands, running | 13. Macros for running shell commands |
|
V | | |
| variables, local | 5.6 Temporarily redefining macros |
|
W | | |
| warnings, suppressing | 4.3 Macro arguments |
| words | 3.1 Macro names |
| words, lexical structure of | 8.4 Changing the lexical structure of words |
|