I am leaving tomorrow for a one-month vacation to Spain. I'll be
returning on August 1st. I will occasionally be checking mail at
ben_wing(a)hotmail.com, but not at this address. If you have something
that isn't urgent, go ahead and send it to this address [either
ben(a)666.com or ben(a)xemacs.org] and i'll respond when i return.
meanwhile, i've checked in two workspaces to cvs. i'd appreciate it
if people take a look and fix any problems encountered. [i've
checkpointed the workspaces at their current state, so i'll be able to
review any changes made.]
NOTE: The contents of this message are in README.ben-mule-21-5 at the
top of the ben-mule-21-5 workspace.
the two workspaces are:
------------------------------------------------------------------
-- ben-mule-21-5
this contains all the mule work i've been doing. this includes mostly
work done to get mule working under ms windows, but in the process
i've [of course] fixed a whole lot of other things as well, mostly
mule issues. the specifics:
- it compiles and runs under windows and should basically work. the
stuff remaining to do is (a) improved unicode support (see below)
and (b) smarter handling of keyboard layouts. in particular, it
should (1) set the right keyboard layout when you change your
language environment; (2) optionally (a user var) set the
appropriate keyboard layout as you move the cursor into text in a
particular language.
- i added a bunch of code to better support OS locales. it tries to
notice your locale at startup and set the language environment
accordingly (this more or less works), and call setlocale() and set
LANG when you change the language environment (may or may not work).
- major rewriting of file-coding. it's mostly abstracted into coding
systems that are defined by methods (similar to devices and
specifiers), with the ultimate aim being to allow non-i18n coding
systems such as gzip. there is a "chain" coding system that allows
multiple coding systems to be chained together. (it doesn't yet
have the concept that either end of a coding system can be bytes or
chars; this needs to be added.)
- unicode support. very raw. a few days ago i wrote a complete and
efficient implementation of unicode translation. it should be very
fast, and fairly memory-efficient in its tables. it allows for
charset priority lists, which should be language-environment
specific (but i haven't yet written the glue code). it works in
preliminary testing, but obviously needs more testing and work.
as of yet there is no translation data added for the standard charsets.
the tables are in etc/unicode, and all we need is a bit of glue code
to process them. see etc/unicode/README for the interface to
implement.
- support for unicode in windows is partly there. this will work even
on windows 95. the basic model is implemented but it needs finishing
up.
- there is a preliminary implementation of windows ime support courtesy
of ikeyama.
- if you want to get cyrillic working under windows (it appears to "work"
but the wrong chars currently appear), the best way is to add unicode
support for iso-8859-5 and use it in redisplay-msw.c. we are already
passing unicode codepoints to the text-draw routine (ExtTextOutW).
(ExtTextOutW and GetTextExtentPoint32W are implemented on both 95 and NT.)
- i fixed the iso2022 handling so it will correctly read in files
containing unknown charsets, creating a "temporary" charset which
can later be overwritten by the real charset when it's defined.
this allows iso2022 elisp files with literals in strange languages
to compile correctly under mule. i also added a hack that will
correctly read in and write out the emacs-specific "composition"
escape sequences, i.e. ESC 0 through ESC 4. this means that my
workspace correctly compiles the new file devanagari.el that i added
(see below).
- i copied the remaining language-specific files from fsf. i made
some minor changes in certain cases but for the most part the stuff
was just copied and may not work.
- i fixed post-read-conversion in coding systems to follow fsf
conventions. (i also support our convention, for the moment. a
kludge, of course.)
- make-coding-system accepts (but ignores) the additional properties
present in the fsf version, for compatibility.
-------------------------------------------------------------------
-- ben-separate-stderr-improved-error-trapping
this is an old workspace, very close to being done, containing
- subprocess stderr output can be read separately; needed to fully
implement call-process with asynch. subprocesses.
- huge improvements to the internal error-trapping routines (i.e. the
routines that call Lisp code and trap errors); Lisp code can now be
called from within redisplay.
- cleanup and simplification of C-g handling; some things work now
that never used to.
- see the ChangeLogs in the workspace.
--
ben
I'm sometimes slow in getting around to reading my mail, so if you
want to reach me faster, call 520-661-6661.
See
http://www.666.com/ben/chronic-pain/ for the hell I've been
through.