diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2015-11-30 06:11:09 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2015-11-30 06:11:09 -0800 |
commit | d2e883cf32ea9fa82f33768104bc5993bfc60a04 (patch) | |
tree | 66a11ab2a82ffa84b1047c5d2485f53b50acbb4a /eval.c | |
parent | 72955500f8b3a5bc52585d3f24aa3d71bdca3b19 (diff) | |
download | txr-d2e883cf32ea9fa82f33768104bc5993bfc60a04.tar.gz txr-d2e883cf32ea9fa82f33768104bc5993bfc60a04.tar.bz2 txr-d2e883cf32ea9fa82f33768104bc5993bfc60a04.zip |
func-get-name calculates a name for methods.
* eval.c (func_get_name): Use try to use new method_name
function, if unable to get name from the lexical or
global environment for functions.
* struct.c (meth_s): New symbol variable.
(struct_init): Initialize meth_s variable.
(method_name): New function.
* struct.h (method_name): Declared.
* txr.1: Re-documented func-get-name.
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -51,6 +51,7 @@ #include "txr.h" #include "combi.h" #include "lisplib.h" +#include "struct.h" #include "cadr.h" #include "eval.h" @@ -345,7 +346,9 @@ val func_get_name(val fun, val env) return func_get_name(fun, env->e.up_env); } } else { - val name = hash_revget(top_fb, fun, eq_f, cdr_f); + uses_or2; + val name = or2(hash_revget(top_fb, fun, eq_f, cdr_f), + method_name(fun)); if (name) return name; |