Add Cyrillic and Greek to case-checking
authorDaniel Stone <daniel@fooishbar.org>
Thu, 12 Jul 2012 23:10:23 +0000 (00:10 +0100)
committerDaniel Stone <daniel@fooishbar.org>
Thu, 12 Jul 2012 23:10:23 +0000 (00:10 +0100)
Evidently good to have on its own, but also fixes a regression from
xkbcomp where we'd identify implicitly-typed Cyrillic keys as TWO_LEVEL
rather than ALPHABETIC.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
src/misc.c

index 07a675d..f809055 100644 (file)
@@ -207,6 +207,24 @@ _XkbcKSCheckCase(xkb_keysym_t ks)
             (ks >= XKB_KEY_amacron && ks <= XKB_KEY_umacron))
             rtrn |= _XkbKSLower;
         break;
+    case 6: /* Cyrillic */
+        if ((ks >= XKB_KEY_Serbian_DJE && ks <= XKB_KEY_Serbian_DZE) ||
+            (ks >= XKB_KEY_Cyrillic_YU && ks <= XKB_KEY_Cyrillic_HARDSIGN))
+            rtrn |= _XkbKSUpper;
+        if ((ks >= XKB_KEY_Serbian_dje && ks <= XKB_KEY_Serbian_dze) ||
+            (ks >= XKB_KEY_Cyrillic_yu && ks <= XKB_KEY_Cyrillic_hardsign))
+            rtrn |= _XkbKSLower;
+        break;
+    case 7: /* Greek */
+        if ((ks >= XKB_KEY_Greek_ALPHAaccent &&
+             ks <= XKB_KEY_Greek_OMEGAaccent) ||
+            (ks >= XKB_KEY_Greek_ALPHA && ks <= XKB_KEY_Greek_OMEGA))
+            rtrn |= _XkbKSUpper;
+        if ((ks >= XKB_KEY_Greek_alphaaccent &&
+             ks <= XKB_KEY_Greek_omegaaccent) ||
+            (ks >= XKB_KEY_Greek_alpha && ks <= XKB_KEY_Greek_OMEGA))
+            rtrn |= _XkbKSLower;
+        break;
     case 18: /* latin 8 */
         if ((ks == XKB_KEY_Wcircumflex) ||
             (ks == XKB_KEY_Ycircumflex) ||