From: espen Date: Sun, 27 Feb 2005 15:14:38 +0000 (+0000) Subject: Changed the way initargs are handled when merging slot options X-Git-Url: https://git.distorted.org.uk/~mdw/clg/commitdiff_plain/e5c7586be48de5d817a6098cbfc1bbdebca42203 Changed the way initargs are handled when merging slot options --- diff --git a/glib/gobject.lisp b/glib/gobject.lisp index 10def18..0014b4d 100644 --- a/glib/gobject.lisp +++ b/glib/gobject.lisp @@ -15,7 +15,7 @@ ;; License along with this library; if not, write to the Free Software ;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -;; $Id: gobject.lisp,v 1.32 2005-02-10 00:20:02 espen Exp $ +;; $Id: gobject.lisp,v 1.33 2005-02-27 15:14:38 espen Exp $ (in-package "GLIB") @@ -390,12 +390,15 @@ '(:construct t)) ;; initargs - ,@(when (or (member :construct flags) - (member :construct-only flags) - (member :writable flags)) - (list :initarg (intern (string slot-name) "KEYWORD"))) - ,@(cond - ((find :initarg args) (list :initarg (getf args :initarg)))) + ,@(if (find :initarg args) + (let ((initarg (getf args :initarg))) + (etypecase initarg + (null ()) + (symbol `(:initarg ,initarg)))) + (when (or (member :construct flags) + (member :construct-only flags) + (member :writable flags)) + (list :initarg (intern (string slot-name) "KEYWORD")))) :type ,slot-type :documentation ,documentation))))