mirror of
git://git.sv.gnu.org/autoconf
synced 2025-01-30 11:01:45 +08:00
Reduce blank lines in AC_DEFUN_ONCE macros.
* lib/m4sugar/m4sugar.m4 (m4_defun_once): Avoid redundant blank line when a defun_once macro is required. (_m4_defun_once): New helper macro, for less memory use. * tests/m4sugar.at (m4@&t@_require: nested): Adjust test. Signed-off-by: Eric Blake <ebb9@byu.net>
This commit is contained in:
parent
9c4c7c5ca4
commit
876b3fbfdd
@ -1,5 +1,11 @@
|
||||
2009-01-28 Eric Blake <ebb9@byu.net>
|
||||
|
||||
Reduce blank lines in AC_DEFUN_ONCE macros.
|
||||
* lib/m4sugar/m4sugar.m4 (m4_defun_once): Avoid redundant blank
|
||||
line when a defun_once macro is required.
|
||||
(_m4_defun_once): New helper macro, for less memory use.
|
||||
* tests/m4sugar.at (m4@&t@_require: nested): Adjust test.
|
||||
|
||||
Silence another false positive expand-before-require.
|
||||
* lib/m4sugar/m4sugar.m4 (_m4_defun_pro_outer)
|
||||
(_m4_defun_epi_outer, _m4_require_call, m4_provide): Track name
|
||||
|
@ -1939,12 +1939,17 @@ m4_define([m4_defun_init],
|
||||
#
|
||||
# If _m4_divert_dump is empty, we are called at the top level;
|
||||
# otherwise, we must ensure that we are required in front of the
|
||||
# current defun'd macro.
|
||||
# current defun'd macro. Use a helper macro so that EXPANSION need
|
||||
# only occur once in the definition of NAME, since it might be large.
|
||||
m4_define([m4_defun_once],
|
||||
[m4_define([m4_location($1)], m4_location)]dnl
|
||||
[m4_define([$1], [m4_pushdef([$1])m4_if(_m4_divert_dump, [],
|
||||
[_m4_defun_pro([$1])$2[]_m4_defun_epi([$1])],
|
||||
[_m4_require_call([$1], [$2[]m4_provide([$1])], _m4_divert_dump)])])])
|
||||
[m4_define([$1], [_m4_defun_once([$1], [$2], m4_if(_m4_divert_dump, [],
|
||||
[[_m4_defun_pro([$1])m4_unquote(], [)_m4_defun_epi([$1])]],
|
||||
m4_ifdef([_m4_diverting([$1])], [-]), [-], [[m4_unquote(], [)]],
|
||||
[[_m4_require_call([$1],], [, _m4_divert_dump)]]))])])
|
||||
|
||||
m4_define([_m4_defun_once],
|
||||
[m4_pushdef([$1])$3[$2[]m4_provide([$1])]$4])
|
||||
|
||||
|
||||
# m4_pattern_forbid(ERE, [WHY])
|
||||
@ -1978,8 +1983,9 @@ m4_define([m4_before],
|
||||
# -----------------------------------------------------------
|
||||
# If NAME-TO-CHECK has never been expanded (actually, if it is not
|
||||
# m4_provide'd), expand BODY-TO-EXPAND *before* the current macro
|
||||
# expansion. Once expanded, emit it in _m4_divert_dump. Keep track
|
||||
# of the m4_require chain in _m4_expansion_stack.
|
||||
# expansion; follow the expansion with a newline. Once expanded, emit
|
||||
# it in _m4_divert_dump. Keep track of the m4_require chain in
|
||||
# _m4_expansion_stack.
|
||||
#
|
||||
# The normal cases are:
|
||||
#
|
||||
|
@ -461,8 +461,7 @@ dnl Check m4_defun_once behavior
|
||||
AT_CHECK_M4SUGAR_TEXT([[
|
||||
m4_defun_once([a], [[a]])dnl
|
||||
m4_defun([b], [[b]m4_require([a])])dnl
|
||||
m4_defun([c], [[c]
|
||||
a[]m4_require([b])])dnl
|
||||
m4_defun([c], [[c]a[]m4_require([b])])dnl
|
||||
c
|
||||
a
|
||||
m4_defun_once([d], [[d]m4_require([a])])dnl
|
||||
@ -475,10 +474,8 @@ a
|
||||
b
|
||||
c
|
||||
|
||||
|
||||
d
|
||||
e
|
||||
|
||||
f
|
||||
]])
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user