;;; Foreign string functions
-(defun %convert-to-foreign-string (str foreign-encoding)
- (declare (ignorable str foreign-encoding))
+(defun %convert-to-foreign-string (str encoding)
+ (declare (ignorable str encoding))
#+(or cmu scl)
(etypecase str
(null
(string
(locally
(declare (optimize (speed 3) (safety 0)))
- (let* ((fe (or foreign-encoding *default-foreign-encoding*))
+ (let* ((fe (or encoding *default-foreign-encoding*))
(ife (when fe (lookup-foreign-encoding fe))))
(if ife
(let* ((octets (sb-ext:string-to-octets str :external-format ife))
+null-cstring-pointer+
(locally
(declare (optimize (speed 3) (safety 0)))
- (let* ((fe (or foreign-encoding *default-foreign-encoding*))
+ (let* ((fe (or encoding *default-foreign-encoding*))
(ife (when fe (lookup-foreign-encoding fe))))
(if ife
(let* ((octets (ccl:encode-string-to-octets str :external-format ife))
nil
)
-(defmacro convert-to-foreign-string (obj &optional foreign-encoding)
- (declare (ignorable foreign-encoding))
+(defmacro convert-to-foreign-string (obj &optional encoding)
+ (declare (ignorable encoding))
#+allegro
(let ((stored (gensym "STR-"))
(fe (gensym "FE-"))
(ife (gensym "IFE-")))
`(let* ((,stored ,obj)
- (,fe (or foreign-encoding *default-foreign-encoding*))
+ (,fe (or encoding *default-foreign-encoding*))
(,ife (when ,fe
(lookup-foreign-encoding ,fe))))
(cond
(fe (gensym "EF-"))
(ife (gensym "NEF-")))
`(let* ((,stored ,obj)
- (,fe (or ,foreign-encoding *default-foreign-encoding*))
+ (,fe (or ,encoding *default-foreign-encoding*))
(,ife (when ,fe
(lookup-foreign-encoding ,fe))))
(cond
#+(or cmu scl sbcl digitool openmcl)
`(%convert-to-foreign-string ,obj (lookup-foreign-encoding
- (or ,foreign-encoding *default-foreign-encoding*)))
+ (or ,encoding *default-foreign-encoding*)))
)
;; Either length or null-terminated-p must be non-nil
(defmacro convert-from-foreign-string (obj &key
length
- foreign-encoding
+ encoding
(null-terminated-p t))
- (declare (ignorable length foreign-encoding null-terminated-p))
+ (declare (ignorable length encoding null-terminated-p))
#+allegro
(let ((stored-obj (gensym "STR-"))
(fe (gensym "FE-"))
`(let ((,stored-obj ,obj))
(if (zerop ,stored-obj)
nil
- (let* ((,fe (or ,foreign-encoding *default-foreign-encoding*))
+ (let* ((,fe (or ,encoding *default-foreign-encoding*))
(,ife (when ,fe (lookup-foreign-encoding ,fe))))
(if ,ife
(values
`(let ((,stored-obj ,obj))
(if (fli:null-pointer-p ,stored-obj)
nil
- (let* ((,fe (or ,foreign-encoding *default-foreign-encoding*))
+ (let* ((,fe (or ,encoding *default-foreign-encoding*))
(,ife (when ,fe (lookup-foreign-encoding ,fe))))
(if ,ife
(fli:convert-from-foreign-string
`(let ((,stored-obj ,obj))
(if (null-pointer-p ,stored-obj)
nil
- (let* ((,fe (or ,foreign-encoding *default-foreign-encoding*))
+ (let* ((,fe (or ,encoding *default-foreign-encoding*))
(,ife (when ,fe (lookup-foreign-encoding ,fe))))
(sb-alien::c-string-to-string (sb-alien:alien-sap ,stored-obj)
(or ,ife sb-impl::*default-external-format* :latin-1)
,stored-obj 0
,@(if length (list length) nil))
#+openmcl
- (let ((,fe (or ,foreign-encoding *default-foreign-encoding*)))
+ (let ((,fe (or ,encoding *default-foreign-encoding*)))
(case ,fe
(:utf-8
(ccl::%get-utf-8-cstring ,stored-obj))
finally return size))
-(defmacro with-foreign-string ((foreign-string lisp-string &optional foreign-encoding)
+(defmacro with-foreign-string ((foreign-string lisp-string &optional encoding)
&body body)
(let ((result (gensym))
(fe (gensym)))
- `(let* ((,fe ,foreign-encoding)
+ `(let* ((,fe ,encoding)
(,foreign-string (convert-to-foreign-string ,lisp-string ,fe))
(,result (progn ,@body)))
(declare (dynamic-extent ,foreign-string))