Hello!

Mike Gran <spk...@yahoo.com> writes:

> ** Ports do transcoding

Speaking of this, would you be willing to implement R6RS’ transcoder
API in ‘r6rs-ports.c’?  :-)

> * The i18n library hasn't been touched.  It should probably move to use
> functions like u32_casecmp from libunistring for unicode-capable
> locale-specific sorting.

Is u32_casecmp locale-dependent?

> But the #ifdef and locale madness in i18n is
> deep.

Heh heh, it’s deep but needed.  It allows us to provide an API with
first-class locale objects, akin to POSIX 2008’s ‘locale_t’, which is
neat IMO.

At any rate, the parts you’re interested in can probably be modified
without touching the #ifdef madness.

> I've avoided hacking it.  Also we'll have to write our own functions
> for locale-string->double and locale-string->int.

We have ‘locale-string->integer’ and ‘locale-string->inexact’, which
currently use strtol(3) and strtod(3) respectively (info "(guile) Number
Input and Output").

> Bruno has some suggestions on how to do that at
> http://savannah.gnu.org/support/?106998

This suggestion could probably be implemented in Scheme, similarly to
‘number->locale-string’.

> * EMACS has a lot of aliases that can be use in the "-*- coding: XXXXX
> -*-" line, like latin-1, that aren't valid encoding names.  The reader
> should be modified to understand the common ones.

Also, currently ‘scm_scan_for_encoding ()’ searches for a “coding:”
string in the ‘SCM_ENCODING_SEARCH_SIZE’ first bytes of the file,
whereas Emacs searches in the first line (or second line if the first is
“#!...”) or in a local variable list less than 3000 characters from the
end of the file (info "(emacs) Specifying File Variables").

Overall, it seems to me that Unicode support is in a very good shape and
the points above aren’t too worrying.

Thanks,
Ludo’.



Reply via email to