guile-cvs
[Top][All Lists]
Advanced

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

guile/guile-core/ice-9 session.scm


From: Marius Vollmer
Subject: guile/guile-core/ice-9 session.scm
Date: Sat, 02 Jun 2001 11:32:03 -0700

CVSROOT:        /cvs
Module name:    guile
Changes by:     Marius Vollmer <address@hidden> 01/06/02 11:32:03

Modified files:
        guile-core/ice-9: session.scm 

Log message:
        (apropos-fold, submodules, apropos): Be careful not
        to access unbound variables.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/ice-9/session.scm.diff?cvsroot=OldCVS&tr1=1.28&tr2=1.29&r1=text&r2=text

Patches:
Index: guile/guile-core/ice-9/session.scm
diff -u guile/guile-core/ice-9/session.scm:1.28 
guile/guile-core/ice-9/session.scm:1.29
--- guile/guile-core/ice-9/session.scm:1.28     Fri May 18 10:10:42 2001
+++ guile/guile-core/ice-9/session.scm  Sat Jun  2 11:32:03 2001
@@ -257,12 +257,14 @@
                          (display name)
                          (display ": ")
                          (display (car x))
-                         (cond ((procedure? (variable-ref (cdr x)))
+                         (cond ((variable-bound? (cdr x))
+                                (let ((val (variable-ref (cdr x))))
+                                  (cond ((or (procedure? val) value)
+                                         (display separator)
+                                         (display val)))))
+                               (else
                                 (display separator)
-                                (display (variable-ref (cdr x))))
-                               (value
-                                (display separator)
-                                (display (variable-ref (cdr x)))))
+                                (display "(unbound)")))
                          (if (and shadow
                                   (not (eq? (module-ref module
                                                         (car x))
@@ -313,7 +315,9 @@
                           data)))
                    (module-filter
                     (lambda (name var data)
-                      (obarray-filter name (variable-ref var) data))))
+                      (if (variable-bound? var)
+                          (obarray-filter name (variable-ref var) data)
+                          data))))
               (cond (module (hash-fold module-filter
                                        data
                                        (module-obarray module)))
@@ -352,7 +356,7 @@
 
 (define (submodules m)
   (hash-fold (lambda (name var data)
-              (let ((obj (variable-ref var)))
+              (let ((obj (and (variable-bound? var) (variable-ref var))))
                 (if (and (module? obj)
                          (eq? (module-kind obj) 'directory))
                     (cons obj data)



reply via email to

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