summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2012-09-25 12:59:05 -0700
committerKaz Kylheku <kaz@kylheku.com>2012-09-25 12:59:05 -0700
commitbaf80248032cdb8856d9e3217d48e9fd5e9e49c5 (patch)
tree216da2229407b80f2f1202588ab32dca2e9dfb5e /eval.c
parentace70c57cc45dac2bdd4fc4c18e0dbacd567aee6 (diff)
downloadtxr-baf80248032cdb8856d9e3217d48e9fd5e9e49c5.tar.gz
txr-baf80248032cdb8856d9e3217d48e9fd5e9e49c5.tar.bz2
txr-baf80248032cdb8856d9e3217d48e9fd5e9e49c5.zip
* eval.c: Allow the test form of a for loop to be omitted,
defaulting to a true test, allowing an infinite loop to be expressed as (for () () () ...). * txr.1: Documented.
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/eval.c b/eval.c
index bc126c72..ff1d846f 100644
--- a/eval.c
+++ b/eval.c
@@ -1010,7 +1010,8 @@ static val op_for(val form, val env)
uw_block_begin (nil, result);
- for (; eval(car(cond), new_env, form); eval_progn(incs, new_env, form))
+ for (; cond == nil || eval(car(cond), new_env, form);
+ eval_progn(incs, new_env, form))
eval_progn(forms, new_env, form);
result = eval_progn(rest(cond), new_env, form);