chiark / gitweb /
Bug fix
[clg] / glib / gboxed.lisp
index c2daeb54aaa5ce38a19ffdfe77b7f56ab24ce30e..ceae18fcb21d9883198d94731bb8d082a543244c 100644 (file)
 ;; 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: gboxed.lisp,v 1.13 2004-11-09 10:10:59 espen Exp $
+;; $Id: gboxed.lisp,v 1.16 2005-02-14 00:44:26 espen Exp $
 
 (in-package "GLIB")
 
 
-(eval-when (:compile-toplevel :load-toplevel :execute)
-  (init-types-in-library #.(concatenate 'string
-                         (pkg-config:pkg-variable "glib-2.0" "libdir")
-                         "/libgobject-2.0.so")))
-
 (defclass boxed (struct)
   ()
   (:metaclass struct-class))
@@ -76,9 +71,10 @@ (defmethod unreference-foreign ((class boxed-class) location)
 
 ;;;; 
 
-(defun expand-boxed-type (type-number &optional slots)
+(defun expand-boxed-type (type-number forward-p slots)
   `(defclass ,(type-from-number type-number) (boxed)
-     ,slots
+     ,(unless forward-p
+       slots)
      (:metaclass boxed-class)
      (:alien-name ,(find-type-name type-number))))
 
@@ -114,3 +110,9 @@ (register-derivable-type 'boxed "GBoxed" 'expand-boxed-type)
 ;;   (when weak-ref
 ;;     (unreference-alien type-spec c-string)))
 
+
+
+;;;; NULL terminated vector of strings
+
+(deftype strings () '(null-terminated-vector string))
+(register-type 'strings "GStrv")