Jan Vroonhof <vroonhof(a)math.ethz.ch> writes:
> "Stephen J. Turnbull" <turnbull(a)sk.tsukuba.ac.jp> writes:
>
> > Jan> The problem is what to do with stuff like x-iso8859-1.el
> > Jan> then.
> >
> > It should be Mule-ized.
>
> Yes. And now do it such that all of the following are true (which they
> currently are).
>
> 1. Loading the .elc is fast
> 2. The .el file is used by both versions.
> 3. The .elc can be used by both versions.
I believe this is possible, but slightly ugly. My code that creates
an ISO 8859-2 char looks approximately like this:
(defun latin2-char (code)
(if (and (> code 128)
(featurep 'mule))
(make-char 'latin-iso8859-2 (- code 128))
(int-char code)))
This means that you can take an 8-bit integer code (which is portable
across everything) and a charset, and make them into an appropriate
Mule character.
> Having a conditionally compiled in mule is good however it makes
> things like this hard. Basically the will need to be some load time
> character set conversion defined such that it is the identity on
> latin1 XEmacs.
Yes. The right thing to do this is to port `make-char' to non-Mule
XEmacs. Me and Olivier Galibert have hashed it out how it needs to be
done, now only someone needs to implement it (it's trivial[1]).
[1]
Trivial as in real programmers' trivial. The dictionary goes like
this:
trivial == might take me some time to do, but it's not hard.
easy == might take me quite some time to do, but it's not too hard.
straightforward == possibly very hard and time-consuming, but the
algorithm is known in advance.
hard == undoable, except by a real programmer.