#+(or cmu sbcl scl) nil
#+allegro 0
#+lispworks (fli:make-pointer :address 0 :type '(:unsigned :char))
- #+mcl (ccl:%null-ptr)
+ #+(or openmcl digitool) (ccl:%null-ptr)
)
(defmacro convert-from-cstring (obj)
(if (zerop ,stored)
nil
(values (excl:native-to-string ,stored)))))
- #+mcl
+ #+(or openmcl digitool)
(let ((stored (gensym)))
`(let ((,stored ,obj))
(if (ccl:%null-ptr-p ,stored)
(if (null ,stored)
0
(values (excl:string-to-native ,stored)))))
- #+mcl
+ #+(or openmcl digitool)
(let ((stored (gensym)))
`(let ((,stored ,obj))
(if (null ,stored)
`(let ((,stored ,obj))
(unless (zerop ,stored)
(ff:free-fobject ,stored))))
- #+mcl
+ #+(or openmcl digitool)
(let ((stored (gensym)))
`(let ((,stored ,obj))
(unless (ccl:%null-ptr-p ,stored)
(excl:with-native-string (,acl-native ,stored-lisp-string)
(let ((,cstring (if ,stored-lisp-string ,acl-native 0)))
,@body))))
- #+mcl
+ #+(or openmcl digitool)
(let ((stored-lisp-string (gensym)))
`(let ((,stored-lisp-string ,lisp-string))
(if (stringp ,stored-lisp-string)
(char-code (char ,stored-obj ,i))))
(setf (sb-alien:deref ,storage ,size) 0))
,storage)))))
- #+mcl
+ #+(or openmcl digitool)
(let ((stored-obj (gensym)))
`(let ((,stored-obj ,obj))
(if (null ,stored-obj)
(sbcl-naturalize-cstring (sb-alien:alien-sap ,stored-obj)
:length ,length
:null-terminated-p ,null-terminated-p))))
- #+mcl
+ #+(or openmcl digitool)
(declare (ignore null-terminated-p))
- #+mcl
+ #+(or openmcl digitool)
(let ((stored-obj (gensym)))
`(let ((,stored-obj ,obj))
(if (ccl:%null-ptr-p ,stored-obj)
nil
- #+(and mcl (not openmcl)) (ccl:%get-cstring
+ #+digitool (ccl:%get-cstring
,stored-obj 0
,@(if length (list length) nil))
#+openmcl ,@(if length
(declare (ignore unsigned))
#+allegro
`(ff:allocate-fobject :char :c ,size)
- #+mcl
+ #+(or openmcl digitool)
(declare (ignore unsigned))
- #+mcl
+ #+(or openmcl digitool)
`(new-ptr ,size)
)