r10588: better support for lispworks variance on derefing
authorKevin M. Rosenberg <kevin@rosenberg.net>
Wed, 8 Jun 2005 22:36:29 +0000 (22:36 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Wed, 8 Jun 2005 22:36:29 +0000 (22:36 +0000)
ChangeLog
src/objects.lisp
tests/time.lisp

index 8e59a1723cf2aa7bfe7559c5ba9b73cceb06bbdd..7440425a2f9dd60bc592580d83d83a59a56d91c1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,6 @@
 2005-06-09 Kevin Rosenberg (kevin@rosenberg.net)
        * tests/objects.lisp: Rename from pointers.lisp. 
 2005-06-09 Kevin Rosenberg (kevin@rosenberg.net)
        * tests/objects.lisp: Rename from pointers.lisp. 
-       Fix test CHPTR.4 as noted by Joerg Hoehle
+       Fix test CHPTR.4 as noted by Jorg Hohle
        * src/objects.lisp: Remove default from ensure-char-integer
        
 2005-06-09 Kevin Rosenberg (kevin@rosenberg.net)
        * src/objects.lisp: Remove default from ensure-char-integer
        
 2005-06-09 Kevin Rosenberg (kevin@rosenberg.net)
@@ -9,10 +9,9 @@
        allow plain filename library names to allow underlying
        lisp implementation to find foreign libraries in the
        locations known to the operating system.
        allow plain filename library names to allow underlying
        lisp implementation to find foreign libraries in the
        locations known to the operating system.
-       * tests/cast.lisp: Add :module keyword as noted by
-       Joerg Hoehle.
+       * tests/cast.lisp: Add :module keyword as noted by Jorg Hohle.
        * src/strings.lisp: Avoid multiple evaluation of input
        * src/strings.lisp: Avoid multiple evaluation of input
-       parameters for macros as noted by Joerg Hoele.
+       parameters for macros as noted by Jorg Hohle.
        
 2005-04-12 Kevin Rosenberg (kevin@rosenberg.net)
        * Version 1.4.37
        
 2005-04-12 Kevin Rosenberg (kevin@rosenberg.net)
        * Version 1.4.37
index e9a2024112ec409b26c136a3deda65020ba8ca16..cdd3882296bdf1b9bd86269a2af63980a20ec838 100644 (file)
@@ -137,7 +137,11 @@ an array of TYPE with size SIZE. The TYPE parameter is evaluated."
   
 (defmacro ensure-char-integer (obj)
   #+(or (and mcl (not openmcl))) `(char-code ,obj)
   
 (defmacro ensure-char-integer (obj)
   #+(or (and mcl (not openmcl))) `(char-code ,obj)
-  #+(or allegro cmu sbcl scl openmcl) obj)
+  #+(or allegro cmu sbcl scl openmcl) obj
+  #+lispworks
+  ;; lispworks varies whether deref'ing array vs. slot access of a char
+  #+lispworks
+  `(if (integerp ,obj) ,obj (char-code ,obj)))
 
 (defmacro ensure-char-storable (obj)
   #+(or lispworks (and mcl (not openmcl))) obj
 
 (defmacro ensure-char-storable (obj)
   #+(or lispworks (and mcl (not openmcl))) obj
index 25a876fbfd96e613de36de24f08f28df1c48afb1..89382a86a1efca4345c04a6bed19eaa063ae8222 100644 (file)
@@ -36,7 +36,7 @@
 
 (uffi:def-function "gmtime"
     ((time (* time-t)))
 
 (uffi:def-function "gmtime"
     ((time (* time-t)))
-  :returning (* tm))
+  :returning (:struct-pointer tm))
 
 (uffi:def-function "asctime"
     ((time (:struct-pointer tm)))
 
 (uffi:def-function "asctime"
     ((time (:struct-pointer tm)))