summaryrefslogtreecommitdiffstats
path: root/lib.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2015-07-22 07:14:07 -0700
committerKaz Kylheku <kaz@kylheku.com>2015-07-22 07:14:07 -0700
commit9d2a3e3ba7e75d200ee1d9ece7c2accd7451a960 (patch)
tree75e2a8316f32ca87cc16f7bea194e015e7dd931c /lib.c
parent954fc9f3e77125d3978dc41a48aae94e9a4d9eef (diff)
downloadtxr-9d2a3e3ba7e75d200ee1d9ece7c2accd7451a960.tar.gz
txr-9d2a3e3ba7e75d200ee1d9ece7c2accd7451a960.tar.bz2
txr-9d2a3e3ba7e75d200ee1d9ece7c2accd7451a960.zip
* lib.c (obj_print, obj_pprint): Bugfix: incorrect
value returned when printing dwim forms, due to mutating the obj variable.
Diffstat (limited to 'lib.c')
-rw-r--r--lib.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib.c b/lib.c
index eba06a71..9bcce5e4 100644
--- a/lib.c
+++ b/lib.c
@@ -6883,6 +6883,7 @@ val obj_print(val obj, val out)
case CONS:
case LCONS:
{
+ val obj_in = obj;
val sym = car(obj);
if (sym == quote_s && consp(cdr(obj)) && !(cdr(cdr(obj)))) {
@@ -6949,8 +6950,8 @@ finish:
}
}
}
+ return obj_in;
}
- return obj;
case LIT:
case STR:
{
@@ -7077,6 +7078,7 @@ val obj_pprint(val obj, val out)
case CONS:
case LCONS:
{
+ val obj_in = obj;
val sym = car(obj);
if (sym == quote_s && consp(cdr(obj)) && !(cdr(cdr(obj)))) {
@@ -7143,8 +7145,8 @@ finish:
}
}
}
+ return obj_in;
}
- return obj;
case LIT:
case STR:
put_string(obj, out);