File: forloop2.m4

package info (click to toggle)
m4 1.4.20-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 22,548 kB
  • sloc: ansic: 141,981; sh: 14,996; cpp: 2,200; lisp: 243; makefile: 165; sed: 16
file content (12 lines) | stat: -rw-r--r-- 473 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
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(`($2) <= ($3)'), `1',
  `pushdef(`$1')_$0(`$1', eval(`$2'),
    eval(`$3'), `$4')popdef(`$1')')')
define(`_forloop',
  `define(`$1', `$2')$4`'ifelse(`$2', `$3', `',
    `$0(`$1', incr(`$2'), `$3', `$4')')')
divert`'dnl