summaryrefslogtreecommitdiff
path: root/examples/forloop2.m4
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2013-09-22 07:04:10 +0000
committer <>2015-02-02 12:02:31 +0000
commit23c11479b3ad787adc7a651ee0c4347839e47723 (patch)
tree3aa9e1125da84f7e3bd764bbff577c42a766508b /examples/forloop2.m4
downloadm4-tarball-master.tar.gz
Imported from /home/lorry/working-area/delta_m4-tarball/m4-1.4.17.tar.xz.HEADm4-1.4.17master
Diffstat (limited to 'examples/forloop2.m4')
-rw-r--r--examples/forloop2.m412
1 files changed, 12 insertions, 0 deletions
diff --git a/examples/forloop2.m4 b/examples/forloop2.m4
new file mode 100644
index 0000000..b7154e8
--- /dev/null
+++ b/examples/forloop2.m4
@@ -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(`($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