chiark / gitweb /
src/c-types-{proto,impl}.lisp: Add `:export' parameter to `defctype'.
[sod] / src / c-types-proto.lisp
index a13be4cba0f4ba3ae4395c04db3400ece7e01ace..55f2f3105953af203c3294cb0cd99c0e39d09cb7 100644 (file)
@@ -197,7 +197,7 @@ (defmacro c-type-alias (original &rest aliases)
        ',aliases)))
 
 (export 'defctype)
-(defmacro defctype (names value)
+(defmacro defctype (names value &key export)
   "Define NAMES all to describe the C-type VALUE.
 
    NAMES can be a symbol (treated as a singleton list), or a list of symbols.
@@ -207,6 +207,8 @@ (defmacro defctype (names value)
         (namevar (gensym "NAME"))
         (typevar (symbolicate 'c-type- (car names))))
     `(progn
+       ,@(and export
+             `((export '(,typevar ,@names))))
        (defparameter ,typevar ,(expand-c-type-spec value))
        (eval-when (:compile-toplevel :load-toplevel :execute)
         ,@(mapcar (lambda (name)