[Openmcl-devel] *default-external-format* and encoding and decoding strings.
gb at clozure.com
Mon Mar 7 15:23:34 PST 2016
On 03/07/2016 03:36 PM, Ron Garret wrote:
> On Mar 7, 2016, at 1:30 PM, R. Matthew Emerson <rme at clozure.com> wrote:
>>> On Mar 5, 2016, at 12:03 PM, Ron Garret <ron at flownet.com> wrote:
>>> On Mar 5, 2016, at 8:39 AM, Dmitry Igrishin <dfigrish at gmail.com> wrote:
>>>> 2016-03-05 16:25 GMT+03:00 Dmitry Igrishin <dfigrish at gmail.com>:
>>>> The *default-external-parameter* doesn't considered by
>>>> count-characters-in-octet-vector, decode-string-from-octets,
>>>> encode-string-to-octets, string-size-in-octets functions which
>>>> has the :external-format parameter. I believe that
>>>> *default-external-parameter* should affect the behaviour of
>>>> all functions with :external-format parameter, right?
>>>> Sorry, I meant the *default-external-format* special variable...
>>> This is a bug in ccl::lookup-character-encoding. Here’s a patch:
>>> (in-package :ccl)
>>> (let ((ccl::*warn-if-redefine-kernel* nil))
>>> (defun lookup-character-encoding (name)
>>> (gethash (or name *default-external-format*) *character-encodings*)))
>> I don't think I can apply this.
>> The issue is that nil is a valid character encoding name: it's a documented synonym for :iso-8859-1.
> That’s a bug in the documentation. NIL should be a synonym for *default-character-encoding*. (I’m not joking. That part of the docs was written before the introduction of *default-character-encoding*.)
when that part (what part is it, by the way?) was written, :iso-8859-1
was the default character encoding.
(I was writing the above when I saw a later message from you.
Changing the functions in question to use (e.g.)
(defun encode-string-to-octets (string &key (external-format :default)
seems to be another approach
I suspect (but don't claim to know) that most uses of things like
ENCODE-STRING-TO-OCTETS involve an explicit
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
More information about the Openmcl-devel