diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2019-08-20 20:10:43 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2019-08-20 20:10:43 -0700 |
commit | 0689691933695945e2f8f4ddd160da958bde936f (patch) | |
tree | 726a5d0d5f4dcd8eeae6d1845bb66357866679b8 /lib.c | |
parent | 607f0d271211e37d96ce7ba50a3f69372c000779 (diff) | |
download | txr-0689691933695945e2f8f4ddd160da958bde936f.tar.gz txr-0689691933695945e2f8f4ddd160da958bde936f.tar.bz2 txr-0689691933695945e2f8f4ddd160da958bde936f.zip |
New function: intern-fb.
To accompany find-symbol-fb, there is intern-fb, which is like
intern, but searches the fallback list.
* eval.c (eval_init): Register intern-fb intrinsic.
* lib.c (intern_fallback_intrinsic): New function. Does
defaulting and error checks, then calls intern_fallback, just
like intern_intrinsic calls intern.
* lib.h (intern_fallback_intrinsic): Declared.
* txr.1: Documented.
Diffstat (limited to 'lib.c')
-rw-r--r-- | lib.c | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -5532,6 +5532,17 @@ val intern_fallback(val str, val package) } } +val intern_fallback_intrinsic(val str, val package_in) +{ + val self = lit("intern-fallback"); + val package = get_package(self, package_in, nil); + + if (!stringp(str)) + uw_throwf(error_s, lit("~a: name ~s isn't a string"), self, str, nao); + + return intern_fallback(str, package); +} + val symbolp(val sym) { switch (type(sym)) { |