Version 1.8.5: Fix long-long detection
authorKevin Rosenberg <kevin@rosenberg.net>
Mon, 8 Feb 2010 23:07:17 +0000 (16:07 -0700)
committerKevin Rosenberg <kevin@rosenberg.net>
Mon, 8 Feb 2010 23:07:17 +0000 (16:07 -0700)
ChangeLog
debian/changelog
src/i18n.lisp
src/primitives.lisp

index e9efbda2074be3d877d1fab2d444c83fd4d9f0d1..326b8b9d1588e2f3023024787a94326f7561b28f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2010-02-08 Kevin Rosenberg <kevin@rosenberg.net>
+       * Version 1.8.5
+       * src/primitives.lisp: Fix for long-long patch
+       (Stelian Ionescu)
+       * src/i18n.lisp: Changed logic of how to deal
+       with an passed encoding value of il.
+
 2010-02-08 Kevin Rosenberg <kevin@rosenberg.net>
        * Version 1.8.4
        * sql/primitives.lisp: Improved detection for
index 93ea97a6d7a982139536f43bcaea2ca9a7a974ef..c8446a68c50e97af3be08560ff120d1b0ec073ac 100644 (file)
@@ -1,3 +1,9 @@
+cl-uffi (1.8.5-1) unstable; urgency=low
+
+  * New upstream
+
+ -- Kevin M. Rosenberg <kmr@debian.org>  Mon, 08 Feb 2010 16:06:57 -0700
+
 cl-uffi (1.8.4-1) unstable; urgency=low
 
   * New upstream
index 1d6a485145458426532d4d568d079cd9bcf5d5cd..ca2c1b439f392b176012041e730bbc7dce339689 100644 (file)
@@ -58,8 +58,7 @@ encoding.")
 (defun lookup-foreign-encoding (normalized)
   (cdr (assoc normalized *foreign-encoding-mapping* :test 'eql)))
 
-(defmacro string-to-octets (str &key (encoding *default-foreign-encoding*))
-  "Converts a Lisp string to a vector of octets."
+(defmacro string-to-octets (str &key encoding)
   (declare (ignorable encoding))
   #-(or allegro lispworks openmcl sbcl)
   (map-into (make-array (length str) :element-type '(unsigned-byte 8))
@@ -69,7 +68,7 @@ encoding.")
   (let ((fe (gensym "FE-"))
         (ife (gensym "IFE-"))
         (s (gensym "STR-")))
-    `(let* ((,fe ,encoding)
+    `(let* ((,fe (or ,encoding *default-foreign-encoding*))
             (,ife (when ,fe (lookup-foreign-encoding ,fe)))
             (,s ,str))
        (values
@@ -87,7 +86,7 @@ encoding.")
   (let ((fe (gensym "FE-"))
         (ife (gensym "IFE-"))
         (s (gensym "STR-")))
-    `(let* ((,fe ,encoding)
+    `(let* ((,fe (or ,encoding *default-foreign-encoding*))
             (,ife (when ,fe (lookup-foreign-encoding ,fe)))
             (,s ,str))
        (if ,ife
@@ -96,7 +95,7 @@ encoding.")
 
 )
 
-(defmacro octets-to-string (octets &key (encoding *default-foreign-encoding*))
+(defmacro octets-to-string (octets &key encoding)
   "Converts a vector of octets to a Lisp string."
   (declare (ignorable encoding))
   #-(or allegro lispworks openmcl sbcl)
@@ -110,7 +109,7 @@ encoding.")
   (let ((fe (gensym "FE-"))
         (ife (gensym "IFE-"))
         (oct (gensym "OCTETS-")))
-    `(let* ((,fe ,encoding)
+    `(let* ((,fe (or ,encoding *default-foreign-encoding*))
             (,ife (when ,fe (lookup-foreign-encoding ,fe)))
             (,oct ,octets))
        (values
@@ -130,7 +129,7 @@ encoding.")
   (let ((fe (gensym "FE-"))
         (ife (gensym "IFE-"))
         (oct (gensym "OCTETS-")))
-    `(let* ((,fe ,encoding)
+    `(let* ((,fe (or ,encoding *default-foreign-encoding*))
             (,ife (when ,fe (lookup-foreign-encoding ,fe)))
             (,oct ,octets))
        (if ,ife
@@ -139,7 +138,7 @@ encoding.")
 
 )
 
-(defun foreign-encoded-octet-count (str &key (encoding *default-foreign-encoding*))
+(defun foreign-encoded-octet-count (str &key encoding)
   "Returns the octets required to represent the string when passed to a ~
 foreign function."
   (declare (ignorable encoding))
@@ -148,7 +147,8 @@ foreign function."
   ;; with external-format
 
   #+(or (and allegro ics) (and sbcl sb-unicode) (and clisp i18n))
-  (length (string-to-octets str :encoding encoding))
+  (length (string-to-octets str :encoding
+                            (or encoding *default-foreign-encoding*)))
 
   #-(or (and allegro ics) (and sbcl sb-unicode) (and clisp i18n))
   (length str)
index b7c0283b2e2a9f6d9ba0fdf729b634aa738c09d6..a43eb8dd24e4c2ff1b615475be0cdd900113cfae 100644 (file)
@@ -141,12 +141,14 @@ supports takes advantage of this optimization."
       (:unsigned-short . c-call:unsigned-short)
       (:int . alien:integer) (:unsigned-int . c-call:unsigned-int)
       (:long . c-call:long) (:unsigned-long . c-call:unsigned-long)
-      #+#.(cl:if (cl:find-symbol (cl:string '#:long-long)
-                                 (cl:string '#:c-call))
+      #+#.(cl:if (cl:and (cl:find-package (cl:string '#:c-call))
+                         (cl:find-symbol (cl:string '#:long-long)
+                                         (cl:string '#:c-call)))
                  '(and) '(or))
       (:long-long . c-call:long-long)
-      #+#.(cl:if (cl:find-symbol (cl:string '#:unsigned-long-long)
-                                 (cl:string '#:c-call))
+      #+#.(cl:if (cl:and (cl:find-package (cl:string '#:c-call))
+                         (cl:find-symbol (cl:string '#:unsigned-long-long)
+                                         (cl:string '#:c-call)))
                  '(and) '(or))
       (:unsigned-long-long . c-call:unsigned-long-long)
       (:float . c-call:float) (:double . c-call:double)