-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
I'm slowly starting to port improvements from the branch into CVS head. I
started with this:
2006-07-14 Eric Blake <[EMAIL PROTECTED]>
* ltdl/m4/gnulib-cache.m4: Augment with `gnulib-tool --import
gendocs fdl'.
* tests/generate.awk (normalize): Recognize @tabchar.
* doc/m4.texinfo (Top): Start merging from branch. Remove tabs.
Fix menus. Upgrade FDL license from 1.1 to 1.2. Fix overfull
hboxes.
(Index macro, Shell commands, Incompatiblities): Rename nodes
from Index, UNIX commands, Other incompat.
(Platform macros, Using frozen files, Frozen file format 1)
(Frozen file format 2, Copying This Manual, Indices): New nodes.
- --
Life is short - so eat dessert first!
Eric Blake [EMAIL PROTECTED]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.1 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFEuV7l84KuGfSFAYARAiTkAJwOSbVBWanPiaM+XCc52OYyZyILUACfaW6Z
mtotAFPbVeQagNSrCl4QOwY=
=Y149
-----END PGP SIGNATURE-----
? doc/fdl.texi
? doc/gendocs_template
? doc/manual
Index: Makefile.am
===================================================================
RCS file: /sources/m4/m4/Makefile.am,v
retrieving revision 1.40
diff -u -p -r1.40 Makefile.am
--- Makefile.am 14 Jul 2006 21:08:14 -0000 1.40
+++ Makefile.am 15 Jul 2006 21:26:23 -0000
@@ -260,8 +260,11 @@ ltdl/libltdlc.la:
## -------------- ##
info_TEXINFOS = doc/m4.texinfo
-doc_m4_TEXINFOS = doc/regexprops-generic.texi
+doc_m4_TEXINFOS = doc/regexprops-generic.texi doc/fdl.texi
dist_man_MANS = doc/m4.1
+EXTRA_DIST += $(config_aux_dir)/gendocs.sh doc/gendocs_template
+MAINTAINERCLEANFILES += $(config_aux_dir)/gendocs.sh doc/gendocs_template \
+ doc/fdl.texi
# Build the man page once in the srcdir, rather than in every VPATH build
# dir, to match how automake builds info pages. This is safe for 'make
@@ -462,3 +465,10 @@ cvs-diff:
prevver=Release-`echo $$prevno | sed 's/\./-/g'`; \
cvs -f rdiff -c -r $$prevver -r $$thisver $(PACKAGE) \
> $(PACKAGE)-$$prevno-$(VERSION).diff
+
+.PHONY: web-manual
+web-manual:
+ @cd $(srcdir)/doc; \
+ $(SHELL) "$(abs_srcdir)/$(config_aux_dir)/gendocs.sh" $(PACKAGE) \
+ "GNU $(PACKAGE)- GNU macro processor"
+ @echo " *** Upload the doc/manual directory to web-cvs."
Index: doc/m4.texinfo
===================================================================
RCS file: /sources/m4/m4/doc/m4.texinfo,v
retrieving revision 1.25
diff -u -p -r1.25 m4.texinfo
--- doc/m4.texinfo 15 Jul 2006 00:15:01 -0000 1.25
+++ doc/m4.texinfo 15 Jul 2006 21:26:23 -0000
@@ -1,47 +1,76 @@
-\input texinfo
[EMAIL PROTECTED] %**start of header
+\input texinfo @c -*- texinfo -*-
[EMAIL PROTECTED] ========================================================
[EMAIL PROTECTED] %**start of header
@setfilename m4.info
[EMAIL PROTECTED] GNU macro processor
[EMAIL PROTECTED] GNU M4 macro processor
[EMAIL PROTECTED] odd
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED] ifnothtml
@finalout
[EMAIL PROTECTED] %**end of header
@include version.texi
@set beta
[EMAIL PROTECTED] A simple macro for optional variables.
[EMAIL PROTECTED] @tabchar{}
[EMAIL PROTECTED] ----------
[EMAIL PROTECTED] The testsuite expects literal tab output in some examples, but
[EMAIL PROTECTED] literal tabs in texinfo lead to formatting issues.
[EMAIL PROTECTED] tabchar
+@ @c
[EMAIL PROTECTED] macro
+
[EMAIL PROTECTED] @ovar{ARG}
[EMAIL PROTECTED] -------------------
[EMAIL PROTECTED] The ARG is an optional argument. To be used for macro
arguments in
[EMAIL PROTECTED] their documentation.
@macro ovar{varname}
@[EMAIL PROTECTED]@r{]}
@end macro
[EMAIL PROTECTED] Text Processing Tools
[EMAIL PROTECTED]
-* m4: (m4). A powerful macro processor.
[EMAIL PROTECTED] direntry
[EMAIL PROTECTED] @dvar{ARG, DEFAULT}
[EMAIL PROTECTED] -------------------
[EMAIL PROTECTED] The ARG is an optional argument, defaulting to DEFAULT. To
be used
[EMAIL PROTECTED] for macro arguments in their documentation.
[EMAIL PROTECTED] dvar{varname, default}
[EMAIL PROTECTED]@var{\varname\} = @[EMAIL PROTECTED]
[EMAIL PROTECTED] macro
+
[EMAIL PROTECTED] %**end of header
[EMAIL PROTECTED] ========================================================
[EMAIL PROTECTED]
-This file documents GNU @code{m4} @value{VERSION}
[EMAIL PROTECTED]
-Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1998, 1999, 2000,
-2001, 2004, 2005, 2006 Free Software Foundation, Inc.
+This manual is for GNU M4 (version @value{VERSION}, @value{UPDATED}),
+a package containing an implementation of the m4 macro language.
+
+Copyright @copyright{} 1989, 1990, 1991, 1992, 1993, 1994, 1998, 1999,
+2000, 2001, 2004, 2005, 2006 Free Software Foundation, Inc.
[EMAIL PROTECTED]
Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with the no Invariant Sections, with no Front-Cover Texts,
-and with no Back-Cover Texts. A copy of the license is included in
-the section entitled "GNU Free Documentation License".
-
[EMAIL PROTECTED]
-Permission is granted to process this file through TeX and print the
-results, provided the printed document carries copying permission notice
-identical to this one except for the removal of this paragraph
+under the terms of the @acronym{GNU} Free Documentation License,
+Version 1.2 or any later version published by the Free Software
+Foundation; with no Invariant Sections, with the Front-Cover texts
+being ``A @acronym{GNU} Manual,'' and with the Back-Cover Texts as in
+(a) below. A copy of the license is included in the section entitled
[EMAIL PROTECTED] Free Documentation License.''
+
+(a) The FSF's Back-Cover Text is: ``You have freedom to copy and
+modify this @acronym{GNU} Manual, like @acronym{GNU} software. Copies
+published by the Free Software Foundation raise funds for
[EMAIL PROTECTED] development.''
[EMAIL PROTECTED] quotation
[EMAIL PROTECTED] copying
[EMAIL PROTECTED] ignore
[EMAIL PROTECTED] ifinfo
[EMAIL PROTECTED] GNU programming tools
[EMAIL PROTECTED]
+* M4: (m4). A powerful macro processor.
[EMAIL PROTECTED] direntry
@titlepage
[EMAIL PROTECTED] GNU m4, version @value{VERSION}
[EMAIL PROTECTED] GNU M4, version @value{VERSION}
@subtitle A powerful macro processor
@subtitle Edition @value{EDITION}, @value{UPDATED}
@author by Ren@'e Seindal
@@ -49,24 +78,17 @@ identical to this one except for the rem
@page
@vskip 0pt plus 1filll
-Copyright @copyright{} 1989, 1990, 1991, 1992, 1993, 1994, 1998, 1999,
-2000, 2001, 2004, 2005, 2006 Free Software Foundation, Inc.
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with the no Invariant Sections, with no Front-Cover Texts,
-and with no Back-Cover Texts. A copy of the license is included in
-the section entitled "GNU Free Documentation License".
-
[EMAIL PROTECTED]
@end titlepage
[EMAIL PROTECTED]
+
@ifnottex
[EMAIL PROTECTED] Top, Preliminaries, (dir), (dir)
[EMAIL PROTECTED] GNU @code{m4}
[EMAIL PROTECTED] Top
[EMAIL PROTECTED] GNU M4
[EMAIL PROTECTED]
[EMAIL PROTECTED] ifnottex
[EMAIL PROTECTED] @item @[EMAIL PROTECTED] @value{hfillkludge} (UtilD, UtilT,
SrcCD)
[EMAIL PROTECTED]
GNU @code{m4} is an implementation of the traditional UNIX macro
processor. It is mostly SVR4 compatible, although it has some
extensions (for example, handling more than 9 positional parameters
@@ -78,21 +100,20 @@ running them.
GNU @code{m4} was originally written by Ren@'e Seindal, with
subsequent changes by Fran@,{c}ois Pinard and other volunteers
on the Internet. All names and email addresses can be found in the
-files @file{AUTHORS} and @file{THANKS} from the GNU @code{m4}
-distribution.
+files @file{AUTHORS} and @file{THANKS} from the GNU M4 distribution.
@ifclear beta
This is release @value{VERSION}. It is now to be considered stable,
-future releases are only meant to fix bugs, increase speed, or improve
-documentation. [EMAIL PROTECTED]
+future releases on this branch are only meant to fix bugs, increase
+speed, or improve documentation.
@end ifclear
@ifset beta
This is BETA release @value{VERSION}. This is a development release,
-and is as such prone to bugs, crashes, unforeseen features, incomplete
[EMAIL PROTECTED] therefore, use at your own peril. In case of
-problems, please do not hesitate to report them (see the README file in
-the distribution).
+and as such, is prone to bugs, crashes, unforeseen features, incomplete
[EMAIL PROTECTED], therefore, use at your own peril. In case of
+problems, please do not hesitate to report them (see the @file{README}
+file in the distribution). @xref{Experiments}.
@end ifset
@menu
@@ -101,7 +122,7 @@ the distribution).
* Macros:: How to invoke macros
* Definitions:: How to define new macros
-* Conditionals:: Conditionals, loops an recursions
+* Conditionals:: Conditionals, loops, and recursions
* Debugging:: How to debug macros and input
@@ -113,17 +134,18 @@ the distribution).
* Text handling:: Macros for text handling
* Arithmetic:: Macros for doing arithmetic
-* UNIX commands:: Macros for running UNIX commands
+* Shell commands:: Macros for running shell commands
* Miscellaneous:: Miscellaneous builtin macros
-* Frozen files:: Fast loading of frozen states
+* Frozen files:: Fast loading of frozen state
* Compatibility:: Compatibility with other versions of m4
* Experiments:: Experimental features in GNU m4
* Answers:: Correct version of some examples
-* Concept index:: Index for many concepts
-* Macro index:: Index for all m4 macros
+* Copying This Manual:: How to make copies of this manual
+* Indices:: Indices of concepts and macros
[EMAIL PROTECTED] --- The Detailed Node Listing ---
[EMAIL PROTECTED]
+ --- The Detailed Node Listing ---
Introduction and preliminaries
@@ -140,7 +162,7 @@ Lexical and syntactic conventions
* Other tokens:: Other kinds of input tokens
* Comments:: Comments in m4 input
* Input processing:: How m4 copies input to output
-* Regular expression syntax:: How m4 interprets regular expressions
+* Regular expression syntax:: How m4 interprets regular expressions
How to invoke macros
@@ -165,7 +187,7 @@ How to define new macros
* Symbols:: Getting the defined macro names
-Conditionals, loops and recursion
+Conditionals, loops, and recursion
* Ifdef:: Testing if a macro is defined
* Ifelse:: If-else construct, or multibranch
@@ -209,7 +231,7 @@ Extending m4 with dynamic runtime module
Macros for text handling
* Len:: Calculating length of strings
-* Index:: Searching for substrings
+* Index macro:: Searching for substrings
* Regexp:: Searching for regular expressions
* Substr:: Extracting substrings
* Translit:: Translating characters
@@ -219,11 +241,12 @@ Macros for text handling
Macros for doing arithmetic
* Incr:: Decrement and increment operators
-* Eval:: Evaluating integer or rational expressions
-* Mpeval::
+* Eval:: Evaluating integer expressions
+* Mpeval:: Multiple precision arithmetic
-Running UNIX commands
+Running shell commands
+* Platform macros:: Determining the platform
* Syscmd:: Executing simple commands
* Esyscmd:: Reading the output of commands
* Sysval:: Exit codes
@@ -235,26 +258,39 @@ Miscellaneous builtin macros
* M4exit:: Exiting from m4
* Syncoutput:: Turning on and off sync lines
+Fast loading of frozen state
+
+* Using frozen files:: Using frozen files
+* Frozen file format 1:: Frozen file format 1
+* Frozen file format 2:: Frozen file format 2
+
Compatibility with other versions of @code{m4}
* Extensions:: Extensions in GNU m4
-* Other Incompat:: Other incompatibilities
+* Incompatibilities:: Other incompatibilities
+
+Copying This Manual
+
+* GNU Free Documentation License:: License for copying this manual
+
+Indices
+
+* Concept index:: Index for many concepts
+* Macro index:: Index for all m4 macros
@end detailmenu
@end menu
[EMAIL PROTECTED] ifnottex
-
@node Preliminaries
@chapter Introduction and preliminaries
-This first chapter explains what is GNU @code{m4}, where @code{m4}
+This first chapter explains what GNU @code{m4} is, where @code{m4}
comes from, how to read and use this documentation, how to call the
[EMAIL PROTECTED] program and how to report bugs about it. It concludes by
[EMAIL PROTECTED] program, and how to report bugs about it. It concludes by
giving tips for reading the remainder of the manual.
The following chapters then detail all the features of the @code{m4}
-language.
+language, as shipped in the GNU M4 package.
@menu
* Intro:: Introduction to @code{m4}
@@ -271,7 +307,7 @@ language.
input to the output, expanding macros as it goes. Macros are either
builtin or user-defined, and can take any number of arguments.
Besides just doing macro expansion, @code{m4} has builtin functions
-for including named files, running UNIX commands, doing integer
+for including named files, running shell commands, doing integer
arithmetic, manipulating text in various ways, recursion, [EMAIL PROTECTED]
@code{m4} can be used either as a front-end to a compiler, or as a
macro processor in its own right.
@@ -658,7 +694,7 @@ in macro names, depending on the active
* Other tokens:: Other kinds of input tokens
* Comments:: Comments in m4 input
* Input processing:: How m4 copies input to output
-* Regular expression syntax:: How m4 interprets regular expressions
+* Regular expression syntax:: How m4 interprets regular expressions
@end menu
@node Names
@@ -1082,7 +1118,7 @@ macro if it has several definitions from
@xref{Pushdef, , Temporarily redefining macros}, for an explanation of
@code{pushdef}. Some other UNIX implementations replace all definitions
of a macro with @code{define}.
[EMAIL PROTECTED] Incompat, , Other incompatibilities}, for more details.
[EMAIL PROTECTED], , Other incompatibilities}, for more details.
The first argument to @code{define} does not have to be a simple word.
It can be any text string. A macro with a non standard name cannot be
@@ -1555,7 +1591,7 @@ symbols(`ifndef', `ifdef', `define', `un
@end deffn
@node Conditionals
[EMAIL PROTECTED] Conditionals, loops and recursion
[EMAIL PROTECTED] 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
@@ -1687,8 +1723,8 @@ An example of the use of @code{shift} is
order of its arguments:
@example
-define(`reverse', `ifelse($#, 0, , $#, 1, ``$1'',
- `reverse(shift($@@)), `$1'')')
+define(`reverse', `ifelse(`$#', `0', , `$#', `1', ``$1'',
+ `reverse(shift($@@)), `$1'')')
@result{}
reverse
@result{}
@@ -1747,10 +1783,10 @@ Here is the actual implementation of @co
@comment ignore
@example
define(`forloop',
- `pushdef(`$1', `$2')_forloop(`$1', `$2', `$3', `$4')popdef(`$1')')
+ `pushdef(`$1', `$2')_forloop(`$1', `$2', `$3', `$4')popdef(`$1')')
define(`_forloop',
- `$4`'ifelse($1, `$3', ,
- `define(`$1', incr($1))_forloop(`$1', `$2', `$3', `$4')')')
+ `$4`'ifelse($1, `$3', ,
+ `define(`$1', incr($1))_forloop(`$1', `$2', `$3', `$4')')')
@end example
Notice the careful use of quotes. Only three macro arguments are
@@ -1801,10 +1837,10 @@ The expansion of @code{dumpdef} is void.
define(`foo', `Hello world.')
@result{}
dumpdef(`foo')
[EMAIL PROTECTED]: `Hello world.'
[EMAIL PROTECTED]:@tabchar{}`Hello world.'
@result{}
dumpdef(`define')
[EMAIL PROTECTED]: <define>
[EMAIL PROTECTED]:@tabchar{}<define>
@result{}
@end example
@@ -2603,10 +2639,10 @@ only when given arguments.
@end deffn
@example
-include(`no-such-file')
+include(`none')
@result{}
[EMAIL PROTECTED]: input.m4: 1: Cannot open no-such-file: No such file or
directory
-sinclude(`no-such-file')
[EMAIL PROTECTED]: input.m4: 1: Cannot open none: No such file or directory
+sinclude(`none')
@result{}
@end example
@@ -2892,7 +2928,7 @@ Clearing selected diversions can be done
@example
define(`cleardivert',
-`pushdef(`_num', divnum)divert(-1)undivert($@@)divert(_num)popdef(`_num')')
+`pushdef(`_n', divnum)divert(`-1')undivert($@@)divert(_n)popdef(`_n')')
@result{}
@end example
@@ -3136,7 +3172,7 @@ various ways, extracting substrings, sea
@menu
* Len:: Calculating length of strings
-* Index:: Searching for substrings
+* Index macro:: Searching for substrings
* Regexp:: Searching for regular expressions
* Substr:: Extracting substrings
* Translit:: Translating characters
@@ -3163,7 +3199,7 @@ len(`abcdef')
@result{}6
@end example
[EMAIL PROTECTED] Index
[EMAIL PROTECTED] Index macro
@section Searching for substrings
@deffn {Builtin (m4)} index (@var{string}, @var{substring})
@@ -3230,7 +3266,8 @@ the syntax chosen, though the default re
remains unchanged for other invocations:
@example
-regexp(`GNUs not Unix', `\w(\w+)$', `*** \& *** \1 ***', `POSIX_EXTENDED')
+regexp(`GNUs not Unix', `\w(\w+)$', `*** \& *** \1 ***',
+ `POSIX_EXTENDED')
@result{}*** Unix *** nix ***
@end example
@@ -3367,7 +3404,8 @@ words or whole sentences, by substitutin
define(`upcase', `translit(`$*', `a-z', `A-Z')')dnl
define(`downcase', `translit(`$*', `A-Z', `a-z')')dnl
define(`capitalize1',
- `regexp(`$1', `^\(\w\)\(\w*\)', `upcase(`\1')`'downcase(`\2')')')dnl
+ `regexp(`$1', `^\(\w\)\(\w*\)',
+ `upcase(`\1')`'downcase(`\2')')')dnl
define(`capitalize',
`patsubst(`$1', `\w+', `capitalize1(`\&')')')dnl
capitalize(`GNUs not Unix')
@@ -3424,8 +3462,8 @@ Its use is best described by a few examp
@example
define(`foo', `The brown fox jumped over the lazy dog')
@result{}
-format(`The string "%s" is %d characters long', foo, len(foo))
[EMAIL PROTECTED] string "The brown fox jumped over the lazy dog" is 38
characters long
+format(`The string "%s" uses %d characters', foo, len(foo))
[EMAIL PROTECTED] string "The brown fox jumped over the lazy dog" uses 38
characters
@end example
Using the @code{forloop} macro defined in @xref{Loops}, this
@@ -3435,16 +3473,16 @@ example shows how @code{format} can be u
@example
forloop(`i', 1, 10, `format(`%6d squared is %10d
', i, eval(i**2))')
[EMAIL PROTECTED] 1 squared is 1
[EMAIL PROTECTED] 2 squared is 4
[EMAIL PROTECTED] 3 squared is 9
[EMAIL PROTECTED] 4 squared is 16
[EMAIL PROTECTED] 5 squared is 25
[EMAIL PROTECTED] 6 squared is 36
[EMAIL PROTECTED] 7 squared is 49
[EMAIL PROTECTED] 8 squared is 64
[EMAIL PROTECTED] 9 squared is 81
[EMAIL PROTECTED] 10 squared is 100
[EMAIL PROTECTED] 1 squared is 1
[EMAIL PROTECTED] 2 squared is 4
[EMAIL PROTECTED] 3 squared is 9
[EMAIL PROTECTED] 4 squared is 16
[EMAIL PROTECTED] 5 squared is 25
[EMAIL PROTECTED] 6 squared is 36
[EMAIL PROTECTED] 7 squared is 49
[EMAIL PROTECTED] 8 squared is 64
[EMAIL PROTECTED] 9 squared is 81
[EMAIL PROTECTED] 10 squared is 100
@end example
The builtin @code{format} is modeled after the ANSI C @samp{printf}
@@ -3466,8 +3504,8 @@ decrement operations.
@menu
* Incr:: Decrement and increment operators
-* Eval:: Evaluating integer or rational expressions
-* Mpeval::
+* Eval:: Evaluating integer expressions
+* Mpeval:: Multiple precision arithmetic
@end menu
@node Incr
@@ -3610,7 +3648,6 @@ eval(-666, 6, 10)
Take note that @var{radix} cannot be larger than 36.
@node Mpeval
[EMAIL PROTECTED] node-name, next, previous, up
@section Multiple precision arithmetic
When @code{m4} is compiled with a multiple precision arithmetic library
@@ -3631,23 +3668,29 @@ integral.
The builtin macro @code{mpeval} is recognized only when given arguments.
@end deffn
[EMAIL PROTECTED] UNIX commands
[EMAIL PROTECTED] Running UNIX commands
[EMAIL PROTECTED] Shell commands
[EMAIL PROTECTED] Running shell commands
[EMAIL PROTECTED] executing UNIX commands
[EMAIL PROTECTED] running UNIX commands
[EMAIL PROTECTED] executing shell commands
[EMAIL PROTECTED] running shell commands
[EMAIL PROTECTED] shell commands, running
@cindex UNIX commands, running
[EMAIL PROTECTED] commands, running UNIX
-There are a few builtin macros in @code{m4} that allow you to run UNIX
[EMAIL PROTECTED] commands, running shell
+There are a few builtin macros in @code{m4} that allow you to run shell
commands from within @code{m4}.
@menu
+* Platform macros:: Determining the platform
* Syscmd:: Executing simple commands
* Esyscmd:: Reading the output of commands
* Sysval:: Exit codes
* Maketemp:: Making names for temporary files
@end menu
[EMAIL PROTECTED] Platform macros
[EMAIL PROTECTED] Determining the platform
[EMAIL PROTECTED] FIXME - port from branch
+
@node Syscmd
@section Executing simple commands
@@ -3685,7 +3728,7 @@ The builtin macro @code{syscmd} is recog
@cindex GNU extensions
@deffn {Builtin (gnu)} esyscmd (@var{shell-command})
-If you want @code{m4} to read the output of a UNIX command, use
+If you want @code{m4} to read the output of a shell command, use
@code{esyscmd}, which expands to the standard output of the shell
command @var{shell-command}.
@@ -3714,9 +3757,10 @@ arguments.
@node Sysval
@section Exit codes
[EMAIL PROTECTED] exit code from UNIX commands
[EMAIL PROTECTED] exit code from shell commands
[EMAIL PROTECTED] shell commands, exit code from
@cindex UNIX commands, exit code from
[EMAIL PROTECTED] commands, exit code from UNIX
[EMAIL PROTECTED] commands, exit code from shell
@deffn {Builtin (m4)} sysval
To see whether a shell command succeeded, use @code{sysval}, which
expands to the exit status of the last shell command run with
@@ -3827,11 +3871,12 @@ zero.
@comment status: 1
@example
-define(`fatal_error', `errprint(`m4: '__file__: __line__`: fatal error: $*
+define(`fatal_error',
+ `errprint(`m4:'__file__:__line__`: fatal error: $*
')m4exit(1)')
@result{}
fatal_error(`This is a BAD one, buster')
[EMAIL PROTECTED]: input.m4: 3: fatal error: This is a BAD one, buster
[EMAIL PROTECTED]:input.m4:4: fatal error: This is a BAD one, buster
@end example
After this macro call, @code{m4} will exit with exit code 1. This macro
@@ -3860,20 +3905,29 @@ parenthesis.
@end deffn
@node Frozen files
[EMAIL PROTECTED] Fast loading of frozen states
[EMAIL PROTECTED] Fast loading of frozen state
[EMAIL PROTECTED] fast loading of frozen files
[EMAIL PROTECTED] frozen files for fast loading
[EMAIL PROTECTED] initialization, frozen states
[EMAIL PROTECTED] dumping into frozen file
[EMAIL PROTECTED] reloading a frozen file
[EMAIL PROTECTED] GNU extensions
Some bigger @code{m4} applications may be built over a common base
containing hundreds of definitions and other costly initializations.
Usually, the common base is kept in one or more declarative files,
which files are listed on each @code{m4} invocation prior to the
user's input file, or else, @code{include}'d from this input file.
[EMAIL PROTECTED]
+* Using frozen files:: Using frozen files
+* Frozen file format 1:: Frozen file format 1
+* Frozen file format 2:: Frozen file format 2
[EMAIL PROTECTED] menu
+
[EMAIL PROTECTED] Using frozen files
[EMAIL PROTECTED] Using frozen files
+
[EMAIL PROTECTED] fast loading of frozen files
[EMAIL PROTECTED] frozen files for fast loading
[EMAIL PROTECTED] initialization, frozen state
[EMAIL PROTECTED] dumping into frozen file
[EMAIL PROTECTED] reloading a frozen file
[EMAIL PROTECTED] GNU extensions
Reading the common base of a big application, over and over again, may
be time consuming. GNU @code{m4} offers some machinery to speed up
the start of an application using lengthy common bases. Presume the
@@ -3966,6 +4020,16 @@ A frozen file to be reloaded need not re
It is looked up the same way as an @code{include} file (@pxref{Search
Path}).
[EMAIL PROTECTED] Frozen file format 1
[EMAIL PROTECTED] Frozen file format 1
+
+Wow - thanks for really reading the manual. Report this as a bug if
+this text is not removed before a release.
+FIXME - split out the two formats into separate nodes.
+
[EMAIL PROTECTED] Frozen file format 2
[EMAIL PROTECTED] Frozen file format 2
+
Frozen files are sharable across architectures. It is safe to write
a frozen file on one machine and read it on another, given that the
second machine uses the same, or a newer version of GNU @code{m4}.
@@ -4050,7 +4114,7 @@ is made to summarize these here.
@menu
* Extensions:: Extensions in GNU m4
-* Other Incompat:: Other incompatibilities
+* Incompatibilities:: Other incompatibilities
@end menu
@node Extensions
@@ -4143,7 +4207,7 @@ for a description of these options.
Also, the debugging and tracing facilities in GNU @code{m4} are much
more extensive than in most other versions of @code{m4}.
[EMAIL PROTECTED] Other Incompat
[EMAIL PROTECTED] Incompatibilities
@section Other incompatibilities
There are a few other incompatibilities between this implementation of
@@ -4260,7 +4324,7 @@ unproven and might go away. Do not coun
@node Answers
[EMAIL PROTECTED] Answers
[EMAIL PROTECTED] Correct version of some examples
Some of the examples in this manuals are buggy. Correctly working
macros are presented here.
@@ -4280,20 +4344,36 @@ define(`cleardivert',
If called without arguments, it will call undivert without argument,
otherwise they will be passed to undivert().
[EMAIL PROTECTED] ==========================================================
Appendices
+
[EMAIL PROTECTED] Copying This Manual
[EMAIL PROTECTED] Copying This Manual
[EMAIL PROTECTED] License
+
[EMAIL PROTECTED]
+* GNU Free Documentation License:: License for copying this manual
[EMAIL PROTECTED] menu
[EMAIL PROTECTED] fdl.texi
[EMAIL PROTECTED] Indices
[EMAIL PROTECTED] Indices
+
[EMAIL PROTECTED]
+* Concept index:: Index for many concepts
+* Macro index:: Index for all m4 macros
[EMAIL PROTECTED] menu
@node Concept index
[EMAIL PROTECTED] Concept index
[EMAIL PROTECTED] Concept index
@printindex cp
@node Macro index
[EMAIL PROTECTED] Macro index
[EMAIL PROTECTED] Macro index
References are exclusively to the places where a builtin is introduced
-the first time. Names starting and ending with @samp{__} have these
-characters removed in the index.
+the first time.
@iftex
@sp 1
@@ -4301,6 +4381,11 @@ characters removed in the index.
@printindex fn
[EMAIL PROTECTED]
[EMAIL PROTECTED]
@bye
+
[EMAIL PROTECTED] Local Variables:
[EMAIL PROTECTED] fill-column: 72
[EMAIL PROTECTED] ispell-local-dictionary: "american"
[EMAIL PROTECTED] indent-tabs-mode: nil
[EMAIL PROTECTED] whitespace-check-buffer-indent: nil
[EMAIL PROTECTED] End:
Index: ltdl/m4/gnulib-cache.m4
===================================================================
RCS file: /sources/m4/m4/ltdl/m4/gnulib-cache.m4,v
retrieving revision 1.3
diff -u -p -r1.3 gnulib-cache.m4
--- ltdl/m4/gnulib-cache.m4 11 Jul 2006 16:34:16 -0000 1.3
+++ ltdl/m4/gnulib-cache.m4 15 Jul 2006 21:26:23 -0000
@@ -15,10 +15,10 @@
# Specification in the form of a command-line invocation:
-# gnulib-tool --import --dir=. --lib=libgnu --source-base=gnu
--m4-base=ltdl/m4 --doc-base=doc --aux-dir=ltdl/config --libtool
--macro-prefix=M4 assert error exit free gettext mkstemp obstack progname regex
stdbool strtol xalloc xalloc-die xstrndup
+# gnulib-tool --import --dir=. --lib=libgnu --source-base=gnu
--m4-base=ltdl/m4 --doc-base=doc --aux-dir=ltdl/config --libtool
--macro-prefix=M4 assert error exit fdl free gendocs gettext mkstemp obstack
progname regex stdbool strtol xalloc xalloc-die xstrndup
# Specification in the form of a few gnulib-tool.m4 macro invocations:
-gl_MODULES([assert error exit free gettext mkstemp obstack progname regex
stdbool strtol xalloc xalloc-die xstrndup])
+gl_MODULES([assert error exit fdl free gendocs gettext mkstemp obstack
progname regex stdbool strtol xalloc xalloc-die xstrndup])
gl_AVOID([])
gl_SOURCE_BASE([gnu])
gl_M4_BASE([ltdl/m4])
Index: tests/generate.awk
===================================================================
RCS file: /sources/m4/m4/tests/generate.awk,v
retrieving revision 1.13
diff -u -p -r1.13 generate.awk
--- tests/generate.awk 13 Jul 2006 23:35:16 -0000 1.13
+++ tests/generate.awk 15 Jul 2006 21:26:23 -0000
@@ -27,7 +27,7 @@ BEGIN {
# I don't know how to get this file's name, so it's hard coded :(
print "# Do not edit by hand, it was generated by generate.awk.";
print "#";
- print "# Copyright 1992, 2000, 2001 Free Software Foundation, Inc.";
+ print "# Copyright 1992, 2000, 2001, 2006 Free Software Foundation, Inc.";
print ;
print "AT_BANNER([Documentation examples.])";
print ;
@@ -124,6 +124,7 @@ function normalize(contents, i, lines
gsub ("@[{]", "{", line);
gsub ("@}", "}", line);
gsub ("@@", "@", line);
+ gsub ("@tabchar{}", "\t", line);
gsub ("@comment.*", "@\\&t@", line);
# Some of the examples have improperly balanced square brackets.
_______________________________________________
M4-patches mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/m4-patches