"Converts a string from a c-call. Same as convert-from-foreign-string, except
that LW/CMU automatically converts strings from c-calls."
#+(or cmu sbcl lispworks scl) obj
"Converts a string from a c-call. Same as convert-from-foreign-string, except
that LW/CMU automatically converts strings from c-calls."
#+(or cmu sbcl lispworks scl) obj
- `(let ((,cstring ,lisp-string)) ,@body)
+ `(let ((,cstring ,lisp-string)) ,@body)
(alien:sap-alien (system:int-sap 0) (* (alien:unsigned 8))))
(string
(let* ((,size (length ,stored-obj))
(alien:sap-alien (system:int-sap 0) (* (alien:unsigned 8))))
(string
(let* ((,size (length ,stored-obj))
(sb-alien:sap-alien (sb-sys:int-sap 0) (* (sb-alien:unsigned 8))))
(string
(let* ((,size (length ,stored-obj))
(sb-alien:sap-alien (sb-sys:int-sap 0) (* (sb-alien:unsigned 8))))
(string
(let* ((,size (length ,stored-obj))
,@(when length (list :length length))
:truncate (not ,null-terminated-p)))))))
#+lispworks
,@(when length (list :length length))
:truncate (not ,null-terminated-p)))))))
#+lispworks
,stored-obj
,@(when length (list :length length))
:null-terminated-p ,null-terminated-p
,stored-obj
,@(when length (list :length length))
:null-terminated-p ,null-terminated-p
#+ignore
(let ((array-def (gensym)))
`(let ((,array-def (list 'alien:array 'c-call:char ,size)))
#+ignore
(let ((array-def (gensym)))
`(let ((,array-def (list 'alien:array 'c-call:char ,size)))