X-Git-Url: http://git.kpe.io/?p=uffi.git;a=blobdiff_plain;f=src%2Fstrings.lisp;fp=src%2Fstrings.lisp;h=f5b5634e411447429dc1ce37a187324fd03da778;hp=f6c6d9f016dd3f0b82d5c145b5852a9ec6e2bbb1;hb=1a33d3d010d00a5864402dfe5acde16cdddce02f;hpb=64ab5edeb7412c897f089b7765bec5f24f981b47 diff --git a/src/strings.lisp b/src/strings.lisp index f6c6d9f..f5b5634 100644 --- a/src/strings.lisp +++ b/src/strings.lisp @@ -1,4 +1,4 @@ -;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10; Package: UFFI -*- +;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*- ;;;; ************************************************************************* ;;;; FILE IDENTIFICATION ;;;; @@ -270,19 +270,24 @@ that LW/CMU automatically converts strings from c-calls." (fast-native-to-string ,stored-obj ,length)))))) #+lispworks - ;; FAST-NATIVE-TO-STRING (suprisingly) works just fine with UTF-8 multibyte character strings + #| + ;; FAST-NATIVE-TO-STRING (suprisingly) works just fine to make strings + ;; for formatted printing with Lispworks and UTF-8 multibyte character strings. ;; However, without knowledge of specific-encoding, the LENGTH call in FAST-NATIVE-TO-STRING - ;; may not be incorrect for some encodings/strings. + ;; will be be incorrect for some encodings/strings and strings consist of octets rather + ;; than wide characters ;; This is a stop-gap until get tech support on why the below fails. (let ((stored-obj (gensym "STR-"))) `(let ((,stored-obj ,obj)) (if (fli:null-pointer-p ,stored-obj) nil (fast-native-to-string ,stored-obj ,length)))) + |# + #| ;; Below code doesn't work on tesing with LW 6.0 testing with a UTF-8 string. ;; fli:convert-from-foreign-string with :external-format of :UTF-8 doesn't ;; properly code multibyte characters. -#| + |# (let ((stored-obj (gensym "STR-")) (fe (gensym "FE-")) (ife (gensym "IFE-"))) @@ -298,7 +303,6 @@ that LW/CMU automatically converts strings from c-calls." :null-terminated-p ,null-terminated-p :external-format (list ,ife :eol-style :lf)) (fast-native-to-string ,stored-obj ,length)))))) -|# #+(or cmu scl) (let ((stored-obj (gensym)))