[mcclim-cvs] CVS mcclim

thenriksen thenriksen at common-lisp.net
Fri Dec 21 12:31:56 UTC 2007


Update of /project/mcclim/cvsroot/mcclim
In directory clnet:/tmp/cvs-serv32321

Modified Files:
	mcclim.asd 
Log Message:
Added nasty hack to inform CLISP users of their sub-par CLX, and offer a fix.


--- /project/mcclim/cvsroot/mcclim/mcclim.asd	2007/12/20 08:07:16	1.65
+++ /project/mcclim/cvsroot/mcclim/mcclim.asd	2007/12/21 12:31:56	1.66
@@ -383,6 +383,19 @@
                (:file "medium" :depends-on ("port" "keysyms" "package"))
                (:file "graft" :depends-on ("port" "package"))
                (:file "frame-manager" :depends-on ("medium" "port" "package"))))))
+#+clisp
+(defmethod asdf::traverse :around ((op compile-op) (c (eql (find-system :clim-clx))))
+  ;; Just some random symbol I know is unexported in CLISP's CLX.
+  (if (eq (nth-value 1 (find-symbol "SET-SELECTION-OWNER" :xlib))
+       :external)
+      (call-next-method)
+      (restart-case (error "Your CLX is not capable of running the McCLIM CLX backend")
+        (load-clx-via-asdf ()
+         :report "Try replacing your CLX with a CLX loaded through ASDF, hopefully this will be Telent CLX."
+         (ext:without-package-lock ("XLIB")
+           (delete-package :xlib)
+           (asdf:oos 'asdf:load-op :clx))
+         (call-next-method)))))
 
 (defsystem :clim-beagle
   :depends-on (clim)




More information about the Mcclim-cvs mailing list