diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2011-11-30 16:12:46 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2011-11-30 16:12:46 -0800 |
commit | 3d6cbdfd5e29a48da30493d98e9653d5eebbd9f5 (patch) | |
tree | 15a00ed0a7299c15910b2d0bae4d2a2deae5dd20 /lib.c | |
parent | c6d7aca5df641e419f5b74d14b463901d63fc1f2 (diff) | |
download | txr-3d6cbdfd5e29a48da30493d98e9653d5eebbd9f5.tar.gz txr-3d6cbdfd5e29a48da30493d98e9653d5eebbd9f5.tar.bz2 txr-3d6cbdfd5e29a48da30493d98e9653d5eebbd9f5.zip |
* lib.h (or2): Restore macro version of or2, because we need
the sequencing! Making it an inline function broke the tests.
But we can't have multiple evaluation either, so it's going to use
a temporary lexical variable.
(uses_or2): Macro which declares the lexical variable needed by or2.
* debug.c (debug): add uses_or2.
* eval.c (eval_intrinsic, op_modplace): Likewise.
* lib.c (lazy_str, lazy_str_force_upto, lazy_str_get_trailing_list):
Likewise.
* match.c (h_parallel, v_freeform, v_parallel, v_output): Likewise.
* parser.y (unquotes_occur): Likewise.
* stream.c (format): Likewise.
Diffstat (limited to 'lib.c')
-rw-r--r-- | lib.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -2300,6 +2300,7 @@ val lazy_stream_cons(val stream) val lazy_str(val lst, val term, val limit) { + uses_or2; val obj = make_obj(); obj->ls.type = LSTR; @@ -2344,6 +2345,7 @@ val lazy_str_force(val lstr) val lazy_str_force_upto(val lstr, val index) { + uses_or2; val lim; type_check(lstr, LSTR); lim = cdr(lstr->ls.opts); @@ -2460,6 +2462,7 @@ val lazy_str_get_trailing_list(val lstr, val index) lazy_str_force_upto(lstr, index); { + uses_or2; val split_suffix = split_str(sub_str(lstr->ls.prefix, index, nil), or2(car(lstr->ls.opts), string(L"\n"))); |