[cffi-devel] Foreign string arguments
Luís Oliveira
luismbo at gmail.com
Sun Aug 22 21:35:04 UTC 2010
Hello Michael,
Sorry for the late reply.
On Fri, Mar 19, 2010 at 8:05 AM, Michael Raskin <f9cef2aa at yandex.ru> wrote:
> I use callback feature of CFFI. I want to use an encoding as a default
> and if I get an invalid string (non-UTF-8 in my case), I'd just reject
> it by returning an error. Unfortunately, if I declare string arguments
> with encoding, attempts by CFFI to decode the string raise an error
> which prevents me from returning protocol-compliant error to the caller.
[...]
> This can be mitigated by patching CFFI. If I just wrap the conversion
> in ignore-errors, I lose the distinction between an invalid string and
> null pointer, but I get a chance to process the request (both cases are
> wrong in my case).
[...]
> Would you please consider adding some similar modification in official
> CFFI repository?
One way to handle this issue is the following:
(let ((babel-encodings:*suppress-character-coding-errors* t))
(foreign-string-alloc "pão" :encoding :ascii))
But I'm not sure whether this is applicable in your case. The proper
solution to this issue is to add some sort of :ignore-errors parameter
to foreign-string-alloc and to the :string type. I've registered this
wishlist item in <http://bugs.launchpad.net/cffi/+bug/622421>.
Cheers,
--
Luís Oliveira
http://r42.eu/~luis/
More information about the cffi-devel
mailing list