summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2020-12-29 16:28:54 -0800
committerKaz Kylheku <kaz@kylheku.com>2020-12-29 16:28:54 -0800
commitaf42ca5ed14d62bed6fa86c92455678d5996d81a (patch)
tree75de55875d2678127baf131e0576ee3ec63824c7
parent1eb0fadc0bad58b3d72bcc5453d45c6089abea36 (diff)
downloadtxr-af42ca5ed14d62bed6fa86c92455678d5996d81a.tar.gz
txr-af42ca5ed14d62bed6fa86c92455678d5996d81a.tar.bz2
txr-af42ca5ed14d62bed6fa86c92455678d5996d81a.zip
awk: bugfix: fconv symbols not in usr package.
* share/txr/stdlib/conv.tl (sys:conv-let): Use usr: package prefix on the conversion symbols i, o, x, b. They are being interned in the system package, which breaks the awk fconv macro.
-rw-r--r--lisplib.c5
-rw-r--r--share/txr/stdlib/conv.tl24
2 files changed, 16 insertions, 13 deletions
diff --git a/lisplib.c b/lisplib.c
index b4d6d4c3..6319f040 100644
--- a/lisplib.c
+++ b/lisplib.c
@@ -409,7 +409,10 @@ static val awk_set_entries(val dlt, val fun)
lit("next-file"), lit("rng"), lit("-rng"), lit("rng-"), lit("-rng-"),
lit("--rng"), lit("--rng-"), lit("rng+"), lit("-rng+"), lit("--rng+"),
lit("ff"), lit("f"), lit("mf"), lit("fconv"), lit("->"), lit("->>"),
- lit("<-"), lit("!>"), lit("<!"), lit("prn"), nil
+ lit("<-"), lit("!>"), lit("<!"), lit("prn"),
+ lit("i"), lit("o"), lit("x"), lit("b"), lit("c"), lit("r"),
+ lit("iz"), lit("oz"), lit("xz"), lit("bz"), lit("cz"), lit("rz"),
+ nil
};
set_dlt_entries_sys(dlt, sys_name, fun);
diff --git a/share/txr/stdlib/conv.tl b/share/txr/stdlib/conv.tl
index 7a3551f9..21e76815 100644
--- a/share/txr/stdlib/conv.tl
+++ b/share/txr/stdlib/conv.tl
@@ -25,29 +25,29 @@
;; OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
(defun sys:conv-let (. body)
- ^(flet ((i (arg : radix)
+ ^(flet ((usr:i (arg : radix)
(toint arg radix))
- (o (arg)
+ (usr:o (arg)
(toint arg 8))
- (x (arg)
+ (usr:x (arg)
(toint arg 16))
- (b (arg)
+ (usr:b (arg)
(toint arg 2))
- (c (arg)
+ (usr:c (arg)
(toint arg #\c))
- (r (arg)
+ (usr:r (arg)
(tofloat arg))
- (iz (arg : radix)
+ (usr:iz (arg : radix)
(tointz arg radix))
- (oz (arg)
+ (usr:oz (arg)
(tointz arg 8))
- (xz (arg)
+ (usr:xz (arg)
(tointz arg 16))
- (bz (arg)
+ (usr:bz (arg)
(tointz arg 2))
- (cz (arg)
+ (usr:cz (arg)
(tointz arg #\c))
- (rz (arg)
+ (usr:rz (arg)
(tofloatz arg)))
,*body))