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.