m4-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Changes to m4/doc/m4.texinfo,v


From: Eric Blake
Subject: Changes to m4/doc/m4.texinfo,v
Date: Wed, 28 Feb 2007 14:36:23 +0000

CVSROOT:        /sources/m4
Module name:    m4
Changes by:     Eric Blake <ericb>      07/02/28 14:36:22

Index: doc/m4.texinfo
===================================================================
RCS file: /sources/m4/m4/doc/m4.texinfo,v
retrieving revision 1.96
retrieving revision 1.97
diff -u -b -r1.96 -r1.97
--- doc/m4.texinfo      5 Feb 2007 17:31:10 -0000       1.96
+++ doc/m4.texinfo      28 Feb 2007 14:36:22 -0000      1.97
@@ -2265,7 +2265,12 @@
 If a macro with several definitions is redefined with @code{define}, the
 topmost definition is @emph{replaced} with the new definition.  If it is
 removed with @code{undefine}, @emph{all} the definitions are removed,
-and not only the topmost one.
+and not only the topmost one.  However, @acronym{POSIX} allows other
+implementations that treat @code{define} as replacing an entire stack
+of definitions with a single new definition, so to be portable to other
+implementations, it may be worth explicitly using @code{popdef} and
address@hidden rather than relying on the @acronym{GNU} behavior of
address@hidden
 
 @example
 define(`foo', `Expansion one.')
@@ -7311,13 +7316,11 @@
 in traditional programming languages.
 
 @item
-Some implementations of @code{m4} (Solaris for example) conform to
address@hidden, which requires @code{define(@var{macro})} to behave
-like @code{undefine(@var{macro})pushdef(@var{macro})}.  Other
-implementations, including GNU @code{m4} without the @samp{-G} option
-and without @env{POSIXLY_CORRECT} set, treat
address@hidden(@var{macro})} as
address@hidden(@var{macro})pushdef(@var{macro})}.
+Traditional implementations handle @code{define(`f',`1')} (@pxref{Define})
+by undefining the entire stack of previous definitions, and if doing
address@hidden(`f')} first.  @acronym{GNU} @code{m4} replaces just the top
+definition on the stack, as if doing @code{popdef(`f')} followed by
address@hidden(`f',`1')}.  @acronym{POSIX} allows either behavior.
 
 @item
 @acronym{POSIX} states that only unquoted leading newlines and blanks




reply via email to

[Prev in Thread] Current Thread [Next in Thread]