emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/geiser-kawa 11c8415 037/119: Fix (workaround) autodoc for


From: Philip Kaludercic
Subject: [nongnu] elpa/geiser-kawa 11c8415 037/119: Fix (workaround) autodoc for certain symbol names
Date: Sun, 1 Aug 2021 18:30:34 -0400 (EDT)

branch: elpa/geiser-kawa
commit 11c84155973bbdc4d65b461f475494da0da313e4
Author: spellcard199 <spellcard199@protonmail.com>
Commit: spellcard199 <spellcard199@protonmail.com>

    Fix (workaround) autodoc for certain symbol names
---
 src/main/java/kawageiser/GeiserAutodoc.java | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/main/java/kawageiser/GeiserAutodoc.java 
b/src/main/java/kawageiser/GeiserAutodoc.java
index 747bbd2..5a49a46 100644
--- a/src/main/java/kawageiser/GeiserAutodoc.java
+++ b/src/main/java/kawageiser/GeiserAutodoc.java
@@ -9,7 +9,10 @@ import gnu.expr.CompiledProc;
 import gnu.expr.Language;
 import gnu.kawa.functions.Format;
 import gnu.lists.LList;
-import gnu.mapping.*;
+import gnu.mapping.Environment;
+import gnu.mapping.Procedure;
+import gnu.mapping.Procedure1or2;
+import gnu.mapping.Symbol;
 import kawadevutil.data.ParamData;
 import kawadevutil.data.ProcDataGeneric;
 import kawadevutil.data.ProcDataNonGeneric;
@@ -207,7 +210,12 @@ public class GeiserAutodoc extends Procedure1or2 {
             Object operator = null;
             boolean symExists = false;
             try {
-                operator = lang.eval(symId.toString());
+                // env.get(symId) works with the < procedure, while 
lang.eval(symId.toString())
+                // raises NullPointerException (maybe a bug?).
+                // On the other hand, env.get(symId) does not work with 
procedures defined
+                // from java with lang.defineFunction(), like the various 
geiser:...
+                // Since kawadevutil's eval works for both we are using that 
for now.
+                operator = GeiserEval.evaluator.eval(lang, env, 
symId).getResult();
                 symExists = true;  // If it didn't exist env.get(symId) would 
have raised UnboundLocationException
                 if (!Procedure.class.isAssignableFrom(operator.getClass())) {
                     // Not a procedure



reply via email to

[Prev in Thread] Current Thread [Next in Thread]