[Openmcl-devel] *default-external-format* and encoding and decoding strings.

Gary Byers 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>:
>>>> Hello,
>>>>
>>>> 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
:EXTERNAL-FORMAT argument.

> rg
>
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> https://lists.clozure.com/mailman/listinfo/openmcl-devel




More information about the Openmcl-devel mailing list