CVSROOT:        /sources/m4
Module name:    m4
Branch:         branch-1_4
Changes by:     Eric Blake <ericb>      07/02/28 14:35:28

Index: doc/m4.texinfo
===================================================================
RCS file: /sources/m4/m4/doc/m4.texinfo,v
retrieving revision 1.1.1.1.2.116
retrieving revision 1.1.1.1.2.117
diff -u -b -r1.1.1.1.2.116 -r1.1.1.1.2.117
--- doc/m4.texinfo      28 Feb 2007 13:48:18 -0000      1.1.1.1.2.116
+++ doc/m4.texinfo      28 Feb 2007 14:35:28 -0000      1.1.1.1.2.117
@@ -2002,7 +2002,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
[EMAIL PROTECTED] rather than relying on the @acronym{GNU} behavior of
[EMAIL PROTECTED]
 
 @example
 define(`foo', `Expansion one.')
@@ -5885,7 +5890,7 @@
 by undefining the entire stack of previous definitions, and if doing
 @code{undefine(`f')} first.  @acronym{GNU} @code{m4} replaces just the top
 definition on the stack, as if doing @code{popdef(`f')} followed by
[EMAIL PROTECTED](`f',`1')}.
[EMAIL PROTECTED](`f',`1')}.  @acronym{POSIX} allows either behavior.
 
 @item
 @acronym{POSIX} requires @code{syscmd} (@pxref{Syscmd}) to evaluate


Reply via email to