Hi,

After the latest patch, pathname-is-executable-p is no longer a simple
function in the sense of SBCL, but has become a closure. Therefore,
sb-impl::%simple-fun-arglist fails at extracting the arglist and
yields a value that isn't even a list.

This problem can be avoided by replacing sb-impl::%simple-fun-arglist
in manual.lisp by sb-introspect:function-arglist which can deal with
all kinds of functions (see the attached patch).

Regards,
Dirk

diff --git a/manual.lisp b/manual.lisp
index f3c5f06..422ffde 100644
--- a/manual.lisp
+++ b/manual.lisp
@@ -26,6 +26,8 @@
 
 (in-package :stumpwm)
 
+(require :sb-introspect)
+
 ;; handy for figuring out which symbol is borking the documentation
 (defun dprint (sym)
   (declare (ignorable sym))
@@ -44,7 +46,7 @@
                                     (*print-pretty* nil))
                                 (format s "@defun {~a} ~{~a~^ ~}~%~a~&@end 
defun~%~%"
                                         name
-                                        #+sbcl (sb-impl::%simple-fun-arglist 
fn)
+                                        #+sbcl (sb-introspect:function-arglist 
fn)
                                         #+clisp (ext:arglist fn)
                                         #- (or sbcl clisp) '("(Check the code 
for args list)")
                                         (documentation fn 'function))
@@ -57,7 +59,7 @@
                                      (*print-pretty* nil))
                                 (format s "@defmac {~a} ~{~a~^ ~}~%~a~&@end 
defmac~%~%"
                                         name
-                                        #+sbcl (sb-impl::%simple-fun-arglist 
(macro-function symbol))
+                                        #+sbcl (sb-introspect:function-arglist 
(macro-function symbol))
                                         #+clisp (ext:arglist symbol)
                                         #- (or sbcl clisp) '("(Check the code 
for args list)")
                                         ;;; FIXME: when clisp compiles
@@ -94,7 +96,7 @@
                               (let ((cmd (symbol-function (find-symbol 
(string-upcase name) :stumpwm))))
                                 (format s "@deffn {Command} ~a ~{~a~^ 
~}~%~a~&@end deffn~%~%"
                                         name
-                                        #+sbcl (sb-impl::%simple-fun-arglist 
cmd)
+                                        #+sbcl (sb-introspect:function-arglist 
cmd)
                                         #+clisp (ext:arglist cmd)
                                         #- (or sbcl clisp) '("(Check the code 
for args list)")
                                         (documentation cmd 'function))
_______________________________________________
Stumpwm-devel mailing list
Stumpwm-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/stumpwm-devel

Reply via email to