/[mcclim]/mcclim/mcclim.asd
ViewVC logotype

Diff of /mcclim/mcclim.asd

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.84 by rschlatte, Fri May 16 14:05:07 2008 UTC revision 1.85 by rgoldman, Wed Feb 27 21:53:36 2013 UTC
# Line 4  Line 4 
4  ;;;  (c) copyright 2000 by  ;;;  (c) copyright 2000 by
5  ;;;           Robert Strandh (strandh@labri.u-bordeaux.fr)  ;;;           Robert Strandh (strandh@labri.u-bordeaux.fr)
6  ;;;  (c) copyright 2005 by  ;;;  (c) copyright 2005 by
7  ;;;           Andreas Fuchs (asf@boinkor.net)  ;;;           Andreas Fuchs (asf@boinkor.net)
8  ;;;  ;;;
9  ;;; This library is free software; you can redistribute it and/or  ;;; This library is free software; you can redistribute it and/or
10  ;;; modify it under the terms of the GNU Library General Public  ;;; modify it under the terms of the GNU Library General Public
# Line 36  Line 36 
36    (defun find-swank-package ()    (defun find-swank-package ()
37      (find-package :swank))      (find-package :swank))
38    (defun find-swank-system ()    (defun find-swank-system ()
39      (handler-case (asdf:find-system :swank)      (handler-case (find-system :swank)
40        (asdf:missing-component ())))        (missing-component ())))
41    (defun find-swank ()    (defun find-swank ()
42      (or (find-swank-package)      (or (find-swank-package)
43          (find-swank-system)))          (find-swank-system)))
# Line 57  Line 57 
57    (unless (fboundp 'ext:stream-read-char)    (unless (fboundp 'ext:stream-read-char)
58      (unless (ignore-errors (ext:search-list "gray-streams:"))      (unless (ignore-errors (ext:search-list "gray-streams:"))
59        (setf (ext:search-list "gray-streams:")        (setf (ext:search-list "gray-streams:")
60          '("target:pcl/" "library:subsystems/")))          '("target:pcl/" "library:subsystems/")))
61      (if (fboundp 'extensions:without-package-locks)      (if (fboundp 'extensions:without-package-locks)
62          (extensions:without-package-locks          (extensions:without-package-locks
63           (load "gray-streams:gray-streams-library"))           (load "gray-streams:gray-streams-library"))
64        (load "gray-streams:gray-streams-library")))        (load "gray-streams:gray-streams-library")))
65    #-(or clx clim-gtkairo clim-graphic-forms)    #-(or clx clim-gtkairo clim-graphic-forms)
66    (require :clx)    (require :clx)
67    #+mp (when (eq mp::*initial-process* mp::*current-process*)    #+mp (when (eq mp::*initial-process* mp::*current-process*)
68           (format t "~%~%You need to run (mp::startup-idle-and-top-level-loops) to start up the multiprocessing support.~%~%")))           (format t "~%~%You need to run (mp::startup-idle-and-top-level-loops) to start up the multiprocessing support.~%~%")))
69    
70  ;;; Make CLX asdf-loadable on Allegro 6.2  ;;; Make CLX asdf-loadable on Allegro 6.2
71  ;;; possibly this should be further refined to funciton properly for  ;;; possibly this should be further refined to function properly for
72  ;;; Allegro on Windows platforms. [2005/04/18:rpg]  ;;; Allegro on Windows platforms. [2005/04/18:rpg]
73    
74  #+allegro  #+allegro
75  (progn  (defsystem :clx
76    (defclass requireable-system (asdf:system)    :components ((:file "require-clx")))
     ())  
   (defmethod asdf:perform ((op asdf:load-op) (system requireable-system))  
     (require (intern (slot-value system 'asdf::name) :keyword)))  
   (defmethod asdf::traverse ((op asdf:load-op) (system requireable-system))  
     (list (cons op system)))  
   (defsystem :clx  
     :class requireable-system))  
77    
78  ;;; Clozure CL native GUI stuff  ;;; Clozure CL native GUI stuff
79  #+clim-beagle  #+clim-beagle
80  (require :cocoa)  (require :cocoa)
81    
 (defmacro clim-defsystem ((module &key depends-on) &rest components)  
   `(progn  
      (asdf:defsystem ,module  
          ,@(and depends-on  
                 `(:depends-on ,depends-on))  
          :serial t  
          :components  
          (,@(loop for c in components  
                   for p = (merge-pathnames  
                            (parse-namestring c)  
                            (make-pathname :type "lisp"  
                                           :defaults *clim-directory*))  
                   collect `(:file ,(namestring p) :pathname ,p))))))  
   
82  (defsystem :clim-lisp  (defsystem :clim-lisp
83      :components      :components
84    (;; First possible patches    (;; First possible patches
# Line 108  Line 87 
87              :depends-on ("patch")              :depends-on ("patch")
88              :components              :components
89              ((:file   #+cmu       "fix-cmu"              ((:file   #+cmu       "fix-cmu"
90                        #+scl       "fix-scl"                        #+scl       "fix-scl"
91                        #+excl      "fix-acl"                        #+excl      "fix-acl"
92                        #+sbcl      "fix-sbcl"                        #+sbcl      "fix-sbcl"
93                        #+openmcl   "fix-openmcl"                        #+openmcl   "fix-openmcl"
# Line 119  Line 98 
98  (defsystem :clim-basic  (defsystem :clim-basic
99      :depends-on (:clim-lisp :spatial-trees (:version "flexichain" "1.5.1"))      :depends-on (:clim-lisp :spatial-trees (:version "flexichain" "1.5.1"))
100      :components ((:file "decls")      :components ((:file "decls")
101                   (:file "protocol-classes" :depends-on ("decls"))                   (:file "protocol-classes" :depends-on ("decls"))
102                   (:module "Lisp-Dep"                   (:module "Lisp-Dep"
103                            :depends-on ("decls")                            :depends-on ("decls")
104                            :components                            :components
# Line 167  Line 146 
146                                                                     "transforms" "sheets" "stream-output"                                                                     "transforms" "sheets" "stream-output"
147                                                                     "ports" "recording" "regions"                                                                     "ports" "recording" "regions"
148                                                                     "events"))                                                                     "events"))
149                   (:file "bezier" :depends-on ("recording"))))                   (:file "bezier" :depends-on ("recording"))))
150    
151  (defsystem :goatee-core  (defsystem :goatee-core
152      :depends-on (:clim-basic)      :depends-on (:clim-basic)
# Line 201  Line 180 
180    :depends-on (:clim-basic)    :depends-on (:clim-basic)
181    :components    :components
182    ((:module "Backends/PostScript"    ((:module "Backends/PostScript"
             :pathname #.(make-pathname :directory '(:relative "Backends" "PostScript"))  
183              :components              :components
184              ((:file "package")              ((:file "package")
185               (:file "encoding" :depends-on ("package"))               (:file "encoding" :depends-on ("package"))
# Line 268  Line 246 
246  (defsystem :drei-mcclim  (defsystem :drei-mcclim
247    :depends-on ((:version "flexichain" "1.5.1") :esa-mcclim :clim-core #+#.(mcclim.system::dep-on-swank) :swank)    :depends-on ((:version "flexichain" "1.5.1") :esa-mcclim :clim-core #+#.(mcclim.system::dep-on-swank) :swank)
248    :components    :components
249    ((:module "cl-automaton"    ((:module "Drei/cl-automaton"
250              :pathname #.(make-pathname :directory '(:relative "Drei" "cl-automaton"))              :components ((:file "automaton-package")
251              :components ((:file "automaton-package")                           (:file "eqv-hash" :depends-on ("automaton-package"))
252                           (:file "eqv-hash" :depends-on ("automaton-package"))                           (:file "state-and-transition" :depends-on ("eqv-hash"))
253                           (:file "state-and-transition" :depends-on ("eqv-hash"))                           (:file "automaton" :depends-on ("state-and-transition" "eqv-hash"))
254                           (:file "automaton" :depends-on ("state-and-transition" "eqv-hash"))                           (:file "regexp" :depends-on ("automaton"))))
255                           (:file "regexp" :depends-on ("automaton"))))     (:module "Drei/Persistent"
    (:module "Persistent"  
             :pathname #.(make-pathname :directory '(:relative "Drei" "Persistent"))  
256              :components ((:file "binseq-package")              :components ((:file "binseq-package")
257                           (:file "binseq" :depends-on ("binseq-package"))                           (:file "binseq" :depends-on ("binseq-package"))
258                           (:file "obinseq" :depends-on ("binseq-package" "binseq"))                           (:file "obinseq" :depends-on ("binseq-package" "binseq"))
259                           (:file "binseq2" :depends-on ("binseq-package" "obinseq" "binseq"))))                           (:file "binseq2" :depends-on ("binseq-package" "obinseq" "binseq"))))
260     (:module "Drei" :depends-on ("cl-automaton" "Persistent")     (:module "Drei" :depends-on ("Drei/cl-automaton" "Drei/Persistent")
261              :components ((:file "packages")              :components ((:file "packages")
262                           (:file "buffer" :depends-on ("packages"))                           (:file "buffer" :depends-on ("packages"))
263                           (:file "delegating-buffer" :depends-on ("packages" "buffer"))                           (:file "delegating-buffer" :depends-on ("packages" "buffer"))
264                           (:file "motion" :depends-on ("packages" "buffer" "syntax"))                           (:file "motion" :depends-on ("packages" "buffer" "syntax"))
265                           (:file "editing" :depends-on ("packages" "buffer" "syntax" "motion" "kill-ring"))                           (:file "editing" :depends-on ("packages" "buffer" "syntax" "motion" "kill-ring"))
266                           (:file "base" :depends-on ("packages" "buffer" "persistent-buffer" "kill-ring"                           (:file "base" :depends-on ("packages" "buffer" "Persistent/persistent-buffer" "kill-ring"
267                                                                 "delegating-buffer"))                                                                 "delegating-buffer"))
268                           (:file "syntax" :depends-on ("packages" "buffer" "base"))                           (:file "syntax" :depends-on ("packages" "buffer" "base"))
269                           (:file "modes" :depends-on ("packages" "syntax"))                           (:file "modes" :depends-on ("packages" "syntax"))
270                           (:file "views" :depends-on ("packages" "buffer" "base" "syntax" "persistent-undo"                           (:file "views" :depends-on ("packages" "buffer" "base" "syntax" "Persistent/persistent-undo"
271                                                                  "persistent-buffer" "undo" "abbrev"                                                                  "Persistent/persistent-buffer" "undo" "abbrev"
272                                                                  "delegating-buffer" "modes"))                                                                  "delegating-buffer" "modes"))
273                           (:file "drei" :depends-on ("packages" "views" "motion" "editing"))                           (:file "drei" :depends-on ("packages" "views" "motion" "editing"))
274                           (:file "drei-clim" :depends-on ("drei"))                           (:file "drei-clim" :depends-on ("drei"))
# Line 309  Line 285 
285                           (:file "rectangle" :depends-on ("core"))                           (:file "rectangle" :depends-on ("core"))
286                           (:file "targets" :depends-on ("core"))                           (:file "targets" :depends-on ("core"))
287                           (:file "core-commands" :depends-on ("core" "rectangle" "drei-clim"))                           (:file "core-commands" :depends-on ("core" "rectangle" "drei-clim"))
288                           (:file "persistent-buffer"                           (:file "Persistent/persistent-buffer" :depends-on ("packages"))
289                                  :pathname #.(make-pathname :directory '(:relative "Persistent")                           (:file "Persistent/persistent-undo"
290                                                             :name "persistent-buffer"                                  :depends-on ("packages" "buffer" "Persistent/persistent-buffer" "undo"))
                                                            :type "lisp")  
                                 :depends-on ("packages"))  
                          (:file "persistent-undo"  
                                 :pathname #p"Persistent/persistent-undo.lisp"  
                                 :depends-on ("packages" "buffer" "persistent-buffer" "undo"))  
291                           (:file "misc-commands" :depends-on ("basic-commands"))                           (:file "misc-commands" :depends-on ("basic-commands"))
292                           (:file "search-commands" :depends-on ("core" "targets" "drei-clim"))                           (:file "search-commands" :depends-on ("core" "targets" "drei-clim"))
293                           (:file "lr-syntax" :depends-on ("fundamental-syntax" "core" "drawing-options"))                           (:file "lr-syntax" :depends-on ("fundamental-syntax" "core" "drawing-options"))
# Line 328  Line 299 
299  (defsystem :drei-tests  (defsystem :drei-tests
300    :depends-on (:drei-mcclim :fiveam)    :depends-on (:drei-mcclim :fiveam)
301    :components    :components
302    ((:module "Tests"    ((:module "Drei/Tests"
             :pathname #.(make-pathname :directory '(:relative "Drei" "Tests"))  
303              :components              :components
304              ((:module              ((:module
305                "cl-automaton"                "cl-automaton"
# Line 356  Line 326 
326  (defsystem :clim  (defsystem :clim
327    :depends-on (:clim-core :goatee-core :clim-postscript :drei-mcclim)    :depends-on (:clim-core :goatee-core :clim-postscript :drei-mcclim)
328    :components    :components
329    ((:file "Goatee/presentation-history" ; XXX: this is loaded as part of the Goatee system. huh?    (;;(:file "Goatee/presentation-history") ; XXX: this is loaded as part of the Goatee system. huh?
           :pathname #.(make-pathname :directory '(:relative "Goatee") :name "presentation-history" :type "lisp"))  
330     (:file "input-editing-goatee")     (:file "input-editing-goatee")
331     (:file "input-editing-drei")     (:file "input-editing-drei")
332     (:file "text-editor-gadget")     (:file "text-editor-gadget")
333     (:file "Extensions/tab-layout"     (:file "Extensions/tab-layout")))
334            :pathname #.(make-pathname :directory '(:relative "Extensions")  
335                                       :name "tab-layout"))))  #+clisp
336    (when (and (find-package :xlib)
337               ;; Just some random symbol I know is unexported in CLISP's CLX.
338               (not (eq (nth-value 1 (find-symbol "SET-SELECTION-OWNER" :xlib)) :external)))
339      (warn "~@<CLISP provided you a CLX that is not capable of running the McCLIM CLX backend.
340    Deleting it, that it may be replaced with a working one.~@:>")
341      (ext:without-package-lock ("XLIB")
342        (delete-package :xlib)))
343    
344    
345  (defsystem :clim-clx  (defsystem :clim-clx
346      :depends-on (:clim #+(or sbcl openmcl ecl allegro) :clx)    :depends-on (:clim #+(or sbcl openmcl ecl clisp allegro) :clx)
347      :components
348      ((:module "Backends/CLX"
349      :components      :components
350      ((:module "Backends/CLX"      ((:file "package")
351                :pathname #.(make-pathname :directory '(:relative "Backends" "CLX"))       (:file "image" :depends-on ("package"))
352                :components       (:file "keysyms-common" :depends-on ("package"))
353                ((:file "package")       (:file "keysyms" :depends-on ("keysyms-common" "package"))
354                 (:file "image" :depends-on ("package"))       (:file "keysymdef" :depends-on ("keysyms-common" "package"))
355                 (:file "keysyms-common" :depends-on ("package"))       (:file "port" :depends-on ("keysyms-common" "keysyms" "package"))
356                 (:file "keysyms" :depends-on ("keysyms-common" "package"))       (:file "medium" :depends-on ("port" "keysyms" "package"))
357                 (:file "keysymdef" :depends-on ("keysyms-common" "package"))       (:file "graft" :depends-on ("port" "package"))
358                 (:file "port" :depends-on ("keysyms-common" "keysyms" "package"))       (:file "frame-manager" :depends-on ("medium" "port" "package"))))))
                (: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)))))  
359    
360  (defsystem :clim-beagle  (defsystem :clim-beagle
361    :depends-on (clim)    :depends-on (clim)
# Line 456  Line 419 
419                  :components ((:file "profile")))                  :components ((:file "profile")))
420                 (:module "tests"                 (:module "tests"
421                  :components ((:file "drawing-tests")                  :components ((:file "drawing-tests")
422                               (:file "graft-tests"))))))))                               (:file "graft-tests")))))))))
423  )  
424    
425  (defsystem :clim-null  (defsystem :clim-null
426      :depends-on (:clim)      :depends-on (:clim)
427      :components      :components
428      ((:module "Backends/Null"      ((:module "Backends/Null"
429                :pathname #.(make-pathname :directory '(:relative "Backends" "Null"))                :components
430                :components                ((:file "package")
431                ((:file "package")                 (:file "port" :depends-on ("package"))
432                 (:file "port" :depends-on ("package"))                 (:file "medium" :depends-on ("port" "package"))
433                 (:file "medium" :depends-on ("port" "package"))                 (:file "graft" :depends-on ("port" "package"))
434                 (:file "graft" :depends-on ("port" "package"))                 (:file "frame-manager" :depends-on ("medium" "port" "package"))))))
                (:file "frame-manager" :depends-on ("medium" "port" "package"))))))  
435    
436  (defsystem :clim-gtkairo  (defsystem :clim-gtkairo
437      :depends-on (:clim :cffi)      :depends-on (:clim :cffi)
438      :components      :components
439      ((:module "Backends/gtkairo"      ((:module "Backends/gtkairo"
440                :pathname #.(make-pathname :directory '(:relative "Backends" "gtkairo"))                :serial t                 ;asf wird's ja richten
441                :serial t                 ;asf wird's ja richten                :components
442                :components                ((:file "clim-fix")
443                ((:file "clim-fix")                 (:file "package")
444                 (:file "package")                 (:file "gtk-ffi")
445                 (:file "gtk-ffi")                 (:file "cairo-ffi")
446                 (:file "cairo-ffi")                 (:file "ffi")
447                 (:file "ffi")                 (:file "graft")
448                 (:file "graft")                 (:file "port")
449                 (:file "port")                 (:file "event")
450                 (:file "event")                 (:file "keys")
451                 (:file "keys")                 (:file "medium")
452                 (:file "medium")                 (:file "pango")
453                 (:file "pango")                 (:file "cairo")
454                 (:file "cairo")                 (:file "gdk")
455                 (:file "gdk")                 (:file "pixmap")
456                 (:file "pixmap")                 (:file "frame-manager")
457                 (:file "frame-manager")                 (:file "gadgets")))))
                (:file "gadgets")))))  
458    
459  (defsystem :clim-graphic-forms  (defsystem :clim-graphic-forms
460      :depends-on (:clim :graphic-forms-uitoolkit)      :depends-on (:clim :graphic-forms-uitoolkit)
461      :components      :components
462      ((:module "Backends/Graphic-Forms"      ((:module "Backends/Graphic-Forms"
463                :pathname #.(make-pathname :directory '(:relative "Backends" "Graphic-Forms"))                :components
464                :components                ((:file "package")
               ((:file "package")  
465           (:file "utils" :depends-on ("package"))           (:file "utils" :depends-on ("package"))
466                 (:file "graft" :depends-on ("package"))                 (:file "graft" :depends-on ("package"))
467                 (:file "port" :depends-on ("utils" "graft"))                 (:file "port" :depends-on ("utils" "graft"))
468                 (:file "medium" :depends-on ("port"))                 (:file "medium" :depends-on ("port"))
469           (:file "pixmap" :depends-on ("medium"))           (:file "pixmap" :depends-on ("medium"))
470                 (:file "frame-manager" :depends-on ("medium"))                 (:file "frame-manager" :depends-on ("medium"))
471           (:file "gadgets" :depends-on ("port"))))))           (:file "gadgets" :depends-on ("port"))))))
472    
473  ;;; TODO/asf: I don't have the required libs to get :clim-opengl to load. tough.  ;;; TODO/asf: I don't have the required libs to get :clim-opengl to load. tough.
474  (clim-defsystem (:clim-opengl :depends-on (:clim))  (defsystem :clim-opengl
475     "Backends/OpenGL/opengl-x-frame-manager"    :depends-on (:clim)
476     "Backends/OpenGL/opengl-frame-manager"    :serial t
477     "Backends/OpenGL/opengl-x-port-before"    :components
478     "Backends/OpenGL/opengl-port"    ((:file "Backends/OpenGL/opengl-x-frame-manager")
479     "Backends/OpenGL/opengl-x-port-after"     (:file "Backends/OpenGL/opengl-frame-manager")
480     "Backends/OpenGL/opengl-medium"     (:file "Backends/OpenGL/opengl-x-port-before")
481     "Backends/OpenGL/opengl-x-graft")     (:file "Backends/OpenGL/opengl-port")
482       (:file "Backends/OpenGL/opengl-x-port-after")
483       (:file "Backends/OpenGL/opengl-medium")
484       (:file "Backends/OpenGL/opengl-x-graft")))
485    
486  ;;; A system that loads the appropriate backend for the current  ;;; A system that loads the appropriate backend for the current
487  ;;; platform.  ;;; platform.
# Line 527  Line 490 
490                   ;; If we're on an implementation that ships CLX, use                   ;; If we're on an implementation that ships CLX, use
491                   ;; it. Same if the user has loaded CLX already.                   ;; it. Same if the user has loaded CLX already.
492                   #+(and (or sbcl scl openmcl ecl clx allegro)                   #+(and (or sbcl scl openmcl ecl clx allegro)
493                          (not (or clim-gtkairo clim-graphic-forms clim-beagle)))                          (not (or clim-gtkairo clim-graphic-forms clim-beagle)))
494                   :clim-clx                   :clim-clx                 #+clim-graphic-forms             :clim-graphic-forms
                  #+clim-graphic-forms             :clim-graphic-forms  
495                   #+clim-gl                        :clim-opengl                   #+clim-gl                        :clim-opengl
496                   ;; OpenMCL and MCL support the beagle backend (native                   ;; OpenMCL and MCL support the beagle backend (native
497                   ;; OS X look&feel on OS X).                   ;; OS X look&feel on OS X).
498                   #+clim-beagle :clim-beagle                   #+clim-beagle :clim-beagle
499    
500                   #+clim-gtkairo :clim-gtkairo                   #+clim-gtkairo :clim-gtkairo
501    
502                   ;; null backend                   ;; null backend
503                   :clim-null                   :clim-null
504                   )                   )
505      :components (#-(or clim-gtkairo clim-graphic-forms clim-beagle)      :components (#-(or clim-gtkairo clim-graphic-forms clim-beagle)
506                   (:file "Looks/pixie"                   (:file "Looks/pixie")))
                         :pathname #.(make-pathname :directory '(:relative "Looks") :name "pixie" :type "lisp"))))  
507    
508  ;;; The actual McCLIM system that people should to use in their ASDF  ;;; The actual McCLIM system that people should to use in their ASDF
509  ;;; package dependency lists.  ;;; package dependency lists.
510  (defsystem :mcclim  (defsystem :mcclim
511      :version "0.9.7-dev"    :version "0.9.7-dev"
512      :depends-on (:clim-looks))    :depends-on (:clim-looks))
   
 (defmethod perform :after ((op load-op) (c (eql (find-system :clim))))  
   (pushnew :clim *features*)  
   (pushnew :mcclim *features*))  
513    
514  (defmethod perform :after ((op load-op) (c (eql (find-system :mcclim))))  (defmethod perform :after ((op load-op) (c (eql (find-system :mcclim))))
515    (pushnew :clim *features*)    (pushnew :clim *features*)) ;; The fact that CLIM itself is available is true when all is loaded.
516    (pushnew :mcclim *features*))  
517    ;; The fact that our CLIM implementation is McCLIM is already true now.
518    ;; This feature is notably used by ESA and DREI, in cases where they need to
519    ;; know whether they are compiled with McCLIM or another CLIM implementation.
520    (pushnew :mcclim *features*)
521    
522    
 ;; XXX This is very ugly, but ESA and Drei need to know whether they  
 ;; are being compiled as part of McCLIM, or in another CLIM  
 ;; implementation.  
 (defmethod perform :around (op c)  
   (if (and (or (eql (component-system c) (find-system :esa-mcclim))  
                (eql (component-system c) (find-system :drei-mcclim)))  
            (not (find :building-mcclim *features*)))  
       (unwind-protect (progn (push :building-mcclim *features*)  
                              (call-next-method))  
         (setf *features* (delete :building-mcclim *features*)))  
       (call-next-method)))  

Legend:
Removed from v.1.84  
changed lines
  Added in v.1.85

  ViewVC Help
Powered by ViewVC 1.1.5