diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2011-12-14 12:14:56 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2011-12-14 12:14:56 -0800 |
commit | 535e853d369f49f8b45e35cd21dd2f7495445429 (patch) | |
tree | 3649e9f6ede9d9dc6a17ae94603a178ccabd991d /eval.c | |
parent | 2353d721c0a48ace406ad955ab02cb90a52bde11 (diff) | |
download | txr-535e853d369f49f8b45e35cd21dd2f7495445429.tar.gz txr-535e853d369f49f8b45e35cd21dd2f7495445429.tar.bz2 txr-535e853d369f49f8b45e35cd21dd2f7495445429.zip |
* eval.c (op_dohash): Esbatlish anonymous block.
* txr.1: Finished documenting special operators.
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -647,13 +647,19 @@ static val op_dohash(val form, val env) val new_env = make_env(cons(keyvar, cons(valvar, nil)), nil, env); val cell; + uw_block_begin (nil, result); + while ((cell = hash_next(&iter)) != nil) { *cdr_l(keyvar) = car(cell); *cdr_l(valvar) = cdr(cell); eval_progn(body, new_env, form); } - return eval(resform, new_env, form); + result = eval(resform, new_env, form); + + uw_block_end; + + return result; } static val op_unwind_protect(val form, val env) |