- (case sub-type
- (cl:quote
- (convert-from-uffi-type (cadr type) context))
- (:struct-pointer
- #+mcl `(:* (:struct ,(%convert-from-uffi-type (cadr type) :struct)))
- #-mcl (%convert-from-uffi-type (list '* (cadr type)) :struct)
- )
- (:struct
+ (cond
+ ((eq sub-type 'cl:quote)
+ (convert-from-uffi-type (cadr type) context))
+ #+sbcl
+ ((and (eq sub-type :array)
+ (or (eq context :declare) (eq context :routine))
+ (= 2 (length type)))
+ `(sb-alien:array ,(%convert-from-uffi-type (second type) context) nil))
+ #+cmu
+ ((and (eq sub-type :array)
+ (or (eq context :declare) (eq context :routine))
+ (= 2 (length type)))
+ `(alien:array ,(%convert-from-uffi-type (second type) context) nil))
+ ((eq sub-type :struct-pointer)
+ #+mcl `(:* (:struct ,(%convert-from-uffi-type (cadr type) :struct)))
+ #-mcl (%convert-from-uffi-type (list '* (second type)) :struct)
+ )
+ ((eq sub-type :struct)