Commit f9b3a14e086443e45d66e047b45221bc52d64e4c

Daniel Stone 2012-03-10T14:36:30

Remove overlay support as well Right now we just silently ignore overlay controls, which is probably bad, but it's not the easiest to fix. Signed-off-by: Daniel Stone <daniel@fooishbar.org>

diff --git a/src/xkbcomp/action.c b/src/xkbcomp/action.c
index 7374652..49d8695 100644
--- a/src/xkbcomp/action.c
+++ b/src/xkbcomp/action.c
@@ -740,10 +740,10 @@ const LookupEntry ctrlNames[] = {
     {"accessxtimeout", XkbAccessXTimeoutMask},
     {"accessxfeedback", XkbAccessXFeedbackMask},
     {"audiblebell", XkbAudibleBellMask},
-    {"overlay1", XkbOverlay1Mask},
-    {"overlay2", XkbOverlay2Mask},
     {"ignoregrouplock", XkbIgnoreGroupLockMask},
     {"all", XkbAllBooleanCtrlsMask},
+    {"overlay1", 0},
+    {"overlay2", 0},
     {"none", 0},
     {NULL, 0}
 };
diff --git a/src/xkbcomp/symbols.c b/src/xkbcomp/symbols.c
index dfaf547..1065e16 100644
--- a/src/xkbcomp/symbols.c
+++ b/src/xkbcomp/symbols.c
@@ -70,7 +70,6 @@ typedef struct _KeyInfo
     unsigned repeat;
     struct xkb_behavior behavior;
     unsigned short vmodmap;
-    unsigned long nameForOverlayKey;
     unsigned long allowNone;
     xkb_atom_t dfltType;
 } KeyInfo;
@@ -102,7 +101,6 @@ InitKeyInfo(KeyInfo * info)
     info->behavior.type = XkbKB_Default;
     info->behavior.data = 0;
     info->vmodmap = 0;
-    info->nameForOverlayKey = 0;
     info->repeat = RepeatUndefined;
     info->allowNone = 0;
 }
@@ -134,7 +132,6 @@ FreeKeyInfo(KeyInfo * info)
     info->behavior.type = XkbKB_Default;
     info->behavior.data = 0;
     info->vmodmap = 0;
-    info->nameForOverlayKey = 0;
     info->repeat = RepeatUndefined;
     info->allowNone = 0;
 }
@@ -544,7 +541,6 @@ MergeKeys(SymbolsInfo * info, KeyInfo * into, KeyInfo * from)
     if (UseNewField(_Key_Behavior, &into->defs, &from->defs, &collide))
     {
         into->behavior = from->behavior;
-        into->nameForOverlayKey = from->nameForOverlayKey;
         into->defs.defined |= _Key_Behavior;
     }
     if (UseNewField(_Key_VModMap, &into->defs, &from->defs, &collide))
@@ -1106,55 +1102,8 @@ SetSymbolsField(KeyInfo * key,
     else if (uStrCasePrefix("overlay", field) ||
              uStrCasePrefix("permanentoverlay", field))
     {
-        Bool permanent = False;
-        char *which;
-        int overlayNdx;
-        if (uStrCasePrefix("permanent", field))
-        {
-            permanent = True;
-            which = &field[sizeof("permanentoverlay") - 1];
-        }
-        else
-        {
-            which = &field[sizeof("overlay") - 1];
-        }
-        if (sscanf(which, "%d", &overlayNdx) == 1)
-        {
-            if (((overlayNdx < 1) || (overlayNdx > 2)) && (warningLevel > 0))
-            {
-                ERROR("Illegal overlay %d specified for %s\n",
-                       overlayNdx, longText(key->name));
-                ACTION("Ignored\n");
-                return False;
-            }
-        }
-        else if (*which == '\0')
-            overlayNdx = 1;
-        else if (warningLevel > 0)
-        {
-            ERROR("Illegal overlay \"%s\" specified for %s\n",
-                   which, longText(key->name));
-            ACTION("Ignored\n");
-            return False;
-        }
-        ok = ExprResolveKeyName(value, &tmp);
-        if (!ok)
-        {
-            ERROR("Illegal overlay key specification for %s\n",
-                   longText(key->name));
-            ACTION("Overlay key must be specified by name\n");
-            return False;
-        }
-        if (overlayNdx == 1)
-            key->behavior.type = XkbKB_Overlay1;
-        else
-            key->behavior.type = XkbKB_Overlay2;
-        if (permanent)
-            key->behavior.type |= XkbKB_Permanent;
-
-        key->behavior.data = 0;
-        key->nameForOverlayKey = KeyNameToLong(tmp.keyName.name);
-        key->defs.defined |= _Key_Behavior;
+        ERROR("Overlays not supported\n");
+        ACTION("Ignoring overlay specification for key %s\n", longText(key->name));
     }
     else if ((uStrCaseCmp(field, "repeating") == 0) ||
              (uStrCaseCmp(field, "repeats") == 0) ||
@@ -1788,7 +1737,7 @@ static Bool
 CopySymbolsDef(struct xkb_desc * xkb, KeyInfo *key, int start_from)
 {
     int i;
-    xkb_keycode_t okc, kc;
+    xkb_keycode_t kc;
     unsigned width, tmp, nGroups;
     struct xkb_key_type * type;
     Bool haveActions, autoType, useAlias;
@@ -1943,22 +1892,6 @@ CopySymbolsDef(struct xkb_desc * xkb, KeyInfo *key, int start_from)
     {
     case XkbKB_Default:
         break;
-    case XkbKB_Overlay1:
-    case XkbKB_Overlay2:
-        /* find key by name! */
-        if (!FindNamedKey(xkb, key->nameForOverlayKey, &okc, True,
-                          CreateKeyNames(xkb), 0))
-        {
-            if (warningLevel >= 1)
-            {
-                WARN("Key %s not found in keycodes\n",
-                      longText(key->nameForOverlayKey));
-                ACTION("Not treating %s as an overlay key \n",
-                        longText(key->name));
-            }
-            break;
-        }
-        key->behavior.data = okc;
     default:
         xkb->server->behaviors[kc] = key->behavior;
         xkb->server->explicit[kc] |= XkbExplicitBehaviorMask;