summaryrefslogtreecommitdiffstats
path: root/lib.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2011-11-30 16:12:46 -0800
committerKaz Kylheku <kaz@kylheku.com>2011-11-30 16:12:46 -0800
commit3d6cbdfd5e29a48da30493d98e9653d5eebbd9f5 (patch)
tree15a00ed0a7299c15910b2d0bae4d2a2deae5dd20 /lib.c
parentc6d7aca5df641e419f5b74d14b463901d63fc1f2 (diff)
downloadtxr-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.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib.c b/lib.c
index a605a556..1989e437 100644
--- a/lib.c
+++ b/lib.c
@@ -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")));