diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2020-12-29 16:28:54 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2020-12-29 16:28:54 -0800 |
commit | af42ca5ed14d62bed6fa86c92455678d5996d81a (patch) | |
tree | 75de55875d2678127baf131e0576ee3ec63824c7 | |
parent | 1eb0fadc0bad58b3d72bcc5453d45c6089abea36 (diff) | |
download | txr-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.c | 5 | ||||
-rw-r--r-- | share/txr/stdlib/conv.tl | 24 |
2 files changed, 16 insertions, 13 deletions
@@ -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)) |