+ ;; Check whether we need to do a full external-format
+ ;; conversion, or whether we can just do a cheap byte-by-byte
+ ;; copy of the c-string data.
+ ;;
+ ;; On SB-UNICODE we can never do the cheap copy, even if the
+ ;; external format and element-type are suitable, since
+ ;; simple-base-strings may not contain ISO-8859-1 characters.
+ ;; If we need to check for non-ascii data in the input, we
+ ;; might as well go through the usual external-format machinery
+ ;; instead of rewriting another version of it.
+ ,(if #!+sb-unicode t
+ #!-sb-unicode (c-string-needs-conversion-p type)
+ `(sb!alien::c-string-to-string ,alien
+ (c-string-external-format ,type)
+ (alien-c-string-type-element-type
+ ,type))
+ `(%naturalize-c-string ,alien))))