* lib/m4sugar/m4sugar.m4 (_m4_map): New macro.

(m4_map, m4_map_sep): Use it.  Handle the empty list correctly.
This commit is contained in:
Paul Eggert 2005-10-05 21:27:43 +00:00
parent 51f6f59761
commit cf3b3ede92
2 changed files with 11 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2005-10-05 Paul Eggert <eggert@cs.ucla.edu>
* lib/m4sugar/m4sugar.m4 (_m4_map): New macro.
(m4_map, m4_map_sep): Use it. Handle the empty list correctly.
2005-10-04 Stepan Kasal <kasal@ucw.cz>
* lib/autotest/general.m4 (AT_INIT): Really make the subtree writable

View File

@ -398,8 +398,11 @@ m4_define([m4_cdr],
# of LIST (which can be lists themselves, for multiple arguments MACROs).
m4_define([m4_fst], [$1])
m4_define([m4_map],
[m4_if([$2], [[]], [],
[_m4_map([$1], [$2])])])
m4_define([_m4_map],
[m4_ifval([$2],
[$1(m4_fst($2))[]m4_map([$1], m4_cdr($2))])])
[$1(m4_fst($2))[]_m4_map([$1], m4_cdr($2))])])
# m4_map_sep(MACRO, SEPARATOR, LIST)
@ -408,8 +411,8 @@ m4_define([m4_map],
# are the elements of LIST (which can be lists themselves, for multiple
# arguments MACROs).
m4_define([m4_map_sep],
[m4_ifval([$3],
[$1(m4_fst($3))[]m4_map([$2[]$1], m4_cdr($3))])])
[m4_if([$3], [[]], [],
[$1(m4_fst($3))[]_m4_map([$2[]$1], m4_cdr($3))])])
## ---------------------------------------- ##