static void ClearCompatInfo(CompatInfo * info, XkbDescPtr xkb) { register int i; if (info->name != NULL) uFree(info->name); info->name = NULL; info->dflt.defs.defined = 0; info->dflt.defs.merge = MergeAugment; info->dflt.interp.flags = 0; info->dflt.interp.virtual_mod = XkbNoModifier; info->dflt.interp.act.type = XkbSA_NoAction; for (i = 0; i < XkbAnyActionDataSize; i++) { info->dflt.interp.act.data[i] = 0; } ClearIndicatorMapInfo(xkb->dpy, &info->ledDflt); info->nInterps = 0; info->interps = (SymInterpInfo *) ClearCommonInfo(&info->interps->defs); bzero((char *) &info->groupCompat[0], XkbNumKbdGroups * sizeof(GroupCompatInfo)); info->leds = (LEDInfo *) ClearCommonInfo(&info->leds->defs); /* 3/30/94 (ef) -- XXX! Should free action info here */ ClearVModInfo(&info->vmods, xkb); return; }
static void InitCompatInfo(CompatInfo * info, XkbDescPtr xkb) { register int i; info->xkb = xkb; info->name = NULL; info->fileID = 0; info->errorCount = 0; info->nInterps = 0; info->interps = NULL; info->act = NULL; info->dflt.defs.fileID = info->fileID; info->dflt.defs.defined = 0; info->dflt.defs.merge = MergeOverride; info->dflt.interp.flags = 0; info->dflt.interp.virtual_mod = XkbNoModifier; info->dflt.interp.act.type = XkbSA_NoAction; for (i = 0; i < XkbAnyActionDataSize; i++) { info->dflt.interp.act.data[i] = 0; } ClearIndicatorMapInfo(xkb->dpy, &info->ledDflt); info->ledDflt.defs.fileID = info->fileID; info->ledDflt.defs.defined = 0; info->ledDflt.defs.merge = MergeOverride; bzero((char *) &info->groupCompat[0], XkbNumKbdGroups * sizeof(GroupCompatInfo)); info->leds = NULL; InitVModInfo(&info->vmods, xkb); return; }