summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormathieu2em <math.per@hotmail.com>2019-07-23 14:47:40 -0400
committermathieu2em <math.per@hotmail.com>2019-08-20 15:31:38 -0400
commita98abdcf233e62f87ee5a3e87046ca5995ddd75a (patch)
tree640cfa67d46633368ed1051fd34966b9628718a1
parentefea09184eed27ca9a86e1a96a39203326633616 (diff)
downloadgeiser-guile-a98abdcf233e62f87ee5a3e87046ca5995ddd75a.tar.gz
geiser-guile-a98abdcf233e62f87ee5a3e87046ca5995ddd75a.tar.bz2
fix a problem with non-procedures symbols from ##symbol-table completion
-rw-r--r--scheme/gambit/geiser/gambit.scm10
1 files changed, 7 insertions, 3 deletions
diff --git a/scheme/gambit/geiser/gambit.scm b/scheme/gambit/geiser/gambit.scm
index b13d5e3..ee307f3 100644
--- a/scheme/gambit/geiser/gambit.scm
+++ b/scheme/gambit/geiser/gambit.scm
@@ -125,18 +125,22 @@
(symbols-list '()))
(if (< i sym-len)
(let ((sym (vector-ref sym-tab i)))
+ (pp sym)
(loop (+ i 1)
(if (symbol? sym)
- (let loop2 ((sym-list (if (##string-prefix? prefix sym)
+ (let loop2 ((sym-list (if (and (##string-prefix? prefix sym)
+ (procedure? (##global-var-ref (##make-global-var sym))))
(cons (symbol->string sym) symbols-list)
symbols-list))
(vect sym))
(let ((sym2 (##vector-ref vect 2)))
+ (pp sym2)
(if (symbol? sym2)
- (if (##string-prefix? prefix sym2)
+ (if (and (##string-prefix? prefix sym2)
+ (procedure? (##global-var-ref (##make-global-var sym))))
(loop2 (cons (symbol->string sym2) sym-list) sym2)
(loop2 sym-list sym2))
- sym-list)))
+ sym-list)))
symbols-list)))
symbols-list))))