Bug 1013

Summary: Certain compose sequences only work with capitals
Product: xorg Reporter: Hans de Goede <jwrdegoede>
Component: Lib/Xlib (data)Assignee: Jeremy Huddleston Sequoia <jeremyhu>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: high CC: simos.bugzilla
Version: unspecifiedKeywords: patch
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard: 2011BRB_Reviewed
i915 platform: i915 features:

Description Hans de Goede 2004-08-08 03:22:41 UTC
"Multi_key e =" doesn't give the euro sign, where as
"Multi_key E =" does, the same goes for the yen and pound signs.

This is especially confusing for the euro sign, since the Compose sequence with
the small "e" does work in gtk apps, which have there own compose sequence handling.

Also this is rather inconsistent since the american cent symbol does work with
both small and capital C, so please add the sequences with non-capitals for the
euro, yen and pound to:
/usr/lib/X11/locale/en_US.UTF-8/Compose
Comment 1 Pádraig Brady 2005-02-23 10:00:34 UTC
I'm confused about this compose map as it doesn't seem to be complete or accurate.
For example on fedora core 3 (x.org 6.8.1) it has the following for €

$ grep -F € /usr/X11R6/lib/X11/locale/en_US.UTF-8/Compose
<Multi_key> <C> <equal>                 : "€" EuroSign # EURO SIGN
<Multi_key> <equal> <C>                 : "€" EuroSign # EURO SIGN
<Multi_key> <E> <equal>                 : "€" EuroSign # EURO SIGN
<Multi_key> <equal> <E>                 : "€" EuroSign # EURO SIGN

Note my locale is en_US.UTF-8. This suggests what Jim describes.
I.E. lowercase e or c would not work. However it's completely off
the wall in that lower case e and upper case C are all that work for me.
Hence the Compose file above is neither complete or correct.
Other examples of not being correct are for “” and å

As a side note the ‘’ characters which `xkbprint -ll 3 :0.0`
suggests should be bound to AltGr-Shift-V and AltGr-Shift-B
produce instead `'

A general question I have is, is there a way to find the
(compose) key combination for a particular character?
Searching the above file is obviously not sufficient.

p.s. I encountered these problems when writing:
http://www.pixelbeat.org/docs/xkeyboard/
Comment 2 Hans de Goede 2005-02-23 10:52:42 UTC
1) Not Jim, but I (Hans de Goede) said that captials work where as non capitals
don't work for the euro sign.
2) xkbprint also says for my keyboard that it should generate ‘’, but just like
in your case it generates `', which is correct for my plain us keyboard so I
guess this is a bug in xkbprint.
3) What app are you using to test the compose sequences? Please note that gtk+
apps have there own compose sequence handling and thus don't use / honor the
/usr/X11R6/lib/X11/locale/en_US.UTF-8/Compose file.
Comment 3 Pádraig Brady 2005-02-24 06:05:15 UTC
GTK has it's own compose handling!?
That explains what I was seeing. xterm matches the Compose file,
but gnome-terminal doesn't. Another stupid gtk thing I noticed
is that you can enter Ctrl+Shift+20AC for the € character for e.g.
Except you can't in gnome terminal because Ctrl+Shift+C is bound
by default to copy selection.

thanks for the info.
Comment 4 Anthony DeRobertis 2007-02-23 20:29:33 UTC
FYI:
export GTK_IM_MODULE="xim"

will make GTK use normal X compose sequences.
Comment 5 Simos Xenitellis 2007-06-22 13:25:01 UTC
In GNOME you now use  Ctrl-Shift-U <codepoint> in order to print a specific codepoint.
Indeed, GTK+ has its own magic regarding compose sequences.
Comment 6 Jeremy Huddleston Sequoia 2011-09-24 20:57:33 UTC
This looks fixed in current libX11


~/src/freedesktop/src/libX11/nls/en_US.UTF-8 (master) $ grep Euro *
Compose:<Multi_key> <C> <equal>          	: "€"   EuroSign # EURO SIGN
Compose:<Multi_key> <equal> <C>          	: "€"   EuroSign # EURO SIGN
Compose:<Multi_key> <c> <equal>          	: "€"   EuroSign # EURO SIGN
Compose:<Multi_key> <equal> <c>          	: "€"   EuroSign # EURO SIGN
Compose:<Multi_key> <E> <equal>          	: "€"   EuroSign # EURO SIGN
Compose:<Multi_key> <equal> <E>          	: "€"   EuroSign # EURO SIGN
Compose:<Multi_key> <e> <equal>          	: "€"   EuroSign # EURO SIGN
Compose:<Multi_key> <equal> <e>          	: "€"   EuroSign # EURO SIGN
Compose:<Multi_key> <Cyrillic_ES> <equal>	: "€"   EuroSign # EURO SIGN
Compose:<Multi_key> <equal> <Cyrillic_ES>	: "€"   EuroSign # EURO SIGN
Compose:<Multi_key> <Cyrillic_IE> <equal>	: "€"   EuroSign # EURO SIGN
Compose:<Multi_key> <equal> <Cyrillic_IE>	: "€"   EuroSign # EURO SIGN
Compose:<dead_currency> <e> 		      : "€"   EuroSign            # EURO SIGN
Compose.pre:<Multi_key> <C> <equal>          	: "€"   EuroSign # EURO SIGN
Compose.pre:<Multi_key> <equal> <C>          	: "€"   EuroSign # EURO SIGN
Compose.pre:<Multi_key> <c> <equal>          	: "€"   EuroSign # EURO SIGN
Compose.pre:<Multi_key> <equal> <c>          	: "€"   EuroSign # EURO SIGN
Compose.pre:<Multi_key> <E> <equal>          	: "€"   EuroSign # EURO SIGN
Compose.pre:<Multi_key> <equal> <E>          	: "€"   EuroSign # EURO SIGN
Compose.pre:<Multi_key> <e> <equal>          	: "€"   EuroSign # EURO SIGN
Compose.pre:<Multi_key> <equal> <e>          	: "€"   EuroSign # EURO SIGN
Compose.pre:<Multi_key> <Cyrillic_ES> <equal>	: "€"   EuroSign # EURO SIGN
Compose.pre:<Multi_key> <equal> <Cyrillic_ES>	: "€"   EuroSign # EURO SIGN
Compose.pre:<Multi_key> <Cyrillic_IE> <equal>	: "€"   EuroSign # EURO SIGN
Compose.pre:<Multi_key> <equal> <Cyrillic_IE>	: "€"   EuroSign # EURO SIGN
Compose.pre:<dead_currency> <e> 		      : "€"   EuroSign            # EURO SIGN
Comment 7 Hans de Goede 2011-09-25 08:05:51 UTC
I just tried on Fedora 16 beta (libX11-1.4.3), and this is resolved for the Euro sign, but it still does not work for the Pound (L + =) and Yen (Y + =) signs, both of which only work with the capital letter. And for inconsistency the doller cent sign (c + |) only works with the lowercase letter...
Comment 8 Jeremy Huddleston Sequoia 2011-09-25 16:32:43 UTC
Patch sent to xorg-devel for review.
Comment 9 Jeremy Huddleston Sequoia 2011-09-26 00:39:09 UTC
commit 4d78ad4bf6dcabca9bb5f84c770abfbb02d3f7a4
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date:   Sun Sep 25 16:29:17 2011 -0700

    Add additional compose sequences for pound sterling, yen, and cent (mixed case)
    
    https://bugs.freedesktop.org/show_bug.cgi?id=1013
    
    Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
    Reviewed-by: Gaetan Nadon <memsize@videotron.ca>

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.