cvs commit: hugs98 Install hugs98/src char.c char.h input.c
machdep.c prelude.h hugs98/src/unix configure.in
ross at glass.cse.ogi.edu
ross at glass.cse.ogi.edu
Tue Dec 2 10:50:57 EST 2003
ross 2003/12/02 10:50:57 PST
Modified files:
. Install
src char.c char.h input.c machdep.c prelude.h
src/unix configure.in
Log:
Add multi-byte encoding of Unicode Chars for I/O and in strings, selected
with one of the configure options
--enable-unicode-chars=locale
--enable-unicode-chars=utf8
In the first case, you run Hugs in a suitable environment with the
locale set to what you want. This has been tested with the locales
C, en_GB.iso88591, ru_RU.koi8r and en_GB.UTF-8 (inside xterm 4.2.0),
zh_CN.gb2312 and zh_TW.big5 (inside multilingual rxvt 2.6.4).
The second version hardwires the UTF-8 encoding, and turns off readline.
(If you have a recent glibc, readline, etc, use the locale version
instead, and select a UTF-8 locale.)
All testing has been on Linux. It shouldn't be hard to make it work
on NT, but Dimitry and I don't know how.
The big compromise here is that strings inside Hugs are also encoded
in the same way. Compared with using wide chars internally, this saves
space, and avoids zillions of source changes. But it has limitations, in
particular chars that can't be encoded aren't allowed in string literals,
even as numeric escapes. So (with locale encoding) in the C locale,
"\xa0" isn't allowed.
These patches don't permit Unicode in source identifiers and symbols.
Dimitry: I think this represents all of your changes (except for your TCL
front-end), though I've mangled them a bit -- please test.
Revision Changes Path
1.16 +29 -0 hugs98/Install
1.6 +202 -0 hugs98/src/char.c
1.4 +47 -1 hugs98/src/char.h
1.79 +3 -3 hugs98/src/input.c
1.108 +6 -0 hugs98/src/machdep.c
1.59 +4 -0 hugs98/src/prelude.h
1.99 +38 -4 hugs98/src/unix/configure.in
More information about the Cvs-hugs
mailing list