Commit a48787d3 authored by Peter Hutterer's avatar Peter Hutterer

Handle ssharp in XConvertCase()

lowercase: LATIN SMALL LETTER SHARP S (U+00DF)
uppercase: LATIN CAPITAL LETTER SHARP S (U+1E9E)

The uppercase sharp s (XK_ssharp) is a relatively recent addition to unicode
but was added to the relevant keyboard layouts in xkeyboard-config-2.25
(d1411e5e95c)
xkeyboard-config/xkeyboard-config#144

Alas, the CapsLock behavior was broken on the finnish layout (maybe others).
This was due to xkbcomp using XConvertCase() to determine whether a key
requires the type FOUR_LEVEL_ALPHABETIC or FOUR_LEVEL_SEMIALPHABETIC.

Let's make this function return the right lower/upper symbols for the sharp s
and hope that the world won't get any worse because of it.

#110Signed-off-by: Peter Hutterer's avatarPeter Hutterer <peter.hutterer@who-t.net>
parent b8766a43
......@@ -466,6 +466,8 @@ UCSConvertCase( register unsigned code,
*upper = 0x0178;
else if (code == 0x00b5) /* micro sign */
*upper = 0x039c;
else if (code == 0x00df) /* ssharp */
*upper = 0x1e9e;
return;
}
......@@ -595,6 +597,8 @@ UCSConvertCase( register unsigned code,
}
else if (code == 0x1e9b)
*upper = 0x1e60;
else if (code == 0x1e9e)
*lower = 0x00df; /* ssharp */
}
/* Greek Extended, U+1F00 to U+1FFF */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment