CVSROOT: /sources/m4 Module name: m4 Changes by: Eric Blake <ericb> 06/10/19 16:19:20
Index: examples/forloop2.m4 =================================================================== RCS file: examples/forloop2.m4 diff -N examples/forloop2.m4 --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ examples/forloop2.m4 19 Oct 2006 16:19:20 -0000 1.2 @@ -0,0 +1,12 @@ +divert(`-1') +# forloop(var, from, to, stmt) - improved version: +# works even if VAR is not a strict macro name +# performs sanity check that FROM is larger than TO +# allows complex numerical expressions in TO and FROM +define(`forloop', `ifelse(eval(`($3) >= ($2)'), `1', + `pushdef(`$1', eval(`$2'))_forloop(`$1', + eval(`$3'), `$4')popdef(`$1')')') +define(`_forloop', + `$3`'ifelse(indir(`$1'), `$2', `', + `define(`$1', incr(indir(`$1')))$0($@)')') +divert`'dnl
