r2892: *** empty log message ***
[uffi.git] / src-main / primitives.cl
index 6fe54ba1d7e918f4a6401e190263aa2a36f4685c..05317700ef4ce48fab4c78997b8b493bcb18109a 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.2 2002/09/30 01:57:32 kevin Exp $
 ;;;;
 ;;;; This file, part of UFFI, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;;
@@ -188,8 +188,22 @@ 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 (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)))))))
+