string-to-native

This function converts (according to the
external-format argument) and copies the string
data from indices specified by start to
end out of the Lisp string into static (ie,
non-lisp heap) memory and returns an address to the first character of
that data.

If the address argument is specified, then its
value will be used (and returned) as the destination address and new
memory will not be allocated. If the address
argument is not specified, then the resulting memory address (first
returned value) must be passed to
aclfree to be reclaimed.

The copied string data will be null-terminated, that is the byte
following the last data element is 0. The number of 8-bit bytes copied
including the null-terminator is returned as the second value of this
function.

Conversion is done using the specified
external-format. If
external-format is not specified (or,
equivalently, if the value of external-format is
:default), then the external format returned by the
following form is used: