#+mcl
`(if (ccl:%null-ptr-p ,obj)
nil
- (ccl:%get-cstring ,obj 0 ,@(if length (list length) nil)))
+ #+(and mcl (not openmcl)) (ccl:%get-cstring ,obj 0 ,@(if length (list length) nil))
+ #+openmcl (let ((str (ccl:%get-cstring ,obj)))
+ ,(if length '(subseq str 0 length) 'str)))
)
(* length sb-vm:n-byte-bits))
result)))
-
-(def-function "strlen"
- ((str (* :unsigned-char)))
- :returning :unsigned-int)
+(eval-when (:compile-toplevel :load-toplevel :execute)
+ (def-function "strlen"
+ ((str (* :unsigned-char)))
+ :returning :unsigned-int))
(def-type char-ptr-def (* :unsigned-char))