r2903: *** empty log message ***
[uffi.git] / src-main / primitives.cl
index 6fe54ba1d7e918f4a6401e190263aa2a36f4685c..08ef00b6fd8b7fa5c7d467740a69a849d3769648 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Feb 2002
 ;;;;
-;;;; $Id: primitives.cl,v 1.1 2002/09/16 17:54:30 kevin Exp $
+;;;; $Id: primitives.cl,v 1.3 2002/09/30 02:45:24 kevin Exp $
 ;;;;
 ;;;; This file, part of UFFI, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;;
@@ -188,11 +188,19 @@ supports takes advantage of this optimization."
        (basic-convert-from-uffi-type :cstring-returning))
        (t
        (basic-convert-from-uffi-type type)))
-      (cons (convert-from-uffi-type (first type) context) 
-           (convert-from-uffi-type (rest type) context))))
-
-
-
-
-
+    (let ((sub-type (car type)))
+      (case sub-type
+       (cl:quote
+        (convert-from-uffi-type (cadr type) context))
+       (:struct-pointer
+        #+openmcl `(:* (:struct ,(convert-from-uffi-type (cadr type) :struct)))
+        #-openmcl (convert-from-uffi-type (list '* (cadr type)) :struct)
+        )
+       (:struct
+        #+openmcl `(:struct ,(convert-from-uffi-type (cadr type) :struct))
+        #-openmcl (convert-from-uffi-type (cadr type) :struct)
+        )
+       (t
+        (cons (convert-from-uffi-type (first type) context) 
+              (convert-from-uffi-type (rest type) context)))))))