[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
FYI: put back trailing whitespace [m4--release--1.4--patch-1]
From: |
Gary V. Vaughan |
Subject: |
FYI: put back trailing whitespace [m4--release--1.4--patch-1] |
Date: |
Thu, 31 Mar 2005 12:21:50 +0100 (BST) |
User-agent: |
mailnotify/0.6 |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Applied to branch-1_4.
* looking for address@hidden/m4--release--1.4--base-0 to compare with
* comparing to address@hidden/m4--release--1.4--base-0
M checks/01.define
M checks/02.arguments
M checks/03.arguments
M checks/04.arguments
M checks/05.arguments
M checks/06.pseudo_argu
M checks/07.pseudo_argu
M ChangeLog
M checks/08.pseudo_argu
M checks/09.pseudo_argu
M checks/10.pseudo_argu
M checks/11.undefine
M checks/12.defn
M checks/13.pushdef
M checks/14.pushdef
M checks/15.indir
M checks/16.ifdef
M checks/17.ifelse
M checks/18.ifelse
M checks/19.loops
M checks/20.loops
M checks/21.dumpdef
M checks/22.trace
M checks/23.dnl
M checks/24.changequote
M checks/25.changequote
M checks/26.changequote
M checks/27.changecom
M checks/28.changecom
M checks/29.m4wrap
M checks/30.include
M checks/31.include
M checks/32.include
M checks/33.divert
M checks/34.divert
M checks/35.undivert
M checks/36.undivert
M checks/37.undivert
M checks/38.divnum
M checks/39.cleardiv
M checks/40.cleardiv
M checks/41.len
M checks/42.index
M checks/43.regexp
M checks/44.regexp
M checks/45.substr
M checks/46.translit
M checks/47.patsubst
M checks/48.patsubst
M checks/49.format
M checks/50.incr
M checks/51.eval
M checks/52.eval
M checks/53.esyscmd
M checks/54.sysval
M checks/55.errprint
M checks/56.errprint
M checks/57.m4exit
M checks/get-them
M doc/m4.info
M doc/m4.texinfo
M doc/stamp-vti
M doc/version.texi
* modified files
Index: Changelog
from Erik Blake <address@hidden> (tiny change)
* doc/m4.texinfo (Patsubst): Re-add trailing space required by
checks/47.patsubst, with a redundant @comment to prevent emacs
from removing it accidentally again.
* checks/get-them: Allow for trailing spaces tucked behind
@comment marks.
2005-03-31 Erik Blake <address@hidden> (tiny change)
--- orig/checks/01.define
+++ mod/checks/01.define
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:940: Origin of test
+dnl ../doc/m4.texinfo:942: Origin of test
define(`foo', `Hello world.')
dnl @result{}
foo
--- orig/checks/02.arguments
+++ mod/checks/02.arguments
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:964: Origin of test
+dnl ../doc/m4.texinfo:966: Origin of test
define(`exch', `$2, $1')
dnl @result{}
exch(arg1, arg2)
--- orig/checks/03.arguments
+++ mod/checks/03.arguments
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:974: Origin of test
+dnl ../doc/m4.texinfo:976: Origin of test
define(`exch', `$2, $1')
dnl @result{}
define(exch(``expansion text'', ``macro''))
--- orig/checks/04.arguments
+++ mod/checks/04.arguments
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:994: Origin of test
+dnl ../doc/m4.texinfo:996: Origin of test
define(`test', ``Macro name: $0'')
dnl @result{}
test
--- orig/checks/05.arguments
+++ mod/checks/05.arguments
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:1004: Origin of test
+dnl ../doc/m4.texinfo:1006: Origin of test
define(`foo', `This is macro `foo'.')
dnl @result{}
foo
--- orig/checks/06.pseudo_argu
+++ mod/checks/06.pseudo_argu
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:1028: Origin of test
+dnl ../doc/m4.texinfo:1030: Origin of test
define(`nargs', `$#')
dnl @result{}
nargs
--- orig/checks/07.pseudo_argu
+++ mod/checks/07.pseudo_argu
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:1042: Origin of test
+dnl ../doc/m4.texinfo:1044: Origin of test
define(`echo', `$*')
dnl @result{}
echo(arg1, arg2, arg3 , arg4)
--- orig/checks/08.pseudo_argu
+++ mod/checks/08.pseudo_argu
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:1053: Origin of test
+dnl ../doc/m4.texinfo:1055: Origin of test
define(`echo', `$@')
dnl @result{}
echo(arg1, arg2, arg3 , arg4)
--- orig/checks/09.pseudo_argu
+++ mod/checks/09.pseudo_argu
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:1063: Origin of test
+dnl ../doc/m4.texinfo:1065: Origin of test
define(`echo1', `$*')
dnl @result{}
define(`echo2', `$@')
--- orig/checks/10.pseudo_argu
+++ mod/checks/10.pseudo_argu
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:1083: Origin of test
+dnl ../doc/m4.texinfo:1085: Origin of test
define(`foo', `$$$ hello $$$')
dnl @result{}
foo
--- orig/checks/11.undefine
+++ mod/checks/11.undefine
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:1114: Origin of test
+dnl ../doc/m4.texinfo:1116: Origin of test
foo
dnl @result{}foo
define(`foo', `expansion text')
--- orig/checks/12.defn
+++ mod/checks/12.defn
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:1159: Origin of test
+dnl ../doc/m4.texinfo:1161: Origin of test
define(`zap', defn(`undefine'))
dnl @result{}
zap(`undefine')
--- orig/checks/13.pushdef
+++ mod/checks/13.pushdef
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:1205: Origin of test
+dnl ../doc/m4.texinfo:1207: Origin of test
define(`foo', `Expansion one.')
dnl @result{}
foo
--- orig/checks/14.pushdef
+++ mod/checks/14.pushdef
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:1229: Origin of test
+dnl ../doc/m4.texinfo:1231: Origin of test
define(`foo', `Expansion one.')
dnl @result{}
foo
--- orig/checks/15.indir
+++ mod/checks/15.indir
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:1273: Origin of test
+dnl ../doc/m4.texinfo:1275: Origin of test
define(`$$internal$macro', `Internal macro (name `$0')')
dnl @result{}
$$internal$macro
--- orig/checks/16.ifdef
+++ mod/checks/16.ifdef
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:1344: Origin of test
+dnl ../doc/m4.texinfo:1346: Origin of test
ifdef(`foo', ``foo' is defined', ``foo' is not defined')
dnl @result{}foo is not defined
define(`foo', `')
--- orig/checks/17.ifelse
+++ mod/checks/17.ifelse
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:1382: Origin of test
+dnl ../doc/m4.texinfo:1384: Origin of test
ifelse(foo, bar, `true')
dnl @result{}
ifelse(foo, foo, `true')
--- orig/checks/18.ifelse
+++ mod/checks/18.ifelse
@@ -1,3 +1,3 @@
-dnl ../doc/m4.texinfo:1401: Origin of test
+dnl ../doc/m4.texinfo:1403: Origin of test
ifelse(foo, bar, `third', gnu, gnats, `sixth', `seventh')
dnl @result{}seventh
--- orig/checks/19.loops
+++ mod/checks/19.loops
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:1438: Origin of test
+dnl ../doc/m4.texinfo:1440: Origin of test
shift(bar)
dnl @result{}
shift(foo, bar, baz)
--- orig/checks/20.loops
+++ mod/checks/20.loops
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:1448: Origin of test
+dnl ../doc/m4.texinfo:1450: Origin of test
define(`reverse', `ifelse($#, 0, , $#, 1, ``$1'',
`reverse(shift($@)), `$1'')')
dnl @result{}
--- orig/checks/21.dumpdef
+++ mod/checks/21.dumpdef
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:1562: Origin of test
+dnl ../doc/m4.texinfo:1564: Origin of test
define(`foo', `Hello world.')
dnl @result{}
dumpdef(`foo')
--- orig/checks/22.trace
+++ mod/checks/22.trace
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:1607: Origin of test
+dnl ../doc/m4.texinfo:1609: Origin of test
define(`foo', `Hello World.')
dnl @result{}
define(`echo', `$@')
--- orig/checks/23.dnl
+++ mod/checks/23.dnl
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:1758: Origin of test
+dnl ../doc/m4.texinfo:1760: Origin of test
define(`foo', `Macro `foo'.')dnl A very simple macro, indeed.
foo
dnl @result{}Macro foo.
--- orig/checks/24.changequote
+++ mod/checks/24.changequote
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:1796: Origin of test
+dnl ../doc/m4.texinfo:1798: Origin of test
changequote([, ])
dnl @result{}
define([foo], [Macro [foo].])
--- orig/checks/25.changequote
+++ mod/checks/25.changequote
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:1808: Origin of test
+dnl ../doc/m4.texinfo:1810: Origin of test
changequote([[, ]])
dnl @result{}
define([[foo]], [[Macro [[[foo]]].]])
--- orig/checks/26.changequote
+++ mod/checks/26.changequote
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:1820: Origin of test
+dnl ../doc/m4.texinfo:1822: Origin of test
define(`foo', `Macro `FOO'.')
dnl @result{}
changequote(, )
--- orig/checks/27.changecom
+++ mod/checks/27.changecom
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:1860: Origin of test
+dnl ../doc/m4.texinfo:1862: Origin of test
define(`comment', `COMMENT')
dnl @result{}
# A normal comment
--- orig/checks/28.changecom
+++ mod/checks/28.changecom
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:1881: Origin of test
+dnl ../doc/m4.texinfo:1883: Origin of test
define(`comment', `COMMENT')
dnl @result{}
changecom
--- orig/checks/29.m4wrap
+++ mod/checks/29.m4wrap
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:2020: Origin of test
+dnl ../doc/m4.texinfo:2022: Origin of test
define(`cleanup', `This is the `cleanup' actions.
')
dnl @result{}
--- orig/checks/30.include
+++ mod/checks/30.include
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:2079: Origin of test
+dnl ../doc/m4.texinfo:2081: Origin of test
include(`no-such-file')
dnl @result{}
dnl @error{}30.include:2: m4: Cannot open no-such-file: No such file or
directory
--- orig/checks/31.include
+++ mod/checks/31.include
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:2099: Origin of test
+dnl ../doc/m4.texinfo:2101: Origin of test
define(`foo', `FOO')
dnl @result{}
include(`incl.m4')
--- orig/checks/32.include
+++ mod/checks/32.include
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:2114: Origin of test
+dnl ../doc/m4.texinfo:2116: Origin of test
define(`bar', include(`incl.m4'))
dnl @result{}
This is `bar': >>>bar<<<
--- orig/checks/33.divert
+++ mod/checks/33.divert
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:2202: Origin of test
+dnl ../doc/m4.texinfo:2204: Origin of test
divert(1)
This text is diverted.
divert
--- orig/checks/34.divert
+++ mod/checks/34.divert
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:2222: Origin of test
+dnl ../doc/m4.texinfo:2224: Origin of test
divert(-1)
define(`foo', `Macro `foo'.')
define(`bar', `Macro `bar'.')
--- orig/checks/35.undivert
+++ mod/checks/35.undivert
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:2253: Origin of test
+dnl ../doc/m4.texinfo:2255: Origin of test
divert(1)
This text is diverted.
divert
--- orig/checks/36.undivert
+++ mod/checks/36.undivert
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:2277: Origin of test
+dnl ../doc/m4.texinfo:2279: Origin of test
divert(1)
This text is diverted first.
divert(0)undivert(1)dnl
--- orig/checks/37.undivert
+++ mod/checks/37.undivert
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:2303: Origin of test
+dnl ../doc/m4.texinfo:2305: Origin of test
define(`bar', `BAR')
dnl @result{}
undivert(`foo')
--- orig/checks/38.divnum
+++ mod/checks/38.divnum
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:2329: Origin of test
+dnl ../doc/m4.texinfo:2331: Origin of test
Initial divnum
dnl @result{}Initial 0
divert(1)
--- orig/checks/39.cleardiv
+++ mod/checks/39.cleardiv
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:2360: Origin of test
+dnl ../doc/m4.texinfo:2362: Origin of test
divert(1)
Diversion one: divnum
divert(2)
--- orig/checks/40.cleardiv
+++ mod/checks/40.cleardiv
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:2375: Origin of test
+dnl ../doc/m4.texinfo:2377: Origin of test
define(`cleardivert',
`pushdef(`_num', divnum)divert(-1)undivert($@)divert(_num)popdef(`_num')')
dnl @result{}
--- orig/checks/41.len
+++ mod/checks/41.len
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:2417: Origin of test
+dnl ../doc/m4.texinfo:2419: Origin of test
len()
dnl @result{}0
len(`abcdef')
--- orig/checks/42.index
+++ mod/checks/42.index
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:2443: Origin of test
+dnl ../doc/m4.texinfo:2445: Origin of test
index(`gnus, gnats, and armadillos', `nat')
dnl @result{}7
index(`gnus, gnats, and armadillos', `dag')
--- orig/checks/43.regexp
+++ mod/checks/43.regexp
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:2475: Origin of test
+dnl ../doc/m4.texinfo:2477: Origin of test
regexp(`GNUs not Unix', `\<[a-z]\w+')
dnl @result{}5
regexp(`GNUs not Unix', `\<Q\w*')
--- orig/checks/44.regexp
+++ mod/checks/44.regexp
@@ -1,3 +1,3 @@
-dnl ../doc/m4.texinfo:2487: Origin of test
+dnl ../doc/m4.texinfo:2489: Origin of test
regexp(`GNUs not Unix', `\w\(\w+\)$', `*** \& *** \1 ***')
dnl @result{}*** Unix *** nix ***
--- orig/checks/45.substr
+++ mod/checks/45.substr
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:2513: Origin of test
+dnl ../doc/m4.texinfo:2515: Origin of test
substr(`gnus, gnats, and armadillos', 6)
dnl @result{}gnats, and armadillos
substr(`gnus, gnats, and armadillos', 6, 5)
--- orig/checks/46.translit
+++ mod/checks/46.translit
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:2554: Origin of test
+dnl ../doc/m4.texinfo:2556: Origin of test
translit(`GNUs not Unix', `A-Z')
dnl @result{}s not nix
translit(`GNUs not Unix', `a-z', `A-Z')
--- orig/checks/47.patsubst
+++ mod/checks/47.patsubst
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:2605: Origin of test
+dnl ../doc/m4.texinfo:2607: Origin of test
patsubst(`GNUs not Unix', `^', `OBS: ')
dnl @result{}OBS: GNUs not Unix
patsubst(`GNUs not Unix', `\<', `OBS: ')
--- orig/checks/48.patsubst
+++ mod/checks/48.patsubst
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:2622: Origin of test
+dnl ../doc/m4.texinfo:2624: Origin of test
define(`upcase', `translit(`$*', `a-z', `A-Z')')dnl
define(`downcase', `translit(`$*', `A-Z', `a-z')')dnl
define(`capitalize1',
--- orig/checks/49.format
+++ mod/checks/49.format
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:2657: Origin of test
+dnl ../doc/m4.texinfo:2659: Origin of test
define(`foo', `The brown fox jumped over the lazy dog')
dnl @result{}
format(`The string "%s" is %d characters long', foo, len(foo))
--- orig/checks/50.incr
+++ mod/checks/50.incr
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:2727: Origin of test
+dnl ../doc/m4.texinfo:2729: Origin of test
incr(4)
dnl @result{}5
decr(7)
--- orig/checks/51.eval
+++ mod/checks/51.eval
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:2809: Origin of test
+dnl ../doc/m4.texinfo:2811: Origin of test
eval(-3 * 5)
dnl @result{}-15
eval(index(`Hello world', `llo') >= 0)
--- orig/checks/52.eval
+++ mod/checks/52.eval
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:2840: Origin of test
+dnl ../doc/m4.texinfo:2842: Origin of test
eval(666, 10)
dnl @result{}666
eval(666, 11)
--- orig/checks/53.esyscmd
+++ mod/checks/53.esyscmd
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:2925: Origin of test
+dnl ../doc/m4.texinfo:2927: Origin of test
define(`vice', `esyscmd(grep Vice ../COPYING)')
dnl @result{}
vice
--- orig/checks/54.sysval
+++ mod/checks/54.sysval
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:2956: Origin of test
+dnl ../doc/m4.texinfo:2958: Origin of test
syscmd(`false')
dnl @result{}
ifelse(sysval, 0, zero, non-zero)
--- orig/checks/55.errprint
+++ mod/checks/55.errprint
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:3028: Origin of test
+dnl ../doc/m4.texinfo:3030: Origin of test
errprint(`Illegal arguments to forloop
')
dnl @error{}Illegal arguments to forloop
--- orig/checks/56.errprint
+++ mod/checks/56.errprint
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:3053: Origin of test
+dnl ../doc/m4.texinfo:3055: Origin of test
errprint(`m4:'__file__:__line__: `Input error
')
dnl @error{}m4:56.errprint:2: Input error
--- orig/checks/57.m4exit
+++ mod/checks/57.m4exit
@@ -1,4 +1,4 @@
-dnl ../doc/m4.texinfo:3076: Origin of test
+dnl ../doc/m4.texinfo:3078: Origin of test
define(`fatal_error', `errprint(`m4: '__file__: __line__`: fatal error: $*
')m4exit(1)')
dnl @result{}
--- orig/checks/get-them
+++ mod/checks/get-them
@@ -1,6 +1,6 @@
#!/bin/sh
# Extract all examples from the manual source.
-# Copyright (C) 1992 Free Software Foundation, Inc.
+# Copyright (C) 1992, 2005 Free Software Foundation, Inc.
# This script is for use with GNU awk.
@@ -59,6 +59,7 @@
else
prefix = "";
gsub("@@", "@", $0);
+ gsub("@comment.*", "", $0);
printf("%s%s\n", prefix, $0) >> file;
}
--- orig/doc/m4.info
+++ mod/doc/m4.info
@@ -1,13 +1,14 @@
-This is m4.info, produced by makeinfo version 4.6 from m4.texinfo.
+This is m4.info, produced by makeinfo version 4.7 from m4.texinfo.
+INFO-DIR-SECTION GNU programming tools
START-INFO-DIR-ENTRY
* m4: (m4). A powerful macro processor.
END-INFO-DIR-ENTRY
- This file documents the GNU `m4' utility.
+ This file documents GNU M4 1.4.2a.
- Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 2004 Free Software
-Foundation, Inc.
+ Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 2004, 2005 Free
+Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
@@ -26,8 +27,8 @@
File: m4.info, Node: Top, Next: Preliminaries, Prev: (dir), Up: (dir)
-GNU `m4'
-********
+GNU M4
+******
GNU `m4' is an implementation of the traditional UNIX macro processor.
It is mostly SVR4 compatible, although it has some extensions (for
@@ -48,10 +49,9 @@
An experimental feature, which would improve `m4' usefulness, allows
for changing the syntax for what is a "word" in `m4'. You should use:
./configure --enable-changeword
-
-if you want this feature compiled in. The current implementation slows
-down `m4' considerably and is hardly acceptable. So, it might go away,
-do not count on it yet.
+ if you want this feature compiled in. The current implementation
+slows down `m4' considerably and is hardly acceptable. So, it might go
+away, do not count on it yet.
* Menu:
@@ -185,8 +185,8 @@
File: m4.info, Node: Preliminaries, Next: Syntax, Prev: Top, Up: Top
-Introduction and preliminaries
-******************************
+1 Introduction and preliminaries
+********************************
This first chapter explains what is GNU `m4', where `m4' comes from,
how to read and use this documentation, how to call the `m4' program
@@ -207,8 +207,8 @@
File: m4.info, Node: Intro, Next: History, Prev: Preliminaries, Up:
Preliminaries
-Introduction to `m4'
-====================
+1.1 Introduction to `m4'
+========================
`m4' is a macro processor, in the sense that it copies its input to the
output, expanding macros as it goes. Macros are either builtin or
@@ -238,8 +238,8 @@
File: m4.info, Node: History, Next: Invoking m4, Prev: Intro, Up:
Preliminaries
-Historical references
-=====================
+1.2 Historical references
+=========================
The historical notes included here are fairly incomplete, and not
authoritative at all. Please knowledgeable users help us to more
@@ -261,8 +261,8 @@
File: m4.info, Node: Invoking m4, Next: Bugs, Prev: History, Up:
Preliminaries
-Invoking `m4'
-=============
+1.3 Invoking `m4'
+=================
The format of the `m4' command is:
@@ -445,8 +445,8 @@
File: m4.info, Node: Bugs, Next: Manual, Prev: Invoking m4, Up:
Preliminaries
-Problems and bugs
-=================
+1.4 Problems and bugs
+=====================
If you have problems with GNU `m4' or think you've found a bug, please
report it. Before reporting a bug, make sure you've actually found a
@@ -474,8 +474,8 @@
File: m4.info, Node: Manual, Prev: Bugs, Up: Preliminaries
-Using this manual
-=================
+1.5 Using this manual
+=====================
This manual contains a number of examples of `m4' input and output, and
a simple notation is used to distinguish input, output and error
@@ -513,8 +513,8 @@
File: m4.info, Node: Syntax, Next: Macros, Prev: Preliminaries, Up: Top
-Lexical and syntactic conventions
-*********************************
+2 Lexical and syntactic conventions
+***********************************
As `m4' reads its input, it separates it into "tokens". A token is
either a name, a quoted string, or any single character, that is not a
@@ -531,8 +531,8 @@
File: m4.info, Node: Names, Next: Quoted strings, Prev: Syntax, Up:
Syntax
-Names
-=====
+2.1 Names
+=========
A name is any sequence of letters, digits, and the character `_'
(underscore), where the first character is not a digit. If a name has
@@ -544,8 +544,8 @@
File: m4.info, Node: Quoted strings, Next: Other tokens, Prev: Names,
Up: Syntax
-Quoted strings
-==============
+2.2 Quoted strings
+==================
A quoted string is a sequence of characters surrounded by the quotes
``' and `'', where the number of start and end quotes within the string
@@ -568,8 +568,8 @@
File: m4.info, Node: Other tokens, Next: Comments, Prev: Quoted strings,
Up: Syntax
-Other tokens
-============
+2.3 Other tokens
+================
Any character, that is neither a part of a name, nor of a quoted string,
is a token by itself.
@@ -577,8 +577,8 @@
File: m4.info, Node: Comments, Prev: Other tokens, Up: Syntax
-Comments
-========
+2.4 Comments
+============
Comments in `m4' are normally delimited by the characters `#' and
newline. All characters between the comment delimiters are ignored,
@@ -596,8 +596,8 @@
File: m4.info, Node: Macros, Next: Definitions, Prev: Syntax, Up: Top
-How to invoke macros
-********************
+3 How to invoke macros
+**********************
This chapter covers macro invocation, macro arguments and how macro
expansion is treated.
@@ -613,8 +613,8 @@
File: m4.info, Node: Invocation, Next: Inhibiting Invocation, Prev:
Macros, Up: Macros
-Macro invocation
-================
+3.1 Macro invocation
+====================
Macro invocations has one of the forms
@@ -643,8 +643,8 @@
File: m4.info, Node: Inhibiting Invocation, Next: Macro Arguments, Prev:
Invocation, Up: Macros
-Preventing macro invocation
-===========================
+3.2 Preventing macro invocation
+===============================
An innovation of the `m4' language, compared to some of its
predecessors (like Stratchey's `GPM', for example), is the ability to
@@ -725,8 +725,8 @@
File: m4.info, Node: Macro Arguments, Next: Quoting Arguments, Prev:
Inhibiting Invocation, Up: Macros
-Macro arguments
-===============
+3.3 Macro arguments
+===================
When a name is seen, and it has a macro definition, it will be expanded
as a macro.
@@ -756,8 +756,8 @@
File: m4.info, Node: Quoting Arguments, Next: Macro expansion, Prev:
Macro Arguments, Up: Macros
-Quoting macro arguments
-=======================
+3.4 Quoting macro arguments
+===========================
Each argument has leading unquoted whitespace removed. Within each
argument, all unquoted parentheses must match. For example, if FOO is
@@ -780,8 +780,8 @@
File: m4.info, Node: Macro expansion, Prev: Quoting Arguments, Up: Macros
-Macro expansion
-===============
+3.5 Macro expansion
+===================
When the arguments, if any, to a macro call have been collected, the
macro is expanded, and the expansion text is pushed back onto the input
@@ -800,8 +800,8 @@
File: m4.info, Node: Definitions, Next: Conditionals, Prev: Macros, Up:
Top
-How to define new macros
-************************
+4 How to define new macros
+**************************
Macros can be defined, redefined and deleted in several different ways.
Also, it is possible to redefine a macro, without losing a previous
@@ -822,8 +822,8 @@
File: m4.info, Node: Define, Next: Arguments, Prev: Definitions, Up:
Definitions
-Defining a macro
-================
+4.1 Defining a macro
+====================
The normal way to define or redefine macros is to use the builtin
`define':
@@ -853,8 +853,8 @@
File: m4.info, Node: Arguments, Next: Pseudo Arguments, Prev: Define,
Up: Definitions
-Arguments to macros
-===================
+4.2 Arguments to macros
+=======================
Macros can have arguments. The Nth argument is denoted by `$n' in the
expansion text, and is replaced by the Nth actual argument, when the
@@ -904,8 +904,8 @@
File: m4.info, Node: Pseudo Arguments, Next: Undefine, Prev: Arguments,
Up: Definitions
-Special arguments to macros
-===========================
+4.3 Special arguments to macros
+===============================
There is a special notation for the number of actual arguments supplied,
and for all the actual arguments.
@@ -972,8 +972,8 @@
File: m4.info, Node: Undefine, Next: Defn, Prev: Pseudo Arguments, Up:
Definitions
-Deleting a macro
-================
+4.4 Deleting a macro
+====================
A macro definition can be removed with `undefine':
@@ -1003,8 +1003,8 @@
File: m4.info, Node: Defn, Next: Pushdef, Prev: Undefine, Up: Definitions
-Renaming macros
-===============
+4.5 Renaming macros
+===================
It is possible to rename an already defined macro. To do this, you need
the builtin `defn':
@@ -1039,8 +1039,8 @@
File: m4.info, Node: Pushdef, Next: Indir, Prev: Defn, Up: Definitions
-Temporarily redefining macros
-=============================
+4.6 Temporarily redefining macros
+=================================
It is possible to redefine a macro temporarily, reverting to the
previous definition at a later time. This is done with the builtins
@@ -1109,15 +1109,14 @@
File: m4.info, Node: Indir, Next: Builtin, Prev: Pushdef, Up: Definitions
-Indirect call of macros
-=======================
+4.7 Indirect call of macros
+===========================
Any macro can be called indirectly with `indir':
indir(NAME, ...)
-
-which results in a call to the macro NAME, which is passed the rest of
-the arguments. This can be used to call macros with "illegal" names
+ which results in a call to the macro NAME, which is passed the rest
+of the arguments. This can be used to call macros with "illegal" names
(`define' allows such names to be defined):
define(`$$internal$macro', `Internal macro (name `$0')')
@@ -1134,24 +1133,23 @@
File: m4.info, Node: Builtin, Prev: Indir, Up: Definitions
-Indirect call of builtins
-=========================
+4.8 Indirect call of builtins
+=============================
Builtin macros can be called indirectly with `builtin':
builtin(NAME, ...)
-
-which results in a call to the builtin NAME, which is passed the rest
-of the arguments. This can be used, if NAME has been given another
-definition that has covered the original.
+ which results in a call to the builtin NAME, which is passed the
+rest of the arguments. This can be used, if NAME has been given
+another definition that has covered the original.
The macro `builtin' is recognized only with parameters.
File: m4.info, Node: Conditionals, Next: Debugging, Prev: Definitions,
Up: Top
-Conditionals, loops and recursion
-*********************************
+5 Conditionals, loops and recursion
+***********************************
Macros, expanding to plain text, perhaps with arguments, are not quite
enough. We would like to have macros expand to different things, based
@@ -1169,8 +1167,8 @@
File: m4.info, Node: Ifdef, Next: Ifelse, Prev: Conditionals, Up:
Conditionals
-Testing macro definitions
-=========================
+5.1 Testing macro definitions
+=============================
There are two different builtin conditionals in `m4'. The first is
`ifdef':
@@ -1194,8 +1192,8 @@
File: m4.info, Node: Ifelse, Next: Loops, Prev: Ifdef, Up: Conditionals
-Comparing strings
-=================
+5.2 Comparing strings
+=====================
The other conditional, `ifelse', is much more powerful. It can be used
as a way to introduce a long comment, as an if-else construct, or as a
@@ -1242,8 +1240,8 @@
File: m4.info, Node: Loops, Prev: Ifelse, Up: Conditionals
-Loops and recursion
-===================
+5.3 Loops and recursion
+=======================
There is no direct support for loops in `m4', but macros can be
recursive. There is no limit on the number of recursion levels, other
@@ -1334,8 +1332,8 @@
File: m4.info, Node: Debugging, Next: Input Control, Prev: Conditionals,
Up: Top
-How to debug macros and input
-*****************************
+6 How to debug macros and input
+*******************************
When writing macros for `m4', most of the time they woould not work as
intended (as is the case with most programming languages). There is a
@@ -1351,8 +1349,8 @@
File: m4.info, Node: Dumpdef, Next: Trace, Prev: Debugging, Up: Debugging
-Displaying macro definitions
-============================
+6.1 Displaying macro definitions
+================================
If you want to see what a name expands into, you can use the builtin
`dumpdef':
@@ -1383,8 +1381,8 @@
File: m4.info, Node: Trace, Next: Debug Levels, Prev: Dumpdef, Up:
Debugging
-Tracing macro calls
-===================
+6.2 Tracing macro calls
+=======================
It is possible to trace macro calls and expansions through the builtins
`traceon' and `traceoff':
@@ -1426,8 +1424,8 @@
File: m4.info, Node: Debug Levels, Next: Debug Output, Prev: Trace, Up:
Debugging
-Controlling debugging output
-============================
+6.3 Controlling debugging output
+================================
The `-d' option to `m4' controls the amount of details presented, when
using the macros described in the preceding sections.
@@ -1486,10 +1484,9 @@
control of the debugging output format:
debugmode(opt FLAGS)
-
-The argument FLAGS should be a subset of the letters listed above. As
-special cases, if the argument starts with a `+', the flags are added
-to the current debug flags, and if it starts with a `-', they are
+ The argument FLAGS should be a subset of the letters listed above.
+As special cases, if the argument starts with a `+', the flags are
+added to the current debug flags, and if it starts with a `-', they are
removed. If no argument is present, the debugging flags are set to
zero (as if no `-d' was given), and with an empty argument the flags
are reset to the default.
@@ -1497,24 +1494,23 @@
File: m4.info, Node: Debug Output, Prev: Debug Levels, Up: Debugging
-Saving debugging output
-=======================
+6.4 Saving debugging output
+===========================
Debug and tracing output can be redirected to files using either the
`-o' option to `m4', or with the builtin macro `debugfile':
debugfile(opt FILENAME)
-
-will send all further debug and trace output to FILENAME. If FILENAME
-is empty, debug and trace output are discarded and if `debugfile' is
-called without any arguments, debug and trace output are sent to the
-standard error output.
+ will send all further debug and trace output to FILENAME. If
+FILENAME is empty, debug and trace output are discarded and if
+`debugfile' is called without any arguments, debug and trace output are
+sent to the standard error output.
File: m4.info, Node: Input Control, Next: File Inclusion, Prev:
Debugging, Up: Top
-Input control
-*************
+7 Input control
+***************
This chapter describes various builtin macros for controlling the input
to `m4'.
@@ -1530,16 +1526,15 @@
File: m4.info, Node: Dnl, Next: Changequote, Prev: Input Control, Up:
Input Control
-Deleting whitespace in input
-============================
+7.1 Deleting whitespace in input
+================================
The builtin `dnl' reads and discards all characters, up to and
including the first newline:
dnl
-
-and it is often used in connection with `define', to remove the newline
-that follow the call to `define'. Thus
+ and it is often used in connection with `define', to remove the
+newline that follow the call to `define'. Thus
define(`foo', `Macro `foo'.')dnl A very simple macro, indeed.
foo
@@ -1560,15 +1555,14 @@
File: m4.info, Node: Changequote, Next: Changecom, Prev: Dnl, Up: Input
Control
-Changing the quote characters
-=============================
+7.2 Changing the quote characters
+=================================
The default quote delimiters can be changed with the builtin
`changequote':
changequote(opt START, opt END)
-
-where START is the new start-quote delimiter and END is the new
+ where START is the new start-quote delimiter and END is the new
end-quote delimiter. If any of the arguments are missing, the default
quotes (``' and `'') are used instead of the void arguments.
@@ -1613,15 +1607,14 @@
File: m4.info, Node: Changecom, Next: Changeword, Prev: Changequote, Up:
Input Control
-Changing comment delimiters
-===========================
+7.3 Changing comment delimiters
+===============================
The default comment delimiters can be changed with the builtin macro
`changecom':
changecom(opt START, opt END)
-
-where START is the new start-comment delimiter and END is the new
+ where START is the new start-comment delimiter and END is the new
end-comment delimiter. If any of the arguments are void, the default
comment delimiters (`#' and newline) are used instead of the void
arguments. The comment delimiters can be of any length.
@@ -1656,8 +1649,8 @@
File: m4.info, Node: Changeword, Next: M4wrap, Prev: Changecom, Up:
Input Control
-Changing the lexical structure of words
-=======================================
+7.4 Changing the lexical structure of words
+===========================================
The macro `changeword' and all associated functionnality is
experimental. It is only available if the `--enable-changeword'
@@ -1742,8 +1735,8 @@
File: m4.info, Node: M4wrap, Prev: Changeword, Up: Input Control
-Saving input
-============
+7.5 Saving input
+================
It is possible to `save' some text until the end of the normal input has
been seen. Text can be saved, to be read again by `m4' when the normal
@@ -1753,9 +1746,8 @@
To save input text, use the builtin `m4wrap':
m4wrap(STRING, ...)
-
-which stores STRING and the rest of the arguments in a safe place, to
-be reread when end of input is reached.
+ which stores STRING and the rest of the arguments in a safe place,
+to be reread when end of input is reached.
define(`cleanup', `This is the `cleanup' actions.
')
@@ -1778,8 +1770,8 @@
File: m4.info, Node: File Inclusion, Next: Diversions, Prev: Input
Control, Up: Top
-File inclusion
-**************
+8 File inclusion
+****************
`m4' allows you to include named files at any point in the input.
@@ -1791,8 +1783,8 @@
File: m4.info, Node: Include, Next: Search Path, Prev: File Inclusion,
Up: File Inclusion
-Including named files
-=====================
+8.1 Including named files
+=========================
There are two builtin macros in `m4' for including files:
@@ -1820,10 +1812,9 @@
Include file start
foo
Include file end
-
-Normally file inclusion is used to insert the contents of a file into
-the input stream. The contents of the file will be read by `m4' and
-macro calls in the file will be expanded:
+ Normally file inclusion is used to insert the contents of a file
+into the input stream. The contents of the file will be read by `m4'
+and macro calls in the file will be expanded:
define(`foo', `FOO')
=>
@@ -1856,8 +1847,8 @@
File: m4.info, Node: Search Path, Prev: Include, Up: File Inclusion
-Searching for include files
-===========================
+8.2 Searching for include files
+===============================
GNU `m4' allows included files to be found in other directories than
the current working directory.
@@ -1875,8 +1866,8 @@
File: m4.info, Node: Diversions, Next: Text handling, Prev: File
Inclusion, Up: Top
-Diverting and undiverting output
-********************************
+9 Diverting and undiverting output
+**********************************
Diversions are a way of temporarily saving output. The output of `m4'
can at any time be diverted to a temporary file, and be reinserted into
@@ -1903,8 +1894,8 @@
File: m4.info, Node: Divert, Next: Undivert, Prev: Diversions, Up:
Diversions
-Diverting output
-================
+9.1 Diverting output
+====================
Output is diverted using `divert':
@@ -1947,8 +1938,8 @@
File: m4.info, Node: Undivert, Next: Divnum, Prev: Divert, Up: Diversions
-Undiverting output
-==================
+9.2 Undiverting output
+======================
Diverted text can be undiverted explicitly using the builtin `undivert':
@@ -2015,8 +2006,8 @@
File: m4.info, Node: Divnum, Next: Cleardiv, Prev: Undivert, Up:
Diversions
-Diversion numbers
-=================
+9.3 Diversion numbers
+=====================
The builtin `divnum':
@@ -2044,8 +2035,8 @@
File: m4.info, Node: Cleardiv, Prev: Divnum, Up: Diversions
-Discarding diverted text
-========================
+9.4 Discarding diverted text
+============================
Often it is not known, when output is diverted, whether the diverted
text is actually needed. Since all non-empty diversion are brought back
@@ -2077,8 +2068,8 @@
File: m4.info, Node: Text handling, Next: Arithmetic, Prev: Diversions,
Up: Top
-Macros for text handling
-************************
+10 Macros for text handling
+***************************
There are a number of builtins in `m4' for manipulating text in various
ways, extracting substrings, searching, substituting, and so on.
@@ -2096,8 +2087,8 @@
File: m4.info, Node: Len, Next: Index, Prev: Text handling, Up: Text
handling
-Calculating length of strings
-=============================
+10.1 Calculating length of strings
+==================================
The length of a string can be calculated by `len':
@@ -2115,8 +2106,8 @@
File: m4.info, Node: Index, Next: Regexp, Prev: Len, Up: Text handling
-Searching for substrings
-========================
+10.2 Searching for substrings
+=============================
Searching for substrings is done with `index':
@@ -2136,8 +2127,8 @@
File: m4.info, Node: Regexp, Next: Substr, Prev: Index, Up: Text handling
-Searching for regular expressions
-=================================
+10.3 Searching for regular expressions
+======================================
Searching for regular expressions is done with the builtin `regexp':
@@ -2169,8 +2160,8 @@
File: m4.info, Node: Substr, Next: Translit, Prev: Regexp, Up: Text
handling
-Extracting substrings
-=====================
+10.4 Extracting substrings
+==========================
Substrings are extracted with `substr':
@@ -2190,8 +2181,8 @@
File: m4.info, Node: Translit, Next: Patsubst, Prev: Substr, Up: Text
handling
-Translating characters
-======================
+10.5 Translating characters
+===========================
Character translation is done with `translit':
@@ -2229,14 +2220,13 @@
File: m4.info, Node: Patsubst, Next: Format, Prev: Translit, Up: Text
handling
-Substituting text by regular expression
-=======================================
+10.6 Substituting text by regular expression
+============================================
Global substitution in a string is done by `patsubst':
patsubst(STRING, REGEXP, opt REPLACEMENT)
-
-which searches STRING for matches of REGEXP, and substitutes
+ which searches STRING for matches of REGEXP, and substitutes
REPLACEMENT for each match. The syntax for regular expressions is the
same as in GNU Emacs.
@@ -2284,8 +2274,8 @@
File: m4.info, Node: Format, Prev: Patsubst, Up: Text handling
-Formatted output
-================
+10.7 Formatted output
+=====================
Formatted output can be made with `format':
@@ -2327,8 +2317,8 @@
File: m4.info, Node: Arithmetic, Next: UNIX commands, Prev: Text
handling, Up: Top
-Macros for doing arithmetic
-***************************
+11 Macros for doing arithmetic
+******************************
Integer arithmetic is included in `m4', with a C-like syntax. As
convenient shorthands, there are builtins for simple increment and
@@ -2342,8 +2332,8 @@
File: m4.info, Node: Incr, Next: Eval, Prev: Arithmetic, Up: Arithmetic
-Decrement and increment operators
-=================================
+11.1 Decrement and increment operators
+======================================
Increment and decrement of integers are supported using the builtins
`incr' and `decr':
@@ -2365,8 +2355,8 @@
File: m4.info, Node: Eval, Prev: Incr, Up: Arithmetic
-Evaluating integer expressions
-==============================
+11.2 Evaluating integer expressions
+===================================
Integer expressions are evaluated with `eval':
@@ -2486,8 +2476,8 @@
File: m4.info, Node: UNIX commands, Next: Miscellaneous, Prev:
Arithmetic, Up: Top
-Running UNIX commands
-*********************
+12 Running UNIX commands
+************************
There are a few builtin macros in `m4' that allow you to run UNIX
commands from within `m4'.
@@ -2502,8 +2492,8 @@
File: m4.info, Node: Syscmd, Next: Esyscmd, Prev: UNIX commands, Up:
UNIX commands
-Executing simple commands
-=========================
+12.1 Executing simple commands
+==============================
Any shell command can be executed, using `syscmd':
@@ -2525,8 +2515,8 @@
File: m4.info, Node: Esyscmd, Next: Sysval, Prev: Syscmd, Up: UNIX
commands
-Reading the output of commands
-==============================
+12.2 Reading the output of commands
+===================================
If you want `m4' to read the output of a UNIX command, use `esyscmd':
@@ -2555,8 +2545,8 @@
File: m4.info, Node: Sysval, Next: Maketemp, Prev: Esyscmd, Up: UNIX
commands
-Exit codes
-==========
+12.3 Exit codes
+===============
To see whether a shell command succeeded, use `sysval':
@@ -2577,8 +2567,8 @@
File: m4.info, Node: Maketemp, Prev: Sysval, Up: UNIX commands
-Making names for temporary files
-================================
+12.4 Making names for temporary files
+=====================================
Commands specified to `syscmd' or `esyscmd' might need a temporary
file, for output or for some other purpose. There is a builtin macro,
@@ -2599,8 +2589,8 @@
File: m4.info, Node: Miscellaneous, Next: Frozen files, Prev: UNIX
commands, Up: Top
-Miscellaneous builtin macros
-****************************
+13 Miscellaneous builtin macros
+*******************************
This chapter describes various builtins, that do not really belong in
any of the previous chapters.
@@ -2613,14 +2603,13 @@
File: m4.info, Node: Errprint, Next: M4exit, Prev: Miscellaneous, Up:
Miscellaneous
-Printing error messages
-=======================
+13.1 Printing error messages
+============================
You can print error messages using `errprint':
errprint(MESSAGE, ...)
-
-which simply prints MESSAGE and the rest of the arguments on the
+ which simply prints MESSAGE and the rest of the arguments on the
standard error output.
The expansion of `errprint' is void.
@@ -2639,8 +2628,7 @@
__file__
__line__
-
-which expands to the quoted name of the current input file, and the
+ which expands to the quoted name of the current input file, and the
current input line number in that file.
errprint(`m4:'__file__:__line__: `Input error
@@ -2651,16 +2639,15 @@
File: m4.info, Node: M4exit, Prev: Errprint, Up: Miscellaneous
-Exiting from `m4'
-=================
+13.2 Exiting from `m4'
+======================
If you need to exit from `m4' before the entire input has been read,
you can use `m4exit':
m4exit(opt CODE)
-
-which causes `m4' to exit, with exit code CODE. If CODE is left out,
-the exit code is zero.
+ which causes `m4' to exit, with exit code CODE. If CODE is left
+out, the exit code is zero.
define(`fatal_error', `errprint(`m4: '__file__: __line__`: fatal error:
$*
')m4exit(1)')
@@ -2676,8 +2663,8 @@
File: m4.info, Node: Frozen files, Next: Compatibility, Prev:
Miscellaneous, Up: Top
-Fast loading of frozen states
-*****************************
+14 Fast loading of frozen states
+********************************
Some bigger `m4' applications may be built over a common base
containing hundreds of definitions and other costly initializations.
@@ -2791,8 +2778,8 @@
File: m4.info, Node: Compatibility, Next: Concept index, Prev: Frozen
files, Up: Top
-Compatibility with other versions of `m4'
-*****************************************
+15 Compatibility with other versions of `m4'
+********************************************
This chapter describes the differences between this implementation of
`m4', and the implementation found under UNIX, notably System V,
@@ -2810,8 +2797,8 @@
File: m4.info, Node: Extensions, Next: Incompatibilities, Prev:
Compatibility, Up: Compatibility
-Extensions in GNU `m4'
-======================
+15.1 Extensions in GNU `m4'
+===========================
This version of `m4' contains a few facilities, that do not exist in
System V `m4'. These extra facilities are all suppressed by using the
@@ -2868,8 +2855,8 @@
File: m4.info, Node: Incompatibilities, Next: Other Incompat, Prev:
Extensions, Up: Compatibility
-Facilities in System V `m4' not in GNU `m4'
-===========================================
+15.2 Facilities in System V `m4' not in GNU `m4'
+================================================
The version of `m4' from System V contains a few facilities that have
not been implemented in GNU `m4' yet.
@@ -2880,8 +2867,8 @@
File: m4.info, Node: Other Incompat, Prev: Incompatibilities, Up:
Compatibility
-Other incompatibilities
-=======================
+15.3 Other incompatibilities
+============================
There are a few other incompatibilities between this implementation of
`m4', and the System V version.
@@ -2934,141 +2921,142 @@
Concept index
*************
+[index]
* Menu:
-* Arguments to macros: Arguments.
-* arguments to macros: Macro Arguments.
-* arguments to macros, special: Pseudo Arguments.
-* arguments, quoted macro: Quoting Arguments.
-* arithmetic: Arithmetic.
-* builtins, indirect call of: Builtin.
-* call of builtins, indirect: Builtin.
-* call of macros, indirect: Indir.
-* changing comment delimiters: Changecom.
-* changing the quote delimiters: Changequote.
-* characters, translating: Translit.
-* command line, filenames on the: Invoking m4.
-* command line, macro definitions on the: Invoking m4.
-* command line, options: Invoking m4.
-* commands, exit code from UNIX: Sysval.
-* commands, running UNIX: UNIX commands.
-* comment delimiters, changing: Changecom.
-* comments: Comments.
-* comments, copied to output: Changecom.
-* comparing strings: Ifelse.
-* compatibility: Compatibility.
-* conditionals: Ifdef.
-* controlling debugging output: Debug Levels.
-* counting loops: Loops.
-* debugging output, controlling: Debug Levels.
-* debugging output, saving: Debug Output.
-* decrement operator: Incr.
-* defining new macros: Definitions.
-* definitions, displaying macro: Dumpdef.
-* deleting macros: Undefine.
-* deleting whitespace in input: Dnl.
-* discarding diverted text: Cleardiv.
-* displaying macro definitions: Dumpdef.
-* diversion numbers: Divnum.
-* diverted text, discarding: Cleardiv.
-* diverting output to files: Divert.
-* dumping into frozen file: Frozen files.
-* error messages, printing: Errprint.
-* evaluation, of integer expressions: Eval.
-* executing UNIX commands: UNIX commands.
-* exit code from UNIX commands: Sysval.
-* exiting from m4: M4exit.
-* expansion of macros: Macro expansion.
-* expansion, tracing macro: Trace.
-* expressions, evaluation of integer: Eval.
-* extracting substrings: Substr.
-* fast loading of frozen files: Frozen files.
-* file inclusion <1>: Undivert.
-* file inclusion: File Inclusion.
-* filenames, on the command line: Invoking m4.
-* files, diverting output to: Divert.
-* files, names of temporary: Maketemp.
-* forloops: Loops.
-* formatted output: Format.
-* frozen files for fast loading: Frozen files.
-* GNU extensions <1>: Extensions.
-* GNU extensions <2>: Frozen files.
-* GNU extensions <3>: Esyscmd.
-* GNU extensions <4>: Format.
-* GNU extensions <5>: Patsubst.
-* GNU extensions <6>: Regexp.
-* GNU extensions <7>: Undivert.
-* GNU extensions <8>: Search Path.
-* GNU extensions <9>: Debug Output.
-* GNU extensions <10>: Debug Levels.
-* GNU extensions <11>: Builtin.
-* GNU extensions <12>: Indir.
-* GNU extensions: Arguments.
-* included files, search path for: Search Path.
-* inclusion, of files <1>: Undivert.
-* inclusion, of files: File Inclusion.
-* increment operator: Incr.
-* indirect call of builtins: Builtin.
-* indirect call of macros: Indir.
-* initialization, frozen states: Frozen files.
-* input tokens: Syntax.
-* input, saving: M4wrap.
-* integer arithmetic: Arithmetic.
-* integer expression evaluation: Eval.
-* length of strings: Len.
-* lexical structure of words: Changeword.
-* loops: Loops.
-* loops, counting: Loops.
-* macro definitions, on the command line: Invoking m4.
-* macro expansion, tracing: Trace.
-* macro invocation: Invocation.
-* macros, arguments to <1>: Arguments.
-* macros, arguments to: Macro Arguments.
-* macros, displaying definitions: Dumpdef.
-* macros, expansion of: Macro expansion.
-* macros, how to define new: Definitions.
-* macros, how to delete: Undefine.
-* macros, how to rename: Defn.
-* macros, indirect call of: Indir.
-* macros, quoted arguments to: Quoting Arguments.
-* macros, recursive: Loops.
-* macros, special arguments to: Pseudo Arguments.
-* macros, temporary redefinition of: Pushdef.
-* messages, printing error: Errprint.
-* multibranches: Ifelse.
-* names: Names.
-* options, command line: Invoking m4.
-* output, diverting to files: Divert.
-* output, formatted: Format.
-* output, saving debugging: Debug Output.
-* pattern substitution: Patsubst.
-* printing error messages: Errprint.
-* quote delimiters, changing the: Changequote.
-* quoted macro arguments: Quoting Arguments.
-* quoted string: Quoted strings.
-* recursive macros: Loops.
-* redefinition of macros, temporary: Pushdef.
-* regular expressions <1>: Patsubst.
-* regular expressions: Regexp.
-* reloading a frozen file: Frozen files.
-* renaming macros: Defn.
-* running UNIX commands: UNIX commands.
-* saving debugging output: Debug Output.
-* saving input: M4wrap.
-* search path for included files: Search Path.
-* special arguments to macros: Pseudo Arguments.
-* strings, length of: Len.
-* substitution by regular expression: Patsubst.
-* substrings, extracting: Substr.
-* temporary filenames: Maketemp.
-* temporary redefinition of macros: Pushdef.
-* tokens: Syntax.
-* tracing macro expansion: Trace.
-* translating characters: Translit.
-* undefining macros: Undefine.
-* UNIX commands, exit code from: Sysval.
-* UNIX commands, running: UNIX commands.
-* words, lexical structure of: Changeword.
+* arguments to macros: Macro Arguments. (line 6)
+* Arguments to macros: Arguments. (line 6)
+* arguments to macros, special: Pseudo Arguments. (line 6)
+* arguments, quoted macro: Quoting Arguments. (line 6)
+* arithmetic: Arithmetic. (line 6)
+* builtins, indirect call of: Builtin. (line 6)
+* call of builtins, indirect: Builtin. (line 6)
+* call of macros, indirect: Indir. (line 6)
+* changing comment delimiters: Changecom. (line 6)
+* changing the quote delimiters: Changequote. (line 6)
+* characters, translating: Translit. (line 6)
+* command line, filenames on the: Invoking m4. (line 176)
+* command line, macro definitions on the: Invoking m4. (line 143)
+* command line, options: Invoking m4. (line 10)
+* commands, exit code from UNIX: Sysval. (line 6)
+* commands, running UNIX: UNIX commands. (line 6)
+* comment delimiters, changing: Changecom. (line 6)
+* comments: Comments. (line 6)
+* comments, copied to output: Changecom. (line 28)
+* comparing strings: Ifelse. (line 6)
+* compatibility: Compatibility. (line 6)
+* conditionals: Ifdef. (line 6)
+* controlling debugging output: Debug Levels. (line 6)
+* counting loops: Loops. (line 42)
+* debugging output, controlling: Debug Levels. (line 6)
+* debugging output, saving: Debug Output. (line 6)
+* decrement operator: Incr. (line 6)
+* defining new macros: Definitions. (line 6)
+* definitions, displaying macro: Dumpdef. (line 6)
+* deleting macros: Undefine. (line 6)
+* deleting whitespace in input: Dnl. (line 6)
+* discarding diverted text: Cleardiv. (line 6)
+* displaying macro definitions: Dumpdef. (line 6)
+* diversion numbers: Divnum. (line 6)
+* diverted text, discarding: Cleardiv. (line 6)
+* diverting output to files: Divert. (line 6)
+* dumping into frozen file: Frozen files. (line 6)
+* error messages, printing: Errprint. (line 6)
+* evaluation, of integer expressions: Eval. (line 6)
+* executing UNIX commands: UNIX commands. (line 6)
+* exit code from UNIX commands: Sysval. (line 6)
+* exiting from m4: M4exit. (line 6)
+* expansion of macros: Macro expansion. (line 6)
+* expansion, tracing macro: Trace. (line 6)
+* expressions, evaluation of integer: Eval. (line 6)
+* extracting substrings: Substr. (line 6)
+* fast loading of frozen files: Frozen files. (line 6)
+* file inclusion <1>: Undivert. (line 53)
+* file inclusion: File Inclusion. (line 6)
+* filenames, on the command line: Invoking m4. (line 176)
+* files, diverting output to: Divert. (line 6)
+* files, names of temporary: Maketemp. (line 6)
+* forloops: Loops. (line 42)
+* formatted output: Format. (line 6)
+* frozen files for fast loading: Frozen files. (line 6)
+* GNU extensions <1>: Undivert. (line 53)
+* GNU extensions <2>: Patsubst. (line 6)
+* GNU extensions <3>: Extensions. (line 6)
+* GNU extensions <4>: Search Path. (line 6)
+* GNU extensions <5>: Frozen files. (line 6)
+* GNU extensions <6>: Indir. (line 6)
+* GNU extensions <7>: Regexp. (line 6)
+* GNU extensions <8>: Debug Output. (line 6)
+* GNU extensions <9>: Debug Levels. (line 59)
+* GNU extensions <10>: Builtin. (line 6)
+* GNU extensions <11>: Format. (line 6)
+* GNU extensions <12>: Esyscmd. (line 6)
+* GNU extensions: Arguments. (line 28)
+* included files, search path for: Search Path. (line 6)
+* inclusion, of files <1>: File Inclusion. (line 6)
+* inclusion, of files: Undivert. (line 53)
+* increment operator: Incr. (line 6)
+* indirect call of builtins: Builtin. (line 6)
+* indirect call of macros: Indir. (line 6)
+* initialization, frozen states: Frozen files. (line 6)
+* input tokens: Syntax. (line 6)
+* input, saving: M4wrap. (line 6)
+* integer arithmetic: Arithmetic. (line 6)
+* integer expression evaluation: Eval. (line 6)
+* length of strings: Len. (line 6)
+* lexical structure of words: Changeword. (line 6)
+* loops: Loops. (line 10)
+* loops, counting: Loops. (line 42)
+* macro definitions, on the command line: Invoking m4. (line 143)
+* macro expansion, tracing: Trace. (line 6)
+* macro invocation: Invocation. (line 6)
+* macros, arguments to <1>: Arguments. (line 6)
+* macros, arguments to: Macro Arguments. (line 6)
+* macros, displaying definitions: Dumpdef. (line 6)
+* macros, expansion of: Macro expansion. (line 6)
+* macros, how to define new: Definitions. (line 6)
+* macros, how to delete: Undefine. (line 6)
+* macros, how to rename: Defn. (line 6)
+* macros, indirect call of: Indir. (line 6)
+* macros, quoted arguments to: Quoting Arguments. (line 6)
+* macros, recursive: Loops. (line 6)
+* macros, special arguments to: Pseudo Arguments. (line 6)
+* macros, temporary redefinition of: Pushdef. (line 6)
+* messages, printing error: Errprint. (line 6)
+* multibranches: Ifelse. (line 33)
+* names: Names. (line 6)
+* options, command line: Invoking m4. (line 10)
+* output, diverting to files: Divert. (line 6)
+* output, formatted: Format. (line 6)
+* output, saving debugging: Debug Output. (line 6)
+* pattern substitution: Patsubst. (line 6)
+* printing error messages: Errprint. (line 6)
+* quote delimiters, changing the: Changequote. (line 6)
+* quoted macro arguments: Quoting Arguments. (line 6)
+* quoted string: Quoted strings. (line 6)
+* recursive macros: Loops. (line 6)
+* redefinition of macros, temporary: Pushdef. (line 6)
+* regular expressions <1>: Patsubst. (line 6)
+* regular expressions: Regexp. (line 6)
+* reloading a frozen file: Frozen files. (line 6)
+* renaming macros: Defn. (line 6)
+* running UNIX commands: UNIX commands. (line 6)
+* saving debugging output: Debug Output. (line 6)
+* saving input: M4wrap. (line 6)
+* search path for included files: Search Path. (line 6)
+* special arguments to macros: Pseudo Arguments. (line 6)
+* strings, length of: Len. (line 6)
+* substitution by regular expression: Patsubst. (line 6)
+* substrings, extracting: Substr. (line 6)
+* temporary filenames: Maketemp. (line 6)
+* temporary redefinition of macros: Pushdef. (line 6)
+* tokens: Syntax. (line 6)
+* tracing macro expansion: Trace. (line 6)
+* translating characters: Translit. (line 6)
+* undefining macros: Undefine. (line 6)
+* UNIX commands, exit code from: Sysval. (line 6)
+* UNIX commands, running: UNIX commands. (line 6)
+* words, lexical structure of: Changeword. (line 6)
File: m4.info, Node: Macro index, Prev: Concept index, Up: Top
@@ -3080,132 +3068,133 @@
the first time. Names starting and ending with `__' have these
characters removed in the index.
+[index]
* Menu:
-* builtin: Builtin.
-* changecom: Changecom.
-* changequote: Changequote.
-* changeword: Changeword.
-* debugfile: Debug Output.
-* debugmode: Debug Levels.
-* decr: Incr.
-* define: Define.
-* defn: Defn.
-* divert: Divert.
-* divnum: Divnum.
-* dnl: Dnl.
-* dumpdef: Dumpdef.
-* errprint: Errprint.
-* esyscmd: Esyscmd.
-* eval: Eval.
-* file: Errprint.
-* format: Format.
-* gnu: Other Incompat.
-* ifdef: Ifdef.
-* ifelse: Ifelse.
-* include: Include.
-* incr: Incr.
-* index: Index.
-* indir: Indir.
-* len: Len.
-* line: Errprint.
-* m4exit: M4exit.
-* m4wrap: M4wrap.
-* maketemp: Maketemp.
-* patsubst: Patsubst.
-* popdef: Pushdef.
-* pushdef: Pushdef.
-* regexp: Regexp.
-* shift: Loops.
-* sinclude: Include.
-* substr: Substr.
-* syscmd: Syscmd.
-* sysval: Sysval.
-* traceoff: Trace.
-* traceon: Trace.
-* translit: Translit.
-* undefine: Undefine.
-* undivert: Undivert.
-* unix: Other Incompat.
+* builtin: Builtin. (line 6)
+* changecom: Changecom. (line 6)
+* changequote: Changequote. (line 6)
+* changeword: Changeword. (line 6)
+* debugfile: Debug Output. (line 6)
+* debugmode: Debug Levels. (line 59)
+* decr: Incr. (line 6)
+* define: Define. (line 6)
+* defn: Defn. (line 6)
+* divert: Divert. (line 6)
+* divnum: Divnum. (line 6)
+* dnl: Dnl. (line 6)
+* dumpdef: Dumpdef. (line 6)
+* errprint: Errprint. (line 6)
+* esyscmd: Esyscmd. (line 6)
+* eval: Eval. (line 6)
+* file: Errprint. (line 26)
+* format: Format. (line 6)
+* gnu: Other Incompat. (line 44)
+* ifdef: Ifdef. (line 6)
+* ifelse: Ifelse. (line 6)
+* include: Include. (line 6)
+* incr: Incr. (line 6)
+* index: Index. (line 6)
+* indir: Indir. (line 6)
+* len: Len. (line 6)
+* line: Errprint. (line 26)
+* m4exit: M4exit. (line 6)
+* m4wrap: M4wrap. (line 6)
+* maketemp: Maketemp. (line 6)
+* patsubst: Patsubst. (line 6)
+* popdef: Pushdef. (line 7)
+* pushdef: Pushdef. (line 7)
+* regexp: Regexp. (line 6)
+* shift: Loops. (line 13)
+* sinclude: Include. (line 6)
+* substr: Substr. (line 6)
+* syscmd: Syscmd. (line 6)
+* sysval: Sysval. (line 6)
+* traceoff: Trace. (line 6)
+* traceon: Trace. (line 6)
+* translit: Translit. (line 6)
+* undefine: Undefine. (line 6)
+* undivert: Undivert. (line 6)
+* unix: Other Incompat. (line 47)
Tag Table:
-Node: Top947
-Node: Preliminaries6948
-Node: Intro7670
-Node: History9276
-Node: Invoking m410194
-Node: Bugs16987
-Node: Manual18252
-Node: Syntax19615
-Node: Names20199
-Node: Quoted strings20569
-Node: Other tokens21151
-Node: Comments21365
-Node: Macros22025
-Node: Invocation22515
-Node: Inhibiting Invocation23323
-Node: Macro Arguments26466
-Node: Quoting Arguments27727
-Node: Macro expansion28529
-Node: Definitions29189
-Node: Define29962
-Node: Arguments30770
-Node: Pseudo Arguments32247
-Node: Undefine34095
-Node: Defn34754
-Node: Pushdef35908
-Node: Indir37741
-Node: Builtin38500
-Node: Conditionals38941
-Node: Ifdef39645
-Node: Ifelse40411
-Node: Loops42174
-Node: Debugging45443
-Node: Dumpdef46019
-Node: Trace46865
-Node: Debug Levels48242
-Node: Debug Output50623
-Node: Input Control51140
-Node: Dnl51674
-Node: Changequote52796
-Node: Changecom54157
-Node: Changeword55438
-Node: M4wrap58647
-Node: File Inclusion59846
-Node: Include60159
-Node: Search Path62084
-Node: Diversions62867
-Node: Divert64101
-Node: Undivert65230
-Node: Divnum67161
-Node: Cleardiv67703
-Node: Text handling68736
-Node: Len69453
-Node: Index69848
-Node: Regexp70430
-Node: Substr71518
-Node: Translit72135
-Node: Patsubst73575
-Node: Format75663
-Node: Arithmetic77149
-Node: Incr77591
-Node: Eval78092
-Node: UNIX commands81088
-Node: Syscmd81556
-Node: Esyscmd82267
-Node: Sysval83210
-Node: Maketemp83614
-Node: Miscellaneous84354
-Node: Errprint84720
-Node: M4exit85708
-Node: Frozen files86490
-Node: Compatibility91407
-Node: Extensions92022
-Node: Incompatibilities94375
-Node: Other Incompat94814
-Node: Concept index96974
-Node: Macro index103979
+Node: Top985
+Node: Preliminaries6984
+Node: Intro7710
+Node: History9324
+Node: Invoking m410250
+Node: Bugs17051
+Node: Manual18324
+Node: Syntax19695
+Node: Names20283
+Node: Quoted strings20661
+Node: Other tokens21251
+Node: Comments21473
+Node: Macros22141
+Node: Invocation22635
+Node: Inhibiting Invocation23451
+Node: Macro Arguments26602
+Node: Quoting Arguments27871
+Node: Macro expansion28681
+Node: Definitions29349
+Node: Define30126
+Node: Arguments30942
+Node: Pseudo Arguments32427
+Node: Undefine34283
+Node: Defn34950
+Node: Pushdef36112
+Node: Indir37953
+Node: Builtin38722
+Node: Conditionals39173
+Node: Ifdef39881
+Node: Ifelse40655
+Node: Loops42426
+Node: Debugging45703
+Node: Dumpdef46283
+Node: Trace47137
+Node: Debug Levels48522
+Node: Debug Output50912
+Node: Input Control51439
+Node: Dnl51977
+Node: Changequote53109
+Node: Changecom54480
+Node: Changeword55771
+Node: M4wrap58988
+Node: File Inclusion60197
+Node: Include60514
+Node: Search Path62449
+Node: Diversions63240
+Node: Divert64478
+Node: Undivert65615
+Node: Divnum67554
+Node: Cleardiv68104
+Node: Text handling69145
+Node: Len69868
+Node: Index70273
+Node: Regexp70865
+Node: Substr71963
+Node: Translit72590
+Node: Patsubst74040
+Node: Format76140
+Node: Arithmetic77636
+Node: Incr78084
+Node: Eval78595
+Node: UNIX commands81601
+Node: Syscmd82075
+Node: Esyscmd82796
+Node: Sysval83749
+Node: Maketemp84163
+Node: Miscellaneous84913
+Node: Errprint85285
+Node: M4exit86287
+Node: Frozen files87081
+Node: Compatibility92004
+Node: Extensions92625
+Node: Incompatibilities94988
+Node: Other Incompat95437
+Node: Concept index97607
+Node: Macro index107458
End Tag Table
--- orig/doc/m4.texinfo
+++ mod/doc/m4.texinfo
@@ -24,7 +24,7 @@
@ifnottex
This file documents GNU M4 @value{VERSION}.
-Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 2004 Free Software
+Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 2004, 2005 Free Software
Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
@@ -2614,7 +2614,7 @@
patsubst(`GNUs not Unix', `\w+', `(\&)')
@result{}(GNUs) (not) (Unix)
patsubst(`GNUs not Unix', `[A-Z][a-z]+')
address@hidden not
address@hidden not @comment
@end example
Here is a slightly more realistic example, which capitalizes individual
--- orig/doc/stamp-vti
+++ mod/doc/stamp-vti
@@ -1 +1 @@
-Thu Feb 3 16:42:44 GMT 2005
+Thu Mar 31 12:17:04 BST 2005
--- orig/doc/version.texi
+++ mod/doc/version.texi
@@ -1,3 +1,3 @@
@set EDITION 1.4.2a
address@hidden UPDATED February 2005
address@hidden UPDATED March 2005
@set VERSION 1.4.2a
- --
Gary V. Vaughan ())_. address@hidden,gnu.org}
Research Scientist ( '/ http://tkd.kicks-ass.net
GNU Hacker / )= http://www.gnu.org/software/libtool
Technical Author `(_~)_ http://sources.redhat.com/autobook
_________________________________________________________
This patch notification generated by tlaapply version 0.9
http://tkd.kicks-ass.net/arch/address@hidden/cvs-utils--tla--1.0
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (Darwin)
iD8DBQFCS91NFRMICSmD1gYRAnvKAJ43tqxHxbRVMp1kC7DkuPu/8z8oZACgmAed
SQUFD40alau1VY9qZDZ6zY0=
=aB3a
-----END PGP SIGNATURE-----
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- FYI: put back trailing whitespace [m4--release--1.4--patch-1],
Gary V. Vaughan <=