`(if (integerp ,obj) ,obj (char-code ,obj)))
(defmacro ensure-char-storable (obj)
- #+(or lispworks digitool) obj
- #+(or allegro cmu sbcl scl openmcl) `(char-code ,obj))
+ #+(or digitool (and lispworks (not lispworks5))) obj
+ #+(or allegro cmu lispworks5 openmcl sbcl scl)
+ `(char-code ,obj))
(defmacro pointer-address (obj)
#+(or cmu scl)
#+(or macosx darwinppc-target) (concatenate 'string "_" name)
#-(or macosx darwinppc-target) name)
+;; unchanged from main primitives.lisp
+(defun make-lisp-name (name)
+ (let ((converted (substitute #\- #\_ name)))
+ (intern
+ #+uffi-case-sensitive converted
+ #+(and (not uffi-lowercase-reader) (not uffi-case-sensitive)) (string-upcase converted)
+ #+(and uffi-lowercase-reader (not uffi-case-sensitive)) (string-downcase converted))))
+
(defmacro def-foreign-var (names type module)
#-lispworks (declare (ignore module))
(let ((foreign-name (if (atom names) names (first names)))
(lisp-name (if (atom names) (make-lisp-name names) (second names)))
#-allegro
- (var-type (convert-from-uffi-type type :type)))
+ (var-type (convert-uffi-type type :type)))
#+(or cmu scl)
`(alien:def-alien-variable (,foreign-name ,lisp-name) ,var-type)
#+sbcl