upload tizen2.0 source
[framework/uifw/xorg/util/x11-xkb-utils.git] / xkbcomp / compat.c
index 03c29ef..2b00142 100644 (file)
@@ -50,6 +50,7 @@ typedef struct _GroupCompatInfo
 {
     unsigned char fileID;
     unsigned char merge;
+    Bool defined;
     unsigned char real_mods;
     unsigned short vmods;
 } GroupCompatInfo;
@@ -280,8 +281,8 @@ AddGroupCompat(CompatInfo * info, unsigned group, GroupCompatInfo * newGC)
         ACTION1("Using %s definition\n",
                 (merge == MergeAugment ? "old" : "new"));
     }
-    if (merge != MergeAugment)
-        *gc = *newGC;
+    if(newGC->defined && (merge != MergeAugment || !gc->defined))
+       *gc = *newGC;
     return True;
 }
 
@@ -656,8 +657,15 @@ HandleInterpDef(InterpDef * def, XkbDescPtr xkb, unsigned merge,
     {
         ERROR("Couldn't determine matching modifiers\n");
         ACTION("Symbol interpretation ignored\n");
-        return False;
+        return True;
     }
+    if (def->ignore)
+    {
+        ERROR("Couldn't lookup keysym\n");
+        ACTION("Symbol interpretation ignored\n");
+        return True;
+    }
+
     if (def->merge != MergeDefault)
         merge = def->merge;
 
@@ -708,6 +716,7 @@ HandleGroupCompatDef(GroupCompatDef * def,
     }
     tmp.real_mods = val.uval & 0xff;
     tmp.vmods = (val.uval >> 8) & 0xffff;
+    tmp.defined = True;
     return AddGroupCompat(info, def->group - 1, &tmp);
 }