chiark / gitweb /
Bug fix
[clg] / glib / gtype.lisp
index c82334b3a5f7cfe5714f601c6c757f141214819f..d6b1535ddf3a47e64c133cc0cf45e6e443912e14 100644 (file)
@@ -20,7 +20,7 @@
 ;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 ;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
-;; $Id: gtype.lisp,v 1.56 2006-08-30 11:11:03 espen Exp $
+;; $Id: gtype.lisp,v 1.58 2006-08-31 20:40:56 espen Exp $
 
 (in-package "GLIB")
 
@@ -208,21 +208,25 @@   (defun %find-types-in-library (pathname prefixes ignore)
           (run-program
            "/usr/bin/nm" 
            #+clisp :arguments
-           (list #-darwin"--defined-only" #-darwin"-D" "-g" #+darwin"-f" (namestring (truename pathname)))
+           (list #-darwin"--defined-only" #-darwin"-D" "-g" #+darwin"-f" 
+                 #+darwin"-s" #+darwin"__TEXT" #+darwin"__text" 
+                 (namestring (truename pathname)))
            :output :stream :wait nil)))
       (unwind-protect
          (loop 
-          as symbol = (let* ((line (read-line 
-                                    #+(or cmu sbcl)
-                                    (process-output process)
-                                    #+clisp process
-                                    nil))
-                             (pos (position #\Space line :from-end t)))
-                        (when (and line #+darwin(char= (char line (1- pos)) #\T))
-                          (subseq line (1+ pos))))
-          while symbol
+          as line = (read-line
+                     #+(or cmu sbcl) (process-output process)
+                     #+clisp process
+                     nil)
+          as symbol = (when line
+                        (let ((pos (position #\Space line :from-end t)))
+                          #-darwin(subseq line (1+ pos))
+                          #+darwin
+                          (when (char= (char line (1- pos)) #\T)
+                            (subseq line (+ pos 2)))))
+          while line
           when (and
-                (> (length symbol) 9)
+                symbol (> (length symbol) 9)
                 (or 
                  (not prefixes)
                  (some #'(lambda (prefix)