;;;; Programmers: Kevin M. Rosenberg and John DeSoi
;;;; Date Started: Feb 2002
;;;;
-;;;; $Id: aggregates.cl,v 1.2 2002/09/20 04:51:14 kevin Exp $
+;;;; $Id: aggregates.cl,v 1.3 2002/09/30 01:57:32 kevin Exp $
;;;;
;;;; This file, part of UFFI, is Copyright (c) 2002 by Kevin M. Rosenberg
;;;; and John DeSoi
(defmacro def-array-pointer (name-array type)
- `(def-mcl-type ,name-array '(:array ,type)))
+ #-openmcl
+ `(def-mcl-type ,name-array '(:array ,type))
+ #+openmcl
+ `(ccl::def-foreign-type ,name-array (:array ,(convert-from-uffi-type type :array))))
(let* ((field-name (car field))
(type (cadr field))
(def (append (list field-name)
- (if (eq type :pointer-self)
- #+cmu `((* (alien:struct ,name)))
- #-cmu `((* ,name))
- `(,(convert-from-uffi-type type :struct))))))
+ (cond
+ ((eq type :pointer-self)
+ #+cmu `((* (alien:struct ,name)))
+ #+openmcl `((:* (:struct ,name)))
+ #-(or cmu openmcl) `((* ,name))
+ )
+ (t
+ `(,(convert-from-uffi-type type :struct)))))))
(if variant
(push (list def) processed)
(push def processed))))
(setf (get-slot-value s :struct :u1.s1) 5)
(get-slot-value s :struct :u1.s1)
-|#
\ No newline at end of file
+|#