From: Kevin M. Rosenberg Date: Mon, 14 Aug 2006 04:09:20 +0000 (+0000) Subject: r11020: port for LW5 X-Git-Tag: v1.6.1~19 X-Git-Url: http://git.kpe.io/?p=uffi.git;a=commitdiff_plain;h=6bccb555fe8dce4f5729cecde65cd0e8bd076ec2 r11020: port for LW5 --- diff --git a/src/objects.lisp b/src/objects.lisp index 0e327f0..1c4983c 100644 --- a/src/objects.lisp +++ b/src/objects.lisp @@ -139,8 +139,9 @@ an array of TYPE with size SIZE. The TYPE parameter is evaluated." `(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) @@ -248,12 +249,20 @@ an array of TYPE with size SIZE. The TYPE parameter is evaluated." #+(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