14 lines
545 B
Plaintext
14 lines
545 B
Plaintext
divert(`-1')
|
|
# forloop_arg(from, to, macro) - invoke MACRO(value) for
|
|
# each value between FROM and TO, without define overhead
|
|
define(`forloop_arg', `ifelse(eval(`($1) <= ($2)'), `1',
|
|
`_forloop(`$1', eval(`$2'), `$3(', `)')')')
|
|
# forloop(var, from, to, stmt) - refactored to share code
|
|
define(`forloop', `ifelse(eval(`($2) <= ($3)'), `1',
|
|
`pushdef(`$1')_forloop(eval(`$2'), eval(`$3'),
|
|
`define(`$1',', `)$4')popdef(`$1')')')
|
|
define(`_forloop',
|
|
`$3`$1'$4`'ifelse(`$1', `$2', `',
|
|
`$0(incr(`$1'), `$2', `$3', `$4')')')
|
|
divert`'dnl
|