summaryrefslogtreecommitdiff
path: root/doc/m4.texinfo
diff options
context:
space:
mode:
Diffstat (limited to 'doc/m4.texinfo')
-rw-r--r--doc/m4.texinfo54
1 files changed, 54 insertions, 0 deletions
diff --git a/doc/m4.texinfo b/doc/m4.texinfo
index a5ae162a..dcc6a2da 100644
--- a/doc/m4.texinfo
+++ b/doc/m4.texinfo
@@ -7,6 +7,8 @@
@include version.texi
+@set beta
+
@ifinfo
@format
START-INFO-DIR-ENTRY
@@ -86,9 +88,19 @@ subsequent changes by Fran@,{c}ois Pinard and other volunteers
on the Internet. All names and email addresses can be found in the
file @file{THANKS} from the GNU @code{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. However@dots{}
+@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
+documentation, @dots{} therefore, use at your own peril. In case of
+problems, please do not hesitate to report them (see the README file in
+the distribution).
+@end ifset
@menu
* Preliminaries:: Introduction and preliminaries
@@ -2043,6 +2055,10 @@ Default is all characters expect those in the categories above.
@item Active
Characters that themselves, alone, form macro names. No default.
+@item Escape
+Characters that must precede macro names for them to be recognised. No
+default.
+
@end table
@noindent
@@ -2100,6 +2116,8 @@ Close parenthesis
Argument separator
@item O
Other
+@item @@
+Escape
@item A
Active
@item L
@@ -2164,6 +2182,42 @@ test(a, b, c)
It is not yet possible to redefine the @samp{$} used to indicate macro
arguments in user defined macros.
+Macro calls can be given a @TeX{}- or texinfo like syntax using an
+escape. If one or more characters are defined as escapes macro names
+are only recognised if preceded by an escape character.
+
+If the escape is not followed by what is normally a word (a letter
+optionally followed by letters and/or numerals), that single character
+is returned as a macro name.
+
+As always, words without a macro definition cause no error message.
+They and the escape character are simply output.
+
+@example
+define(`foo', `bar')
+@result{}
+changesyntax(`@@@@')
+@result{}
+foo
+@result{}foo
+@@foo
+@result{}bar
+@@changesyntax(`@@\', `O@@')
+@result{}
+foo
+@result{}foo
+@@foo
+@result{}@@foo
+\foo
+@result{}bar
+define(`#', `No comment')
+@result{}define(#, No comment)
+\define(`#', `No comment')
+@result{}
+\# \foo # Comment \foo
+@result{}No comment bar # Comment \foo
+@end example
+
Active characters are known from @TeX{}. In @code{m4} a active
character is always seen as a one-letter word, and so, if it has a macro
definition, the macro will be called.