X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=uffi%2Fclsql-uffi.lisp;h=e1f687b53494cd28b2f9471bff3d0a444e49207e;hb=bc4310a463731d7cf760d28e57700c3c772cb6ef;hp=da5276afaba79926e8da8a89fc13091bd45e5041;hpb=bada52b7a8fd2cc484dee33cccd64ca09a52ec3d;p=clsql.git diff --git a/uffi/clsql-uffi.lisp b/uffi/clsql-uffi.lisp index da5276a..e1f687b 100644 --- a/uffi/clsql-uffi.lisp +++ b/uffi/clsql-uffi.lisp @@ -87,9 +87,9 @@ (uffi:def-type char-ptr-def (* :unsigned-char)) -(defun convert-raw-field (char-ptr types index) +(defun convert-raw-field (char-ptr types index &optional length) (declare (optimize (speed 3) (safety 0) (space 0)) - (type char-ptr-def char-ptr)) + (type char-ptr-def char-ptr)) (let ((type (if (listp types) (nth index types) types))) @@ -110,5 +110,9 @@ low32 (make-64-bit-integer high32 low32))))) (t - (uffi:convert-from-foreign-string char-ptr :locale :none))))))) - + (if length + (uffi:convert-from-foreign-string char-ptr :locale :none + :null-terminated-p nil + :length length) + (uffi:convert-from-foreign-string char-ptr :locale :none)))))))) +