Ar an tríú lá is fiche de mí Meitheamh, scríobh Stephen J. Turnbull:
Mike FABIAN writes:
> When I use that key sequence to type an € in XEmacs, the cursor
> advances but I don't see a glyph.
I suppose you wouldn't, as undoubtedly the Greek font hasn't been
updated since Euclid retired. The font may be broken, too (ie, have
an blank glyph there).
The source of the problem is version incompatibilities with ISO
8859-7. We’ve updated to the 2003 version in 21.5, as has XFree86 and X.org,
but there are still lots of deployed -iso8859-7 fonts without the three
extra code points assigned:
0xA4 0x20AC # EURO SIGN
0xA5 0x20AF # DRACHMA SIGN
0xAA 0x037A # GREEK YPOGEGRAMMENI
The reason the problem doesn’t appear when Mike pastes text from elsewhere
is that the X11 code does the equivalent of (set-character-of-keysym
'EuroSign ?\u20AC) _before_ ~/.xemacs/init.el has been loaded, at which
point (unicode-precedence-list) reflects its value at dump time, and the
converted character reflects that.
Mike, to avoid this, you can safely add
(set-character-of-keysym 'EuroSign ?\u20AC)
to the end of your ~/.xemacs/init.el . The correct fix, though, is to update
the ISO 8859-7 core fonts as used by the X server.
> When positioning the cursor on that
> character and checking with 'C-u C-x =' I get:
> €Char: € (U+20AC greek-iso8859-7 36) point=1032 of 1128(91%) column 0
This is undoubtedly due to the fact that ISO 8859/7 is the
lowest-numbered of the ISO 8859 family to encode the Euro sign. I
suppose that the Unicode-to-Mule algorithm searches the loaded
charsets in some order.
I can't get to this for some time.
Aidan, have any ideas offhand? Do you think stuffing ISO 8859/15 in
the search order immediately after ISO 8859/1 would be a good idea and
easy to do?
Easy to do, and a vaguely good idea, but everyone will eventually update
their 8859-7 fonts anyway.
> Why is the Greek charset used when € is input via ~/.Xmodmap?
Some charset has to be used, and XK_CURRENCY is not a charset
available in Mule.
> When trying to input ¢ via ~/.Xmodmap, it is even worse, I only get
> the regular ASCII 'c' than.
That surprises me; your example works for me locally. When you type AltGr +
c and immediately F1 l , does it list U00A2 as the keysym? If so, what does
(get-character-of-keysym 'U00A2) return? (Both in terms of what it looks
like and what C-x = gives you.)
> So why doesn't this work with ~/.Xmodmap?
Violate the standard, get what you deserve. The X11 standard for
Unicode keysyms explicitly says that they may not be used for keys
that already have keysyms.
We accept this behaviour in 21.5, btw, even for ASCII keysyms. And the
keysym EuroSign *is* XK_eurosign.
On the quay of the little Black Sea port, where the rescued pair came once
more into contact with civilization, Dobrinton was bitten by a dog which was
assumed to be mad, though it may only have been indiscriminating. (Saki)
XEmacs-Beta mailing list