Omit parts with default values from the unparsing: just
(C-STRING :EXTERNAL-FORMAT :DEFAULT :ELEMENT-TYPE CHARACTER)
becomes C-STRING, and
(C-STRING :EXTERNAL-FORMAT :UTF-8 :ELEMENT-TYPE CHARACTER)
becomes (C-STRING :EXTERNAL-FORMAT :UTF-8), etc.
external-format)))
(define-alien-type-method (c-string :unparse) (type)
- (list 'c-string
- :external-format (alien-c-string-type-external-format type)
- :element-type (alien-c-string-type-element-type type)))
+ (let* ((external-format (alien-c-string-type-external-format type))
+ (element-type (alien-c-string-type-element-type type))
+ (tail
+ (append (unless (eq :default external-format)
+ (list :external-format external-format))
+ (unless (eq 'character element-type)
+ (list :element-type element-type))) ))
+ (if tail
+ (cons 'c-string tail)
+ 'c-string)))
(define-alien-type-method (c-string :lisp-rep) (type)
(declare (ignore type))
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.46.17"
+"1.0.46.18"