diff options
Diffstat (limited to 'src/cout.c')
-rw-r--r-- | src/cout.c | 1688 |
1 files changed, 876 insertions, 812 deletions
@@ -38,1013 +38,1077 @@ #include "XKMformat.h" #include "XKBfileInt.h" -#define lowbit(x) ((x) & (-(x))) +#define lowbit(x) ((x) & (-(x))) static Bool -WriteCHdrVMods(FILE *file,Display *dpy,XkbDescPtr xkb) +WriteCHdrVMods(FILE *file, Display *dpy, XkbDescPtr xkb) { -register int i,nOut; - - if ((!xkb)||(!xkb->names)||(!xkb->names->vmods)) - return False; - for (i=nOut=0;i<XkbNumVirtualMods;i++) { - if (xkb->names->vmods[i]!=None) { - fprintf(file,"%s#define vmod_%s %d\n",(nOut<1?"\n":""), - XkbAtomText(dpy,xkb->names->vmods[i],XkbCFile), - i); - nOut++; - } + register int i, nOut; + + if ((!xkb) || (!xkb->names) || (!xkb->names->vmods)) + return False; + for (i = nOut = 0; i < XkbNumVirtualMods; i++) { + if (xkb->names->vmods[i] != None) { + fprintf(file, "%s#define vmod_%s %d\n", + (nOut < 1 ? "\n" : ""), + XkbAtomText(dpy, xkb->names->vmods[i], XkbCFile), i); + nOut++; + } } - for (i=nOut=0;i<XkbNumVirtualMods;i++) { - if (xkb->names->vmods[i]!=None) { - fprintf(file,"%s#define vmod_%sMask (1<<%d)\n", - (nOut<1?"\n":""), - XkbAtomText(dpy,xkb->names->vmods[i],XkbCFile) - ,i); - nOut++; - } + for (i = nOut = 0; i < XkbNumVirtualMods; i++) { + if (xkb->names->vmods[i] != None) { + fprintf(file, "%s#define vmod_%sMask (1<<%d)\n", + (nOut < 1 ? "\n" : ""), + XkbAtomText(dpy, xkb->names->vmods[i], XkbCFile), i); + nOut++; + } } - if (nOut>0) - fprintf(file,"\n"); + if (nOut > 0) + fprintf(file, "\n"); return True; } static Bool -WriteCHdrKeycodes(FILE *file,XkbDescPtr xkb) +WriteCHdrKeycodes(FILE * file, XkbDescPtr xkb) { -Atom kcName; -register unsigned i; -char buf[8]; + Atom kcName; + register unsigned i; + char buf[8]; - if ((!xkb)||(!xkb->names)||(!xkb->names->keys)) { - _XkbLibError(_XkbErrMissingNames,"WriteCHdrKeycodes",0); - return False; + if ((!xkb) || (!xkb->names) || (!xkb->names->keys)) { + _XkbLibError(_XkbErrMissingNames, "WriteCHdrKeycodes", 0); + return False; } - kcName= xkb->names->keycodes; - buf[4]= '\0'; - if (xkb->names->keycodes!=None) - fprintf(file,"/* keycodes name is \"%s\" */\n", - XkbAtomText(xkb->dpy,kcName,XkbMessage)); - fprintf(file,"static XkbKeyNameRec keyNames[NUM_KEYS]= {\n"); - for (i=0;i<=xkb->max_key_code;i++) { - sprintf(buf,"\"%s\"",XkbKeyNameText(xkb->names->keys[i].name,XkbCFile)); - if (i!=xkb->max_key_code) { - fprintf(file," { %6s },",buf); - if ((i&3)==3) - fprintf(file,"\n"); - } - else { - fprintf(file," { %6s }\n",buf); - } + kcName = xkb->names->keycodes; + buf[4] = '\0'; + if (xkb->names->keycodes != None) + fprintf(file, "/* keycodes name is \"%s\" */\n", + XkbAtomText(xkb->dpy, kcName, XkbMessage)); + fprintf(file, "static XkbKeyNameRec keyNames[NUM_KEYS]= {\n"); + for (i = 0; i <= xkb->max_key_code; i++) { + sprintf(buf, "\"%s\"", + XkbKeyNameText(xkb->names->keys[i].name, XkbCFile)); + if (i != xkb->max_key_code) { + fprintf(file, " { %6s },", buf); + if ((i & 3) == 3) + fprintf(file, "\n"); + } + else { + fprintf(file, " { %6s }\n", buf); + } } - fprintf(file,"};\n"); + fprintf(file, "};\n"); return True; } static void -WriteTypePreserve( FILE * file, - Display * dpy, - char * prefix, - XkbDescPtr xkb, - XkbKeyTypePtr type) +WriteTypePreserve(FILE * file, + Display * dpy, + char * prefix, + XkbDescPtr xkb, + XkbKeyTypePtr type) { -register unsigned i; -XkbModsPtr pre; - - fprintf(file,"static XkbModsRec preserve_%s[%d]= {\n",prefix, - type->map_count); - for (i=0,pre=type->preserve;i<type->map_count;i++,pre++) { - if (i!=0) - fprintf(file,",\n"); - fprintf(file," { %15s, ",XkbModMaskText(pre->mask,XkbCFile)); - fprintf(file,"%15s, ",XkbModMaskText(pre->real_mods,XkbCFile)); - fprintf(file,"%15s }",XkbVModMaskText(dpy,xkb,0,pre->vmods,XkbCFile)); + register unsigned i; + XkbModsPtr pre; + + fprintf(file, "static XkbModsRec preserve_%s[%d]= {\n", prefix, + type->map_count); + for (i = 0, pre = type->preserve; i < type->map_count; i++, pre++) { + if (i != 0) + fprintf(file, ",\n"); + fprintf(file, " { %15s, ", XkbModMaskText(pre->mask, XkbCFile)); + fprintf(file, "%15s, ", XkbModMaskText(pre->real_mods, XkbCFile)); + fprintf(file, "%15s }", + XkbVModMaskText(dpy, xkb, 0, pre->vmods, XkbCFile)); } - fprintf(file,"\n};\n"); + fprintf(file, "\n};\n"); return; } static void -WriteTypeInitFunc(FILE *file,Display *dpy,XkbDescPtr xkb) +WriteTypeInitFunc(FILE *file, Display *dpy, XkbDescPtr xkb) { -register unsigned i,n; -XkbKeyTypePtr type; -Atom * names; -char * prefix = NULL; - - fprintf(file,"\n\nstatic void\n"); - fprintf(file,"initTypeNames(DPYTYPE dpy)\n"); - fprintf(file,"{\n"); - for (i=0,type=xkb->map->types;i<xkb->map->num_types;i++,type++) { - if (!(prefix = strdup(XkbAtomText(dpy,type->name,XkbCFile)))) { - _XkbLibError(_XkbErrBadAlloc,"WriteTypeInitFunc",0); - fprintf(file,"#error XkbErrBadAlloc WriteTypeInitFunc\n"); - break; - } - if (type->name!=None) - fprintf(file," dflt_types[%d].name= GET_ATOM(dpy,\"%s\");\n",i, - XkbAtomText(dpy,type->name,XkbCFile)); - names= type->level_names; - if (names!=NULL) { - char *tmp; - for (n=0;n<type->num_levels;n++) { - if (names[n]==None) - continue; - tmp= XkbAtomText(dpy,names[n],XkbCFile); - if (tmp==NULL) - continue; - fprintf(file," lnames_%s[%d]= ",prefix,n); - fprintf(file,"GET_ATOM(dpy,\"%s\");\n",tmp); - } - } - free(prefix); - prefix = NULL; + register unsigned i, n; + XkbKeyTypePtr type; + Atom * names; + char * prefix = NULL; + + fprintf(file, "\n\nstatic void\n"); + fprintf(file, "initTypeNames(DPYTYPE dpy)\n"); + fprintf(file, "{\n"); + for (i = 0, type = xkb->map->types; i < xkb->map->num_types; i++, type++) { + if (!(prefix = strdup(XkbAtomText(dpy, type->name, XkbCFile)))) { + _XkbLibError(_XkbErrBadAlloc, "WriteTypeInitFunc", 0); + fprintf(file, "#error XkbErrBadAlloc WriteTypeInitFunc\n"); + break; + } + if (type->name != None) + fprintf(file, " dflt_types[%d].name= GET_ATOM(dpy,\"%s\");\n", + i, XkbAtomText(dpy, type->name, XkbCFile)); + names = type->level_names; + if (names != NULL) { + char *tmp; + + for (n = 0; n < type->num_levels; n++) { + if (names[n] == None) + continue; + tmp = XkbAtomText(dpy, names[n], XkbCFile); + if (tmp == NULL) + continue; + fprintf(file, " lnames_%s[%d]= ", prefix, n); + fprintf(file, "GET_ATOM(dpy,\"%s\");\n", tmp); + } + } + free(prefix); + prefix = NULL; } - fprintf(file,"}\n"); + fprintf(file, "}\n"); return; } static Bool -WriteCHdrKeyTypes(FILE *file,Display *dpy,XkbDescPtr xkb) +WriteCHdrKeyTypes(FILE *file, Display *dpy, XkbDescPtr xkb) { -register unsigned i,n; -XkbClientMapPtr map; -XkbKeyTypePtr type; -char * prefix = NULL; - - if ((!xkb)||(!xkb->map)||(!xkb->map->types)) { - _XkbLibError(_XkbErrMissingTypes,"WriteCHdrKeyTypes",0); - return False; + register unsigned i, n; + XkbClientMapPtr map; + XkbKeyTypePtr type; + char * prefix = NULL; + + if ((!xkb) || (!xkb->map) || (!xkb->map->types)) { + _XkbLibError(_XkbErrMissingTypes, "WriteCHdrKeyTypes", 0); + return False; } - if (xkb->map->num_types<XkbNumRequiredTypes) { - _XkbLibError(_XkbErrMissingReqTypes,"WriteCHdrKeyTypes",0); - return 0; + if (xkb->map->num_types < XkbNumRequiredTypes) { + _XkbLibError(_XkbErrMissingReqTypes, "WriteCHdrKeyTypes", 0); + return 0; } - map= xkb->map; - if ((xkb->names!=NULL)&&(xkb->names->types!=None)) { - fprintf(file,"/* types name is \"%s\" */\n", - XkbAtomText(dpy,xkb->names->types,XkbCFile)); + map = xkb->map; + if ((xkb->names != NULL) && (xkb->names->types != None)) { + fprintf(file, "/* types name is \"%s\" */\n", + XkbAtomText(dpy, xkb->names->types, XkbCFile)); } - for (i=0,type=map->types;i<map->num_types;i++,type++) { - if (!(prefix = strdup(XkbAtomText(dpy,type->name,XkbCFile)))) { - _XkbLibError(_XkbErrBadAlloc,"WriteCHdrKeyTypes",0); - return False; - } - - if (type->map_count>0) { - XkbKTMapEntryPtr entry; - entry= type->map; - fprintf(file,"static XkbKTMapEntryRec map_%s[%d]= {\n",prefix, - type->map_count); - for (n=0;n<(unsigned)type->map_count;n++,entry++) { - if (n!=0) - fprintf(file,",\n"); - fprintf(file," { %d, %6d, { %15s, %15s, %15s } }", - entry->active, - entry->level, - XkbModMaskText(entry->mods.mask,XkbCFile), - XkbModMaskText(entry->mods.real_mods,XkbCFile), - XkbVModMaskText(dpy,xkb,0,entry->mods.vmods,XkbCFile)); - } - fprintf(file,"\n};\n"); - - if (type->preserve) - WriteTypePreserve(file,dpy,prefix,xkb,type); - } - if (type->level_names!=NULL) { - fprintf(file,"static Atom lnames_%s[%d];\n",prefix, - type->num_levels); - } - fprintf(file,"\n"); - free(prefix); - prefix = NULL; + for (i = 0, type = map->types; i < map->num_types; i++, type++) { + if (!(prefix = strdup(XkbAtomText(dpy, type->name, XkbCFile)))) { + _XkbLibError(_XkbErrBadAlloc, "WriteCHdrKeyTypes", 0); + return False; + } + + if (type->map_count > 0) { + XkbKTMapEntryPtr entry; + + entry = type->map; + fprintf(file, "static XkbKTMapEntryRec map_%s[%d]= {\n", prefix, + type->map_count); + for (n = 0; n < (unsigned) type->map_count; n++, entry++) { + if (n != 0) + fprintf(file, ",\n"); + fprintf(file, " { %d, %6d, { %15s, %15s, %15s } }", + entry->active, + entry->level, + XkbModMaskText(entry->mods.mask, XkbCFile), + XkbModMaskText(entry->mods.real_mods, XkbCFile), + XkbVModMaskText(dpy, xkb, 0, entry->mods.vmods, + XkbCFile)); + } + fprintf(file, "\n};\n"); + + if (type->preserve) + WriteTypePreserve(file, dpy, prefix, xkb, type); + } + if (type->level_names != NULL) { + fprintf(file, "static Atom lnames_%s[%d];\n", prefix, + type->num_levels); + } + fprintf(file, "\n"); + free(prefix); + prefix = NULL; } - fprintf(file,"static XkbKeyTypeRec dflt_types[]= {\n"); - for (i=0,type=map->types;i<(unsigned)map->num_types;i++,type++) { - if (!(prefix = strdup(XkbAtomText(dpy,type->name,XkbCFile)))) { - _XkbLibError(_XkbErrBadAlloc,"WriteCHdrKeyTypes",0); - return False; - } - if (i!=0) fprintf(file,",\n"); - fprintf(file," {\n { %15s, %15s, %15s },\n", - XkbModMaskText(type->mods.mask,XkbCFile), - XkbModMaskText(type->mods.real_mods,XkbCFile), - XkbVModMaskText(dpy,xkb,0,type->mods.vmods,XkbCFile)); - fprintf(file," %d,\n",type->num_levels); - fprintf(file," %d,",type->map_count); - if (type->map_count>0) - fprintf(file," map_%s,",prefix); - else fprintf(file," NULL,"); - if (type->preserve) - fprintf(file," preserve_%s,\n",prefix); - else fprintf(file," NULL,\n"); - if (type->level_names!=NULL) - fprintf(file," None, lnames_%s\n }",prefix); - else fprintf(file," None, NULL\n }"); - free(prefix); - prefix = NULL; + fprintf(file, "static XkbKeyTypeRec dflt_types[]= {\n"); + for (i = 0, type = map->types; i < (unsigned) map->num_types; i++, type++) { + if (!(prefix = strdup(XkbAtomText(dpy, type->name, XkbCFile)))) { + _XkbLibError(_XkbErrBadAlloc, "WriteCHdrKeyTypes", 0); + return False; + } + if (i != 0) + fprintf(file, ",\n"); + fprintf(file, " {\n { %15s, %15s, %15s },\n", + XkbModMaskText(type->mods.mask, XkbCFile), + XkbModMaskText(type->mods.real_mods, XkbCFile), + XkbVModMaskText(dpy, xkb, 0, type->mods.vmods, XkbCFile)); + fprintf(file, " %d,\n", type->num_levels); + fprintf(file, " %d,", type->map_count); + if (type->map_count > 0) + fprintf(file, " map_%s,", prefix); + else + fprintf(file, " NULL,"); + if (type->preserve) + fprintf(file, " preserve_%s,\n", prefix); + else + fprintf(file, " NULL,\n"); + if (type->level_names != NULL) + fprintf(file, " None, lnames_%s\n }", prefix); + else + fprintf(file, " None, NULL\n }"); + free(prefix); + prefix = NULL; } - fprintf(file,"\n};\n"); - fprintf(file,"#define num_dflt_types (sizeof(dflt_types)/sizeof(XkbKeyTypeRec))\n"); - WriteTypeInitFunc(file,dpy,xkb); + fprintf(file, "\n};\n"); + fprintf(file, + "#define num_dflt_types (sizeof(dflt_types)/sizeof(XkbKeyTypeRec))\n"); + WriteTypeInitFunc(file, dpy, xkb); return True; } static Bool -WriteCHdrCompatMap(FILE *file,Display *dpy,XkbDescPtr xkb) +WriteCHdrCompatMap(FILE *file, Display *dpy, XkbDescPtr xkb) { -register unsigned i; -XkbCompatMapPtr compat; -XkbSymInterpretPtr interp; + register unsigned i; + XkbCompatMapPtr compat; + XkbSymInterpretPtr interp; - if ((!xkb)||(!xkb->compat)||(!xkb->compat->sym_interpret)) { - _XkbLibError(_XkbErrMissingSymInterps,"WriteCHdrInterp",0); - return False; + if ((!xkb) || (!xkb->compat) || (!xkb->compat->sym_interpret)) { + _XkbLibError(_XkbErrMissingSymInterps, "WriteCHdrInterp", 0); + return False; } - compat= xkb->compat; - if ((xkb->names!=NULL)&&(xkb->names->compat!=None)) { - fprintf(file,"/* compat name is \"%s\" */\n", - XkbAtomText(dpy,xkb->names->compat,XkbCFile)); + compat = xkb->compat; + if ((xkb->names != NULL) && (xkb->names->compat != None)) { + fprintf(file, "/* compat name is \"%s\" */\n", + XkbAtomText(dpy, xkb->names->compat, XkbCFile)); } - fprintf(file,"static XkbSymInterpretRec dfltSI[%d]= {\n", - compat->num_si); - interp= compat->sym_interpret; - for (i=0;i<compat->num_si;i++,interp++) { - XkbAction *act; - act= (XkbAction *)&interp->act; - if (i!=0) fprintf(file,",\n"); - fprintf(file," { %s, ",XkbKeysymText(interp->sym,XkbCFile)); - fprintf(file,"0x%04x,\n",interp->flags); - fprintf(file," %s, ",XkbSIMatchText(interp->match,XkbCFile)); - fprintf(file,"%s,\n",XkbModMaskText(interp->mods,XkbCFile)); - fprintf(file," %d,\n",interp->virtual_mod); - fprintf(file," %s }",XkbActionText(dpy,xkb,act,XkbCFile)); + fprintf(file, "static XkbSymInterpretRec dfltSI[%d]= {\n", compat->num_si); + interp = compat->sym_interpret; + for (i = 0; i < compat->num_si; i++, interp++) { + XkbAction *act; + + act = (XkbAction *) &interp->act; + if (i != 0) + fprintf(file, ",\n"); + fprintf(file, " { %s, ", XkbKeysymText(interp->sym, XkbCFile)); + fprintf(file, "0x%04x,\n", interp->flags); + fprintf(file, " %s, ", XkbSIMatchText(interp->match, XkbCFile)); + fprintf(file, "%s,\n", XkbModMaskText(interp->mods, XkbCFile)); + fprintf(file, " %d,\n", interp->virtual_mod); + fprintf(file, " %s }", XkbActionText(dpy, xkb, act, XkbCFile)); } - fprintf(file,"\n};\n"); + fprintf(file, "\n};\n"); fprintf(file, - "#define num_dfltSI (sizeof(dfltSI)/sizeof(XkbSymInterpretRec))\n"); - fprintf(file,"\nstatic XkbCompatMapRec compatMap= {\n"); - fprintf(file," dfltSI,\n"); - fprintf(file," { /* group compatibility */\n "); - for (i=0;i<XkbNumKbdGroups;i++) { - XkbModsPtr gc; - gc= &xkb->compat->groups[i]; - fprintf(file,"%s{ %12s, %12s, %12s }", - ((i==0)?"":",\n "), - XkbModMaskText(gc->mask,XkbCFile), - XkbModMaskText(gc->real_mods,XkbCFile), - XkbVModMaskText(xkb->dpy,xkb,0,gc->vmods,XkbCFile)); + "#define num_dfltSI (sizeof(dfltSI)/sizeof(XkbSymInterpretRec))\n"); + fprintf(file, "\nstatic XkbCompatMapRec compatMap= {\n"); + fprintf(file, " dfltSI,\n"); + fprintf(file, " { /* group compatibility */\n "); + for (i = 0; i < XkbNumKbdGroups; i++) { + XkbModsPtr gc; + + gc = &xkb->compat->groups[i]; + fprintf(file, "%s{ %12s, %12s, %12s }", + ((i == 0) ? "" : ",\n "), + XkbModMaskText(gc->mask, XkbCFile), + XkbModMaskText(gc->real_mods, XkbCFile), + XkbVModMaskText(xkb->dpy, xkb, 0, gc->vmods, XkbCFile)); } - fprintf(file,"\n },\n"); - fprintf(file," num_dfltSI, num_dfltSI\n"); - fprintf(file,"};\n\n"); + fprintf(file, "\n },\n"); + fprintf(file, " num_dfltSI, num_dfltSI\n"); + fprintf(file, "};\n\n"); return True; } static Bool -WriteCHdrSymbols(FILE *file,XkbDescPtr xkb) +WriteCHdrSymbols(FILE *file, XkbDescPtr xkb) { -register unsigned i; + register unsigned i; - if ((!xkb)||(!xkb->map)||(!xkb->map->syms)||(!xkb->map->key_sym_map)) { - _XkbLibError(_XkbErrMissingSymbols,"WriteCHdrSymbols",0); - return False; + if ((!xkb) || (!xkb->map) || (!xkb->map->syms) || (!xkb->map->key_sym_map)) { + _XkbLibError(_XkbErrMissingSymbols, "WriteCHdrSymbols", 0); + return False; } - fprintf(file,"#define NUM_SYMBOLS %d\n",xkb->map->num_syms); - if (xkb->map->num_syms>0) { - register KeySym *sym; - sym= xkb->map->syms; - fprintf(file,"static KeySym symCache[NUM_SYMBOLS]= {\n"); - for (i=0;i<xkb->map->num_syms;i++,sym++) { - if (i==0) fprintf(file," "); - else if (i%4==0) fprintf(file,",\n "); - else fprintf(file,", "); - fprintf(file,"%15s",XkbKeysymText(*sym,XkbCFile)); - } - fprintf(file,"\n};\n"); + fprintf(file, "#define NUM_SYMBOLS %d\n", xkb->map->num_syms); + if (xkb->map->num_syms > 0) { + register KeySym *sym; + + sym = xkb->map->syms; + fprintf(file, "static KeySym symCache[NUM_SYMBOLS]= {\n"); + for (i = 0; i < xkb->map->num_syms; i++, sym++) { + if (i == 0) + fprintf(file, " "); + else if (i % 4 == 0) + fprintf(file, ",\n "); + else + fprintf(file, ", "); + fprintf(file, "%15s", XkbKeysymText(*sym, XkbCFile)); + } + fprintf(file, "\n};\n"); } - if (xkb->max_key_code>0) { - register XkbSymMapPtr map; - map= xkb->map->key_sym_map; - fprintf(file,"static XkbSymMapRec symMap[NUM_KEYS]= {\n"); - for (i=0;i<=xkb->max_key_code;i++,map++) { - if (i==0) fprintf(file," "); - else if ((i&3)==0) fprintf(file,",\n "); - else fprintf(file,", "); - fprintf(file, "{ %2d, 0x%x, %3d }", - map->kt_index[0], map->group_info, map->offset); - } - fprintf(file,"\n};\n"); + if (xkb->max_key_code > 0) { + register XkbSymMapPtr map; + + map = xkb->map->key_sym_map; + fprintf(file, "static XkbSymMapRec symMap[NUM_KEYS]= {\n"); + for (i = 0; i <= xkb->max_key_code; i++, map++) { + if (i == 0) + fprintf(file, " "); + else if ((i & 3) == 0) + fprintf(file, ",\n "); + else + fprintf(file, ", "); + fprintf(file, "{ %2d, 0x%x, %3d }", + map->kt_index[0], map->group_info, map->offset); + } + fprintf(file, "\n};\n"); } return True; } static Bool -WriteCHdrClientMap(FILE *file,Display *dpy,XkbDescPtr xkb) +WriteCHdrClientMap(FILE *file, Display *dpy, XkbDescPtr xkb) { - if ((!xkb)||(!xkb->map)||(!xkb->map->syms)||(!xkb->map->key_sym_map)) { - _XkbLibError(_XkbErrMissingSymbols,"WriteCHdrClientMap",0); - return False; + if ((!xkb) || (!xkb->map) || (!xkb->map->syms) || (!xkb->map->key_sym_map)) { + _XkbLibError(_XkbErrMissingSymbols, "WriteCHdrClientMap", 0); + return False; } - if (!WriteCHdrKeyTypes(file,dpy,xkb)) - return False; - if (!WriteCHdrSymbols(file,xkb)) - return False; - fprintf(file,"static XkbClientMapRec clientMap= {\n"); - fprintf(file," NUM_TYPES, NUM_TYPES, types, \n"); - fprintf(file," NUM_SYMBOLS, NUM_SYMBOLS, symCache, symMap\n"); - fprintf(file,"};\n\n"); + if (!WriteCHdrKeyTypes(file, dpy, xkb)) + return False; + if (!WriteCHdrSymbols(file, xkb)) + return False; + fprintf(file, "static XkbClientMapRec clientMap= {\n"); + fprintf(file, " NUM_TYPES, NUM_TYPES, types, \n"); + fprintf(file, " NUM_SYMBOLS, NUM_SYMBOLS, symCache, symMap\n"); + fprintf(file, "};\n\n"); return True; } static Bool -WriteCHdrServerMap(FILE *file,Display *dpy,XkbDescPtr xkb) +WriteCHdrServerMap(FILE *file, Display *dpy, XkbDescPtr xkb) { -register unsigned i; + register unsigned i; - if ((!xkb)||(!xkb->map)||(!xkb->map->syms)||(!xkb->map->key_sym_map)) { - _XkbLibError(_XkbErrMissingSymbols,"WriteCHdrServerMap",0); - return False; + if ((!xkb) || (!xkb->map) || (!xkb->map->syms) || (!xkb->map->key_sym_map)) { + _XkbLibError(_XkbErrMissingSymbols, "WriteCHdrServerMap", 0); + return False; } - if (xkb->server->num_acts>0) { - register XkbAnyAction *act; - act= (XkbAnyAction *)xkb->server->acts; - fprintf(file,"#define NUM_ACTIONS %d\n",xkb->server->num_acts); - fprintf(file,"static XkbAnyAction actionCache[NUM_ACTIONS]= {\n"); - for (i=0;i<xkb->server->num_acts;i++,act++) { - if (i==0) fprintf(file," "); - else fprintf(file,",\n "); - fprintf(file,"%s",XkbActionText(dpy,xkb,(XkbAction *)act,XkbCFile)); - } - fprintf(file,"\n};\n"); + if (xkb->server->num_acts > 0) { + register XkbAnyAction *act; + + act = (XkbAnyAction *) xkb->server->acts; + fprintf(file, "#define NUM_ACTIONS %d\n", xkb->server->num_acts); + fprintf(file, "static XkbAnyAction actionCache[NUM_ACTIONS]= {\n"); + for (i = 0; i < xkb->server->num_acts; i++, act++) { + if (i == 0) + fprintf(file, " "); + else + fprintf(file, ",\n "); + fprintf(file, "%s", + XkbActionText(dpy, xkb, (XkbAction *) act, XkbCFile)); + } + fprintf(file, "\n};\n"); } - fprintf(file,"static unsigned short keyActions[NUM_KEYS]= {\n"); - for (i=0;i<=xkb->max_key_code;i++) { - if (i==0) fprintf(file," "); - else if ((i&0xf)==0) fprintf(file,",\n "); - else fprintf(file,", "); - fprintf(file,"%2d",xkb->server->key_acts[i]); + fprintf(file, "static unsigned short keyActions[NUM_KEYS]= {\n"); + for (i = 0; i <= xkb->max_key_code; i++) { + if (i == 0) + fprintf(file, " "); + else if ((i & 0xf) == 0) + fprintf(file, ",\n "); + else + fprintf(file, ", "); + fprintf(file, "%2d", xkb->server->key_acts[i]); } - fprintf(file,"\n};\n"); - fprintf(file,"static XkbBehavior behaviors[NUM_KEYS]= {\n"); - for (i=0;i<=xkb->max_key_code;i++) { - if (i==0) fprintf(file," "); - else if ((i&0x3)==0) fprintf(file,",\n "); - else fprintf(file,", "); - if (xkb->server->behaviors) { - fprintf(file,"%s", - XkbBehaviorText(xkb,&xkb->server->behaviors[i],XkbCFile)); - } - else fprintf(file,"{ 0, 0 }"); + fprintf(file, "\n};\n"); + fprintf(file, "static XkbBehavior behaviors[NUM_KEYS]= {\n"); + for (i = 0; i <= xkb->max_key_code; i++) { + if (i == 0) + fprintf(file, " "); + else if ((i & 0x3) == 0) + fprintf(file, ",\n "); + else + fprintf(file, ", "); + if (xkb->server->behaviors) { + fprintf(file, "%s", + XkbBehaviorText(xkb, &xkb->server->behaviors[i], XkbCFile)); + } + else + fprintf(file, "{ 0, 0 }"); } - fprintf(file,"\n};\n"); - fprintf(file,"static unsigned char explicit_parts[NUM_KEYS]= {\n"); - for (i=0;i<=xkb->max_key_code;i++) { - if (i==0) fprintf(file," "); - else if ((i&0x7)==0) fprintf(file,",\n "); - else fprintf(file,", "); - if ((xkb->server->explicit==NULL)||(xkb->server->explicit[i]==0)) - fprintf(file," 0"); - else fprintf(file,"0x%02x",xkb->server->explicit[i]); + fprintf(file, "\n};\n"); + fprintf(file, "static unsigned char explicit_parts[NUM_KEYS]= {\n"); + for (i = 0; i <= xkb->max_key_code; i++) { + if (i == 0) + fprintf(file, " "); + else if ((i & 0x7) == 0) + fprintf(file, ",\n "); + else + fprintf(file, ", "); + if ((xkb->server->explicit == NULL) || (xkb->server->explicit[i] == 0)) + fprintf(file, " 0"); + else + fprintf(file, "0x%02x", xkb->server->explicit[i]); } - fprintf(file,"\n};\n"); - fprintf(file,"static unsigned short vmodmap[NUM_KEYS]= {\n"); - for (i=0;i<xkb->max_key_code;i++) { - if (i==0) fprintf(file," "); - else if ((i&0x7)==0) fprintf(file,",\n "); - else fprintf(file,", "); - if ((xkb->server->vmodmap==NULL)||(xkb->server->vmodmap[i]==0)) - fprintf(file," 0"); - else fprintf(file,"0x%04x",xkb->server->vmodmap[i]); + fprintf(file, "\n};\n"); + fprintf(file, "static unsigned short vmodmap[NUM_KEYS]= {\n"); + for (i = 0; i < xkb->max_key_code; i++) { + if (i == 0) + fprintf(file, " "); + else if ((i & 0x7) == 0) + fprintf(file, ",\n "); + else + fprintf(file, ", "); + if ((xkb->server->vmodmap == NULL) || (xkb->server->vmodmap[i] == 0)) + fprintf(file, " 0"); + else + fprintf(file, "0x%04x", xkb->server->vmodmap[i]); } - fprintf(file,"};\n"); - fprintf(file,"static XkbServerMapRec serverMap= {\n"); - fprintf(file," %d, %d, (XkbAction *)actionCache,\n", - xkb->server->num_acts,xkb->server->num_acts); - fprintf(file," behaviors, keyActions, explicit_parts,\n"); - for (i=0;i<XkbNumVirtualMods;i++) { - if (i==0) fprintf(file," { "); - else if (i==8) fprintf(file,",\n "); - else fprintf(file,", "); - fprintf(file,"%3d",xkb->server->vmods[i]); + fprintf(file, "};\n"); + fprintf(file, "static XkbServerMapRec serverMap= {\n"); + fprintf(file, " %d, %d, (XkbAction *)actionCache,\n", + xkb->server->num_acts, xkb->server->num_acts); + fprintf(file, " behaviors, keyActions, explicit_parts,\n"); + for (i = 0; i < XkbNumVirtualMods; i++) { + if (i == 0) + fprintf(file, " { "); + else if (i == 8) + fprintf(file, ",\n "); + else + fprintf(file, ", "); + fprintf(file, "%3d", xkb->server->vmods[i]); } - fprintf(file," },\n"); - fprintf(file," vmodmap\n"); - fprintf(file,"};\n\n"); + fprintf(file, " },\n"); + fprintf(file, " vmodmap\n"); + fprintf(file, "};\n\n"); return True; } static Bool -WriteCHdrIndicators(FILE *file,Display *dpy,XkbDescPtr xkb) +WriteCHdrIndicators(FILE *file, Display *dpy, XkbDescPtr xkb) { -register int i,nNames; -XkbIndicatorMapPtr imap; + register int i, nNames; + XkbIndicatorMapPtr imap; - if (xkb->indicators==NULL) - return True; + if (xkb->indicators == NULL) + return True; fprintf(file, "static XkbIndicatorRec indicators= {\n"); fprintf(file, " 0x%lx,\n {\n", - (long)xkb->indicators->phys_indicators); - for (imap=xkb->indicators->maps,i=nNames=0;i<XkbNumIndicators;i++,imap++) { - fprintf(file,"%s { 0x%02x, %s, 0x%02x, %s, { %s, ", - (i!=0?",\n":""), - imap->flags, - XkbIMWhichStateMaskText(imap->which_groups,XkbCFile), - imap->groups, - XkbIMWhichStateMaskText(imap->which_mods,XkbCFile), - XkbModMaskText(imap->mods.mask,XkbCFile)); - fprintf(file," %s, %s }, %s }", - XkbModMaskText(imap->mods.real_mods,XkbCFile), - XkbVModMaskText(dpy,xkb,0,imap->mods.vmods,XkbCFile), - XkbControlsMaskText(imap->ctrls,XkbCFile)); - if (xkb->names && (xkb->names->indicators[i]!=None)) - nNames++; + (long) xkb->indicators->phys_indicators); + for (imap = xkb->indicators->maps, i = nNames = 0; i < XkbNumIndicators; + i++, imap++) { + fprintf(file, "%s { 0x%02x, %s, 0x%02x, %s, { %s, ", + (i != 0 ? ",\n" : ""), imap->flags, + XkbIMWhichStateMaskText(imap->which_groups, XkbCFile), + imap->groups, XkbIMWhichStateMaskText(imap->which_mods, + XkbCFile), + XkbModMaskText(imap->mods.mask, XkbCFile)); + fprintf(file, " %s, %s }, %s }", + XkbModMaskText(imap->mods.real_mods, XkbCFile), + XkbVModMaskText(dpy, xkb, 0, imap->mods.vmods, XkbCFile), + XkbControlsMaskText(imap->ctrls, XkbCFile)); + if (xkb->names && (xkb->names->indicators[i] != None)) + nNames++; } - fprintf(file,"\n }\n};\n"); - if (nNames>0) { - fprintf(file,"static void\n"); - fprintf(file,"initIndicatorNames(DPYTYPE dpy,XkbDescPtr xkb)\n"); - fprintf(file,"{\n"); - for (i=0;i<XkbNumIndicators;i++) { - Atom name; - if (xkb->names->indicators[i]==None) - continue; - name= xkb->names->indicators[i]; - fprintf(file," xkb->names->indicators[%2d]= ",i); - fprintf(file,"GET_ATOM(dpy,\"%s\");\n", - XkbAtomText(dpy,name,XkbCFile)); - } - fprintf(file,"}\n"); + fprintf(file, "\n }\n};\n"); + if (nNames > 0) { + fprintf(file, "static void\n"); + fprintf(file, "initIndicatorNames(DPYTYPE dpy,XkbDescPtr xkb)\n"); + fprintf(file, "{\n"); + for (i = 0; i < XkbNumIndicators; i++) { + Atom name; + + if (xkb->names->indicators[i] == None) + continue; + name = xkb->names->indicators[i]; + fprintf(file, " xkb->names->indicators[%2d]= ", i); + fprintf(file, "GET_ATOM(dpy,\"%s\");\n", + XkbAtomText(dpy, name, XkbCFile)); + } + fprintf(file, "}\n"); } return True; } static Bool -WriteCHdrGeomProps(FILE *file,XkbDescPtr xkb,XkbGeometryPtr geom) +WriteCHdrGeomProps(FILE *file, XkbDescPtr xkb, XkbGeometryPtr geom) { - if (geom->num_properties>0) { - register int i; - fprintf(file,"\nstatic XkbPropertyRec g_props[%d]= {\n", - geom->num_properties); - for (i=0;i<geom->num_properties;i++) { - fprintf(file,"%s { \"%s\", \"%s\" }",(i==0?"":",\n"), - XkbStringText(geom->properties[i].name,XkbCFile), - XkbStringText(geom->properties[i].value,XkbCFile)); - } - fprintf(file,"\n};\n"); + if (geom->num_properties > 0) { + register int i; + + fprintf(file, "\nstatic XkbPropertyRec g_props[%d]= {\n", + geom->num_properties); + for (i = 0; i < geom->num_properties; i++) { + fprintf(file, "%s { \"%s\", \"%s\" }", + (i == 0 ? "" : ",\n"), + XkbStringText(geom->properties[i].name, XkbCFile), + XkbStringText(geom->properties[i].value, XkbCFile)); + } + fprintf(file, "\n};\n"); } return True; } static Bool -WriteCHdrGeomColors(FILE *file,XkbDescPtr xkb,XkbGeometryPtr geom) +WriteCHdrGeomColors(FILE *file, XkbDescPtr xkb, XkbGeometryPtr geom) { - if (geom->num_colors>0) { - register int i; - fprintf(file,"\nstatic XkbColorRec g_colors[%d]= {\n",geom->num_colors); - for (i=0;i<geom->num_colors;i++) { - fprintf(file,"%s { %3d, \"%s\" }",(i==0?"":",\n"), - geom->colors[i].pixel, - XkbStringText(geom->colors[i].spec,XkbCFile)); - } - fprintf(file,"\n};\n"); + if (geom->num_colors > 0) { + register int i; + + fprintf(file, "\nstatic XkbColorRec g_colors[%d]= {\n", + geom->num_colors); + for (i = 0; i < geom->num_colors; i++) { + fprintf(file, "%s { %3d, \"%s\" }", + (i == 0 ? "" : ",\n"), geom->colors[i].pixel, + XkbStringText(geom->colors[i].spec, XkbCFile)); + } + fprintf(file, "\n};\n"); } return True; } static Bool -WriteCHdrGeomOutlines(FILE *file,int nOL,XkbOutlinePtr ol,int shapeNdx) +WriteCHdrGeomOutlines(FILE *file, int nOL, XkbOutlinePtr ol, int shapeNdx) { -register int o,p; - - - for (o=0;o<nOL;o++) { - fprintf(file,"\nstatic XkbPointRec pts_sh%02do%02d[]= {\n",shapeNdx,o); - for (p=0;p<ol[o].num_points;p++) { - if (p==0) fprintf(file," "); - else if ((p&0x3)==0) fprintf(file,",\n "); - else fprintf(file,", "); - fprintf(file,"{ %4d, %4d }", - ol[o].points[p].x,ol[o].points[p].y); - } - fprintf(file,"\n};"); + register int o, p; + + for (o = 0; o < nOL; o++) { + fprintf(file, "\nstatic XkbPointRec pts_sh%02do%02d[]= {\n", shapeNdx, + o); + for (p = 0; p < ol[o].num_points; p++) { + if (p == 0) + fprintf(file, " "); + else if ((p & 0x3) == 0) + fprintf(file, ",\n "); + else + fprintf(file, ", "); + fprintf(file, "{ %4d, %4d }", ol[o].points[p].x, ol[o].points[p].y); + } + fprintf(file, "\n};"); } - fprintf(file,"\n\nstatic XkbOutlineRec ol_sh%02d[]= {\n",shapeNdx); - for (o=0;o<nOL;o++) { - fprintf(file,"%s { %d, %d, %d, pts_sh%02do%02d }", - (o==0?"":",\n"), - ol[o].num_points,ol[o].num_points, - ol[o].corner_radius,shapeNdx,o); + fprintf(file, "\n\nstatic XkbOutlineRec ol_sh%02d[]= {\n", shapeNdx); + for (o = 0; o < nOL; o++) { + fprintf(file, "%s { %d, %d, %d, pts_sh%02do%02d }", + (o == 0 ? "" : ",\n"), + ol[o].num_points, ol[o].num_points, + ol[o].corner_radius, shapeNdx, o); } - fprintf(file,"\n};\n"); + fprintf(file, "\n};\n"); return True; } static Bool -WriteCHdrGeomShapes(FILE *file,XkbDescPtr xkb,XkbGeometryPtr geom) +WriteCHdrGeomShapes(FILE *file, XkbDescPtr xkb, XkbGeometryPtr geom) { -register int s; -register XkbShapePtr shape; + register int s; + register XkbShapePtr shape; - for (s=0,shape=geom->shapes;s<geom->num_shapes;s++,shape++) { - WriteCHdrGeomOutlines(file,shape->num_outlines,shape->outlines,s); + for (s = 0, shape = geom->shapes; s < geom->num_shapes; s++, shape++) { + WriteCHdrGeomOutlines(file, shape->num_outlines, shape->outlines, s); } - fprintf(file,"\n\nstatic XkbShapeRec g_shapes[%d]= {\n",geom->num_shapes); - for (s=0,shape=geom->shapes;s<geom->num_shapes;s++,shape++) { - fprintf(file,"%s { None, %3d, %3d, ol_sh%02d, ", - (s==0?"":",\n"),shape->num_outlines, - shape->num_outlines,s); - if (shape->approx) { - fprintf(file,"&ol_sh%02d[%2d], ",s, - XkbOutlineIndex(shape,shape->approx)); - } - else fprintf(file," NULL, "); - if (shape->primary) { - fprintf(file,"&ol_sh%02d[%2d],\n",s, - XkbOutlineIndex(shape,shape->primary)); - } - else fprintf(file," NULL,\n"); - fprintf(file," { %4d, %4d, %4d, %4d } }", - shape->bounds.x1,shape->bounds.y1, - shape->bounds.x2,shape->bounds.y2); + fprintf(file, "\n\nstatic XkbShapeRec g_shapes[%d]= {\n", geom->num_shapes); + for (s = 0, shape = geom->shapes; s < geom->num_shapes; s++, shape++) { + fprintf(file, "%s { None, %3d, %3d, ol_sh%02d, ", + (s == 0 ? "" : ",\n"), shape->num_outlines, + shape->num_outlines, s); + if (shape->approx) { + fprintf(file, "&ol_sh%02d[%2d], ", s, + XkbOutlineIndex(shape, shape->approx)); + } + else + fprintf(file, " NULL, "); + if (shape->primary) { + fprintf(file, "&ol_sh%02d[%2d],\n", s, + XkbOutlineIndex(shape, shape->primary)); + } + else + fprintf(file, " NULL,\n"); + fprintf(file, + " { %4d, %4d, %4d, %4d } }", + shape->bounds.x1, shape->bounds.y1, + shape->bounds.x2, shape->bounds.y2); } - fprintf(file,"\n};\n"); + fprintf(file, "\n};\n"); return True; } static Bool -WriteCHdrGeomDoodads( FILE * file, - XkbDescPtr xkb, - XkbGeometryPtr geom, - XkbSectionPtr section, - int section_num) +WriteCHdrGeomDoodads(FILE * file, + XkbDescPtr xkb, + XkbGeometryPtr geom, + XkbSectionPtr section, + int section_num) { -int nd,d; -XkbDoodadPtr doodad; -Display * dpy; - - dpy= xkb->dpy; - if (section==NULL) { - if (geom->num_doodads>0) { - fprintf(file,"static XkbDoodadRec g_doodads[%d];\n", - geom->num_doodads); - } - fprintf(file,"static void\n"); - fprintf(file,"_InitGeomDoodads(DPYTYPE dpy,XkbGeometryPtr geom)\n"); - fprintf(file,"{\n"); - fprintf(file,"register XkbDoodadPtr doodads;\n\n"); - fprintf(file," doodads= geom->doodads;\n"); - nd= geom->num_doodads; - doodad= geom->doodads; + int nd, d; + XkbDoodadPtr doodad; + Display * dpy; + + dpy = xkb->dpy; + if (section == NULL) { + if (geom->num_doodads > 0) { + fprintf(file, "static XkbDoodadRec g_doodads[%d];\n", + geom->num_doodads); + } + fprintf(file, "static void\n"); + fprintf(file, "_InitGeomDoodads(DPYTYPE dpy,XkbGeometryPtr geom)\n"); + fprintf(file, "{\n"); + fprintf(file, "register XkbDoodadPtr doodads;\n\n"); + fprintf(file, " doodads= geom->doodads;\n"); + nd = geom->num_doodads; + doodad = geom->doodads; } else { - if (section->num_doodads>0) { - fprintf(file,"static XkbDoodadRec doodads_s%02d[%d];\n", - section_num,section->num_doodads); - } - fprintf(file,"static void\n"); - fprintf(file,"_InitS%02dDoodads(",section_num); - fprintf(file," DPYTYPE dpy,\n"); - fprintf(file," XkbGeometryPtr geom,\n"); - fprintf(file," XkbSectionPtr section)\n"); - fprintf(file,"{\n"); - fprintf(file,"register XkbDoodadPtr doodads;\n\n"); - fprintf(file," doodads= section->doodads;\n"); - nd= geom->num_doodads; - doodad= geom->doodads; + if (section->num_doodads > 0) { + fprintf(file, "static XkbDoodadRec doodads_s%02d[%d];\n", + section_num, section->num_doodads); + } + fprintf(file, "static void\n"); + fprintf(file, "_InitS%02dDoodads(", section_num); + fprintf(file, " DPYTYPE dpy,\n"); + fprintf(file, " XkbGeometryPtr geom,\n"); + fprintf(file, " XkbSectionPtr section)\n"); + fprintf(file, "{\n"); + fprintf(file, "register XkbDoodadPtr doodads;\n\n"); + fprintf(file, " doodads= section->doodads;\n"); + nd = geom->num_doodads; + doodad = geom->doodads; } - for (d=0;d<nd;d++,doodad++) { - if (d!=0) fprintf(file,"\n"); - fprintf(file," doodads[%d].any.name= GET_ATOM(dpy,\"%s\");\n",d, - XkbAtomText(dpy,doodad->any.name,XkbCFile)); - fprintf(file," doodads[%d].any.type= %s;\n",d, - XkbDoodadTypeText(doodad->any.type,XkbCFile)); - fprintf(file," doodads[%d].any.priority= %d;\n",d, - doodad->any.priority); - fprintf(file," doodads[%d].any.top= %d;\n",d,doodad->any.top); - fprintf(file," doodads[%d].any.left= %d;\n",d,doodad->any.left); - fprintf(file," doodads[%d].any.angle= %d;\n",d,doodad->any.angle); - switch (doodad->any.type) { - case XkbOutlineDoodad: - case XkbSolidDoodad: - fprintf(file," doodads[%d].shape.color_ndx= %d;\n",d, - doodad->shape.color_ndx); - fprintf(file," doodads[%d].shape.shape_ndx= %d;\n",d, - doodad->shape.shape_ndx); - break; - case XkbTextDoodad: - fprintf(file," doodads[%d].text.width= %d;\n",d, - doodad->text.width); - fprintf(file," doodads[%d].text.height= %d;\n",d, - doodad->text.height); - fprintf(file," doodads[%d].text.color_ndx= %d;\n",d, - doodad->text.color_ndx); - fprintf(file," doodads[%d].text.text= \"%s\";\n",d, - XkbStringText(doodad->text.text,XkbCFile)); - fprintf(file," doodads[%d].text.font= \"%s\";\n",d, - XkbStringText(doodad->text.font,XkbCFile)); - break; - case XkbIndicatorDoodad: - fprintf(file," doodads[%d].indicator.shape_ndx= %d;\n",d, - doodad->indicator.shape_ndx); - fprintf(file," doodads[%d].indicator.on_color_ndx= %d;\n",d, - doodad->indicator.on_color_ndx); - fprintf(file," doodads[%d].indicator.off_color_ndx= %d;\n",d, - doodad->indicator.off_color_ndx); - break; - case XkbLogoDoodad: - fprintf(file," doodads[%d].logo.color_ndx= %d;\n",d, - doodad->logo.color_ndx); - fprintf(file," doodads[%d].logo.shape_ndx= %d;\n",d, - doodad->logo.shape_ndx); - fprintf(file," doodads[%d].logo.logo_name= \"%s\";\n",d, - XkbStringText(doodad->logo.logo_name,XkbCFile)); - break; - } + for (d = 0; d < nd; d++, doodad++) { + if (d != 0) + fprintf(file, "\n"); + fprintf(file, " doodads[%d].any.name= GET_ATOM(dpy,\"%s\");\n", + d, XkbAtomText(dpy, doodad->any.name, XkbCFile)); + fprintf(file, " doodads[%d].any.type= %s;\n", + d, XkbDoodadTypeText(doodad->any.type, XkbCFile)); + fprintf(file, " doodads[%d].any.priority= %d;\n", + d, doodad->any.priority); + fprintf(file, " doodads[%d].any.top= %d;\n", d, doodad->any.top); + fprintf(file, " doodads[%d].any.left= %d;\n", d, doodad->any.left); + fprintf(file, " doodads[%d].any.angle= %d;\n", d, doodad->any.angle); + switch (doodad->any.type) { + case XkbOutlineDoodad: + case XkbSolidDoodad: + fprintf(file, " doodads[%d].shape.color_ndx= %d;\n", + d, doodad->shape.color_ndx); + fprintf(file, " doodads[%d].shape.shape_ndx= %d;\n", + d, doodad->shape.shape_ndx); + break; + case XkbTextDoodad: + fprintf(file, " doodads[%d].text.width= %d;\n", + d, doodad->text.width); + fprintf(file, " doodads[%d].text.height= %d;\n", + d, doodad->text.height); + fprintf(file, " doodads[%d].text.color_ndx= %d;\n", + d, doodad->text.color_ndx); + fprintf(file, " doodads[%d].text.text= \"%s\";\n", + d, XkbStringText(doodad->text.text, XkbCFile)); + fprintf(file, " doodads[%d].text.font= \"%s\";\n", + d, XkbStringText(doodad->text.font, XkbCFile)); + break; + case XkbIndicatorDoodad: + fprintf(file, " doodads[%d].indicator.shape_ndx= %d;\n", + d, doodad->indicator.shape_ndx); + fprintf(file, " doodads[%d].indicator.on_color_ndx= %d;\n", + d, doodad->indicator.on_color_ndx); + fprintf(file, " doodads[%d].indicator.off_color_ndx= %d;\n", + d, doodad->indicator.off_color_ndx); + break; + case XkbLogoDoodad: + fprintf(file, " doodads[%d].logo.color_ndx= %d;\n", + d, doodad->logo.color_ndx); + fprintf(file, " doodads[%d].logo.shape_ndx= %d;\n", + d, doodad->logo.shape_ndx); + fprintf(file, " doodads[%d].logo.logo_name= \"%s\";\n", + d, XkbStringText(doodad->logo.logo_name, XkbCFile)); + break; + } } - fprintf(file,"}\n"); + fprintf(file, "}\n"); return True; } static Bool -WriteCHdrGeomOverlays( FILE * file, - XkbDescPtr xkb, - XkbSectionPtr section, - int section_num) +WriteCHdrGeomOverlays(FILE * file, + XkbDescPtr xkb, + XkbSectionPtr section, + int section_num) { -register int o,r,k; -XkbOverlayPtr ol; -XkbOverlayRowPtr row; -XkbOverlayKeyPtr key; - - if (section->num_overlays<1) - return True; - for (o=0,ol=section->overlays;o<section->num_overlays;o++,ol++) { - for (r=0,row=ol->rows;r<ol->num_rows;r++,row++) { - fprintf(file,"static XkbOverlayKeyRec olkeys_s%02dr%02d[%d]= {\n", - section_num,r,row->num_keys); - for (k=0,key=row->keys;k<row->num_keys;k++,key++) { - fprintf(file,"%s { {\"%s\"}, {\"%s\"} }", - (k==0?"":",\n"), - XkbKeyNameText(key->over.name,XkbCFile), - XkbKeyNameText(key->under.name,XkbCFile)); - } - fprintf(file,"\n};\n"); - } - fprintf(file,"static XkbOverlayRowRec olrows_s%02d[%d]= {\n", - section_num,section->num_rows); - for (r=0,row=ol->rows;r<ol->num_rows;r++,row++) { - fprintf(file,"%s { %4d, %4d, %4d, olkeys_s%02dr%02d }", - (r==0?"":",\n"), - row->row_under,row->num_keys,row->num_keys, - section_num,r); - } - fprintf(file,"\n};\n"); + register int o, r, k; + XkbOverlayPtr ol; + XkbOverlayRowPtr row; + XkbOverlayKeyPtr key; + + if (section->num_overlays < 1) + return True; + for (o = 0, ol = section->overlays; o < section->num_overlays; o++, ol++) { + for (r = 0, row = ol->rows; r < ol->num_rows; r++, row++) { + fprintf(file, "static XkbOverlayKeyRec olkeys_s%02dr%02d[%d]= {\n", + section_num, r, row->num_keys); + for (k = 0, key = row->keys; k < row->num_keys; k++, key++) { + fprintf(file, "%s { {\"%s\"}, {\"%s\"} }", + (k == 0 ? "" : ",\n"), + XkbKeyNameText(key->over.name, XkbCFile), + XkbKeyNameText(key->under.name, XkbCFile)); + } + fprintf(file, "\n};\n"); + } + fprintf(file, "static XkbOverlayRowRec olrows_s%02d[%d]= {\n", + section_num, section->num_rows); + for (r = 0, row = ol->rows; r < ol->num_rows; r++, row++) { + fprintf(file, "%s { %4d, %4d, %4d, olkeys_s%02dr%02d }", + (r == 0 ? "" : ",\n"), + row->row_under, row->num_keys, row->num_keys, + section_num, r); + } + fprintf(file, "\n};\n"); } - fprintf(file,"static XkbOverlayRec overlays_s%02d[%d]= {\n",section_num, - section->num_overlays); - for (o=0,ol=section->overlays;o<section->num_overlays;o++,ol++) { - fprintf(file,"%s {\n",(o==0?"":",\n")); - fprintf(file," None, /* name */\n"); - fprintf(file," NULL, /* section_under */\n"); - fprintf(file," %4d, /* num_rows */\n",ol->num_rows); - fprintf(file," %4d, /* sz_rows */\n",ol->num_rows); - fprintf(file," olrows_s%02d,\n",section_num); - fprintf(file," NULL /* bounds */\n"); - fprintf(file," }"); + fprintf(file, "static XkbOverlayRec overlays_s%02d[%d]= {\n", section_num, + section->num_overlays); + for (o = 0, ol = section->overlays; o < section->num_overlays; o++, ol++) { + fprintf(file, "%s {\n", (o == 0 ? "" : ",\n")); + fprintf(file, " None, /* name */\n"); + fprintf(file, " NULL, /* section_under */\n"); + fprintf(file, " %4d, /* num_rows */\n", ol->num_rows); + fprintf(file, " %4d, /* sz_rows */\n", ol->num_rows); + fprintf(file, " olrows_s%02d,\n", section_num); + fprintf(file, " NULL /* bounds */\n"); + fprintf(file, " }"); } - fprintf(file,"\n};\n"); - fprintf(file,"static void\n"); - fprintf(file,"_InitS%02dOverlay(",section_num); - fprintf(file," DPYTYPE dpy,\n"); - fprintf(file," XkbGeometryPtr geom,\n"); - fprintf(file," XkbSectionPtr section)\n"); - fprintf(file,"{\n"); - fprintf(file,"XkbOverlayPtr ol;\n\n"); - fprintf(file," ol= section->overlays;\n"); - for (o=0,ol=section->overlays;o<section->num_overlays;o++,ol++) { - fprintf(file," ol[%2d].name= GET_ATOM(dpy,\"%s\");\n",o, - XkbAtomText(xkb->dpy,ol->name,XkbCFile)); - fprintf(file," ol[%2d].section_under= section;\n",o); + fprintf(file, "\n};\n"); + fprintf(file, "static void\n"); + fprintf(file, "_InitS%02dOverlay(", section_num); + fprintf(file, " DPYTYPE dpy,\n"); + fprintf(file, " XkbGeometryPtr geom,\n"); + fprintf(file, " XkbSectionPtr section)\n"); + fprintf(file, "{\n"); + fprintf(file, "XkbOverlayPtr ol;\n\n"); + fprintf(file, " ol= section->overlays;\n"); + for (o = 0, ol = section->overlays; o < section->num_overlays; o++, ol++) { + fprintf(file, " ol[%2d].name= GET_ATOM(dpy,\"%s\");\n", + o, XkbAtomText(xkb->dpy, ol->name, XkbCFile)); + fprintf(file, " ol[%2d].section_under= section;\n", o); } - fprintf(file,"}\n"); + fprintf(file, "}\n"); return True; } static Bool -WriteCHdrGeomRows( FILE * file, - XkbDescPtr xkb, - XkbSectionPtr section, - int section_num) +WriteCHdrGeomRows(FILE * file, + XkbDescPtr xkb, + XkbSectionPtr section, + int section_num) { -register int k,r; -register XkbRowPtr row; -register XkbKeyPtr key; - - for (r=0,row=section->rows;r<section->num_rows;r++,row++) { - fprintf(file,"static XkbKeyRec keys_s%02dr%02d[]= {\n",section_num,r); - for (k=0,key=row->keys;k<row->num_keys;k++,key++) { - fprintf(file,"%s { { \"%s\" }, %4d, %4d, %4d }", - (k==0?"":",\n"), - XkbKeyNameText(key->name.name,XkbCFile), - key->gap,key->shape_ndx,key->color_ndx); - } - fprintf(file,"\n};\n"); + register int k, r; + register XkbRowPtr row; + register XkbKeyPtr key; + + for (r = 0, row = section->rows; r < section->num_rows; r++, row++) { + fprintf(file, "static XkbKeyRec keys_s%02dr%02d[]= {\n", + section_num, r); + for (k = 0, key = row->keys; k < row->num_keys; k++, key++) { + fprintf(file, "%s { { \"%s\" }, %4d, %4d, %4d }", + (k == 0 ? "" : ",\n"), + XkbKeyNameText(key->name.name, XkbCFile), + key->gap, key->shape_ndx, key->color_ndx); + } + fprintf(file, "\n};\n"); } - fprintf(file,"static XkbRowRec rows_s%02d[]= {\n",section_num); - for (r=0,row=section->rows;r<section->num_rows;r++,row++) { - fprintf(file,"%s { %4d, %4d, %2d, %2d, %1d, keys_s%02dr%02d, ", - (r==0?"":",\n"), - row->top,row->left,row->num_keys,row->num_keys, - (row->vertical!=0), - section_num,r); - fprintf(file," { %4d, %4d, %4d, %4d } }", - row->bounds.x1,row->bounds.y1, - row->bounds.x2,row->bounds.y2); + fprintf(file, "static XkbRowRec rows_s%02d[]= {\n", section_num); + for (r = 0, row = section->rows; r < section->num_rows; r++, row++) { + fprintf(file, "%s { %4d, %4d, %2d, %2d, %1d, keys_s%02dr%02d, ", + (r == 0 ? "" : ",\n"), + row->top, row->left, row->num_keys, row->num_keys, + (row->vertical != 0), section_num, r); + fprintf(file, " { %4d, %4d, %4d, %4d } }", + row->bounds.x1, row->bounds.y1, row->bounds.x2, row->bounds.y2); } - fprintf(file,"\n};\n"); + fprintf(file, "\n};\n"); return True; } static Bool -WriteCHdrGeomSections(FILE *file,XkbDescPtr xkb,XkbGeometryPtr geom) +WriteCHdrGeomSections(FILE *file, XkbDescPtr xkb, XkbGeometryPtr geom) { -register int s; -register XkbSectionPtr section; + register int s; + register XkbSectionPtr section; - for (s=0,section=geom->sections;s<geom->num_sections;s++,section++) { - WriteCHdrGeomRows(file,xkb,section,s); + for (s = 0, section = geom->sections; s < geom->num_sections; + s++, section++) { + WriteCHdrGeomRows(file, xkb, section, s); #ifdef NOTYET - if (section->num_doodads>0) - WriteCHdrGeomDoodads(file,xkb,geom,section,s); + if (section->num_doodads > 0) + WriteCHdrGeomDoodads(file, xkb, geom, section, s); #endif - if (section->num_overlays>0) - WriteCHdrGeomOverlays(file,xkb,section,s); + if (section->num_overlays > 0) + WriteCHdrGeomOverlays(file, xkb, section, s); } - fprintf(file,"\nstatic XkbSectionRec g_sections[%d]= {\n", - geom->num_sections); - for (s=0,section=geom->sections;s<geom->num_sections;s++,section++) { - if (s!=0) fprintf(file,",\n"); - fprintf(file," {\n None, /* name */\n"); - fprintf(file," %4d, /* priority */\n",section->priority); - fprintf(file," %4d, /* top */\n",section->top); - fprintf(file," %4d, /* left */\n",section->left); - fprintf(file," %4d, /* width */\n",section->width); - fprintf(file," %4d, /* height */\n",section->height); - fprintf(file," %4d, /* angle */\n",section->angle); - fprintf(file," %4d, /* num_rows */\n",section->num_rows); - fprintf(file," %4d, /* num_doodads */\n",section->num_doodads); - fprintf(file," %4d, /* num_overlays */\n",section->num_overlays); - fprintf(file," %4d, /* sz_rows */\n",section->num_rows); - fprintf(file," %4d, /* sz_doodads */\n",section->num_doodads); - fprintf(file," %4d, /* sz_overlays */\n",section->num_overlays); - if (section->num_rows>0) - fprintf(file," rows_s%02d,\n",s); - else fprintf(file," NULL, /* rows */\n"); - if (section->num_doodads>0) - fprintf(file," doodads_s%02d,\n",s); - else fprintf(file," NULL, /* doodads */\n"); - fprintf(file," { %4d, %4d, %4d, %4d }, /* bounds */\n", - section->bounds.x1,section->bounds.y1, - section->bounds.x2,section->bounds.y2); - if (section->num_overlays>0) - fprintf(file," overlays_s%02d\n",s); - else fprintf(file," NULL /* overlays */\n"); - fprintf(file," }"); + fprintf(file, "\nstatic XkbSectionRec g_sections[%d]= {\n", + geom->num_sections); + for (s = 0, section = geom->sections; s < geom->num_sections; + s++, section++) { + if (s != 0) + fprintf(file, ",\n"); + fprintf(file, " {\n None, /* name */\n"); + fprintf(file, " %4d, /* priority */\n", section->priority); + fprintf(file, " %4d, /* top */\n", section->top); + fprintf(file, " %4d, /* left */\n", section->left); + fprintf(file, " %4d, /* width */\n", section->width); + fprintf(file, " %4d, /* height */\n", section->height); + fprintf(file, " %4d, /* angle */\n", section->angle); + fprintf(file, " %4d, /* num_rows */\n", section->num_rows); + fprintf(file, " %4d, /* num_doodads */\n", section->num_doodads); + fprintf(file, " %4d, /* num_overlays */\n", section->num_overlays); + fprintf(file, " %4d, /* sz_rows */\n", section->num_rows); + fprintf(file, " %4d, /* sz_doodads */\n", section->num_doodads); + fprintf(file, " %4d, /* sz_overlays */\n", section->num_overlays); + if (section->num_rows > 0) + fprintf(file, " rows_s%02d,\n", s); + else + fprintf(file, " NULL, /* rows */\n"); + if (section->num_doodads > 0) + fprintf(file, " doodads_s%02d,\n", s); + else + fprintf(file, " NULL, /* doodads */\n"); + fprintf(file, " { %4d, %4d, %4d, %4d }, /* bounds */\n", + section->bounds.x1, section->bounds.y1, + section->bounds.x2, section->bounds.y2); + if (section->num_overlays > 0) + fprintf(file, " overlays_s%02d\n", s); + else + fprintf(file, " NULL /* overlays */\n"); + fprintf(file, " }"); } - fprintf(file,"\n};\n"); - fprintf(file,"\nstatic Bool\n"); - fprintf(file,"_InitSections(DPYTYPE dpy,XkbGeometryPtr geom)\n"); - fprintf(file,"{\nXkbSectionPtr sections;\n\n"); - fprintf(file," sections= geom->sections;\n"); - for (s=0,section=geom->sections;s<geom->num_sections;s++,section++) { - if (section->num_doodads>0) { - fprintf(file," _InitS%02dDoodads(dpy,geom,§ions[%d]);\n", - s,s); - } - if (section->num_overlays>0) { - fprintf(file," _InitS%02dOverlays(dpy,geom,§ions[%d]);\n", - s,s); - } + fprintf(file, "\n};\n"); + fprintf(file, "\nstatic Bool\n"); + fprintf(file, "_InitSections(DPYTYPE dpy,XkbGeometryPtr geom)\n"); + fprintf(file, "{\nXkbSectionPtr sections;\n\n"); + fprintf(file, " sections= geom->sections;\n"); + for (s = 0, section = geom->sections; s < geom->num_sections; + s++, section++) { + if (section->num_doodads > 0) { + fprintf(file, " _InitS%02dDoodads(dpy,geom,§ions[%d]);\n", + s, s); + } + if (section->num_overlays > 0) { + fprintf(file, " _InitS%02dOverlays(dpy,geom,§ions[%d]);\n", + s, s); + } } - fprintf(file,"}\n"); + fprintf(file, "}\n"); return True; } static Bool -WriteCHdrGeomAliases(FILE *file,XkbDescPtr xkb,XkbGeometryPtr geom) +WriteCHdrGeomAliases(FILE *file, XkbDescPtr xkb, XkbGeometryPtr geom) { - if (geom->num_key_aliases>0) { - register int i; - fprintf(file,"\nstatic XkbKeyAliasRec g_aliases[%d]= {\n", - geom->num_key_aliases); - for (i=0;i<geom->num_key_aliases;i++) { - fprintf(file,"%s { \"%s\", \"%s\" }",(i==0?"":",\n"), - XkbKeyNameText(geom->key_aliases[i].real,XkbCFile), - XkbKeyNameText(geom->key_aliases[i].alias,XkbCFile)); - } - fprintf(file,"\n};\n"); + if (geom->num_key_aliases > 0) { + register int i; + + fprintf(file, "\nstatic XkbKeyAliasRec g_aliases[%d]= {\n", + geom->num_key_aliases); + for (i = 0; i < geom->num_key_aliases; i++) { + fprintf(file, "%s { \"%s\", \"%s\" }", + (i == 0 ? "" : ",\n"), + XkbKeyNameText(geom->key_aliases[i].real, XkbCFile), + XkbKeyNameText(geom->key_aliases[i].alias, XkbCFile)); + } + fprintf(file, "\n};\n"); } return True; } static Bool -WriteCHdrGeometry(FILE *file,XkbDescPtr xkb) +WriteCHdrGeometry(FILE *file, XkbDescPtr xkb) { -XkbGeometryPtr geom; -register int i; + XkbGeometryPtr geom; + register int i; - if ((!xkb)||(!xkb->geom)) { - _XkbLibError(_XkbErrMissingGeometry,"WriteCHdrGeometry",0); - return False; + if ((!xkb) || (!xkb->geom)) { + _XkbLibError(_XkbErrMissingGeometry, "WriteCHdrGeometry", 0); + return False; } - geom= xkb->geom; - WriteCHdrGeomProps(file,xkb,geom); - WriteCHdrGeomColors(file,xkb,geom); - WriteCHdrGeomShapes(file,xkb,geom); - WriteCHdrGeomSections(file,xkb,geom); - WriteCHdrGeomDoodads(file,xkb,geom,NULL,0); - WriteCHdrGeomAliases(file,xkb,geom); - fprintf(file,"\nstatic XkbGeometryRec geom= {\n"); - fprintf(file," None, /* name */\n"); - fprintf(file," %d, %d, /* width, height */\n",geom->width_mm, - geom->height_mm); - if (geom->label_font) { - fprintf(file," \"%s\",/* label font */\n", - XkbStringText(geom->label_font,XkbCFile)); - } - else fprintf(file," NULL, /* label font */\n"); - if (geom->label_color) { - fprintf(file," &g_colors[%d], /* label color */\n", - XkbGeomColorIndex(geom,geom->label_color)); - } - else fprintf(file," NULL, /* label color */\n"); - if (geom->base_color) { - fprintf(file," &g_colors[%d], /* base color */\n", - XkbGeomColorIndex(geom,geom->base_color)); - } - else fprintf(file," NULL, /* base color */\n"); - fprintf(file," %d, %d, %d, /* sz: props, colors, shapes */\n", - geom->num_properties,geom->num_colors, - geom->num_shapes); - fprintf(file," %d, %d, %d, /* sz: sections, doodads, aliases */\n", - geom->num_sections,geom->num_doodads, - geom->num_key_aliases); - fprintf(file," %d, %d, %d, /* num: props, colors, shapes */\n", - geom->num_properties,geom->num_colors, - geom->num_shapes); - fprintf(file," %d, %d, %d, /* num: sections, doodads, aliases */\n", - geom->num_sections,geom->num_doodads, - geom->num_key_aliases); - fprintf(file," %s, %s, %s,\n", - (geom->num_properties>0?"g_props":"NULL"), - (geom->num_colors>0?"g_colors":"NULL"), - (geom->num_shapes>0?"g_shapes":"NULL")); - fprintf(file," %s, %s, %s\n", - (geom->num_sections>0?"g_sections":"NULL"), - (geom->num_doodads>0?"g_doodads":"NULL"), - (geom->num_key_aliases>0?"g_aliases":"NULL")); - fprintf(file,"};\n\n"); - fprintf(file,"static Bool\n"); - fprintf(file,"_InitHdrGeom(DPYTYPE dpy,XkbGeometryPtr geom)\n"); - fprintf(file,"{\n"); - if (geom->name!=None) { - fprintf(file," geom->name= GET_ATOM(dpy,\"%s\");\n", - XkbAtomText(xkb->dpy,geom->name,XkbCFile)); + geom = xkb->geom; + WriteCHdrGeomProps(file, xkb, geom); + WriteCHdrGeomColors(file, xkb, geom); + WriteCHdrGeomShapes(file, xkb, geom); + WriteCHdrGeomSections(file, xkb, geom); + WriteCHdrGeomDoodads(file, xkb, geom, NULL, 0); + WriteCHdrGeomAliases(file, xkb, geom); + fprintf(file, "\nstatic XkbGeometryRec geom= {\n"); + fprintf(file, " None, /* name */\n"); + fprintf(file, " %d, %d, /* width, height */\n", + geom->width_mm, geom->height_mm); + if (geom->label_font) + fprintf(file, " \"%s\",/* label font */\n", + XkbStringText(geom->label_font, XkbCFile)); + else + fprintf(file, " NULL, /* label font */\n"); + if (geom->label_color) + fprintf(file, " &g_colors[%d], /* label color */\n", + XkbGeomColorIndex(geom, geom->label_color)); + else + fprintf(file, " NULL, /* label color */\n"); + if (geom->base_color) + fprintf(file, " &g_colors[%d], /* base color */\n", + XkbGeomColorIndex(geom, geom->base_color)); + else + fprintf(file, " NULL, /* base color */\n"); + fprintf(file, + " %d, %d, %d, /* sz: props, colors, shapes */\n", + geom->num_properties, geom->num_colors, geom->num_shapes); + fprintf(file, + " %d, %d, %d, /* sz: sections, doodads, aliases */\n", + geom->num_sections, geom->num_doodads, geom->num_key_aliases); + fprintf(file, + " %d, %d, %d, /* num: props, colors, shapes */\n", + geom->num_properties, geom->num_colors, geom->num_shapes); + fprintf(file, + " %d, %d, %d, /* num: sections, doodads, aliases */\n", + geom->num_sections, geom->num_doodads, geom->num_key_aliases); + fprintf(file, " %s, %s, %s,\n", + (geom->num_properties > 0 ? "g_props" : "NULL"), + (geom->num_colors > 0 ? "g_colors" : "NULL"), + (geom->num_shapes > 0 ? "g_shapes" : "NULL")); + fprintf(file, " %s, %s, %s\n", + (geom->num_sections > 0 ? "g_sections" : "NULL"), + (geom->num_doodads > 0 ? "g_doodads" : "NULL"), + (geom->num_key_aliases > 0 ? "g_aliases" : "NULL")); + fprintf(file, "};\n\n"); + fprintf(file, "static Bool\n"); + fprintf(file, "_InitHdrGeom(DPYTYPE dpy,XkbGeometryPtr geom)\n"); + fprintf(file, "{\n"); + if (geom->name != None) { + fprintf(file, " geom->name= GET_ATOM(dpy,\"%s\");\n", + XkbAtomText(xkb->dpy, geom->name, XkbCFile)); } - for (i=0;i<geom->num_shapes;i++) { - fprintf(file," geom->shapes[%2d].name= GET_ATOM(dpy,\"%s\");\n",i, - XkbAtomText(xkb->dpy,geom->shapes[i].name,XkbCFile)); + for (i = 0; i < geom->num_shapes; i++) { + fprintf(file, " geom->shapes[%2d].name= GET_ATOM(dpy,\"%s\");\n", i, + XkbAtomText(xkb->dpy, geom->shapes[i].name, XkbCFile)); } - if (geom->num_doodads>0) - fprintf(file," _InitGeomDoodads(dpy,geom);\n"); - fprintf(file," _InitSections(dpy,geom);\n"); - fprintf(file,"}\n\n"); + if (geom->num_doodads > 0) + fprintf(file, " _InitGeomDoodads(dpy,geom);\n"); + fprintf(file, " _InitSections(dpy,geom);\n"); + fprintf(file, "}\n\n"); return True; } static Bool -WriteCHdrGeomFile(FILE *file,XkbFileInfo *result) +WriteCHdrGeomFile(FILE *file, XkbFileInfo *result) { -Bool ok; + Bool ok; - ok= WriteCHdrGeometry(file,result->xkb); + ok = WriteCHdrGeometry(file, result->xkb); return ok; } static Bool -WriteCHdrLayout(FILE *file,XkbFileInfo *result) +WriteCHdrLayout(FILE *file, XkbFileInfo *result) { -Bool ok; -XkbDescPtr xkb; - - xkb= result->xkb; - ok= WriteCHdrVMods(file,xkb->dpy,xkb); - ok= WriteCHdrKeycodes(file,xkb)&&ok; - ok= WriteCHdrSymbols(file,xkb)&&ok; - ok= WriteCHdrGeometry(file,xkb)&&ok; + Bool ok; + XkbDescPtr xkb; + + xkb = result->xkb; + ok = WriteCHdrVMods(file, xkb->dpy, xkb); + ok = WriteCHdrKeycodes(file, xkb) && ok; + ok = WriteCHdrSymbols(file, xkb) && ok; + ok = WriteCHdrGeometry(file, xkb) && ok; return ok; } static Bool -WriteCHdrSemantics(FILE *file,XkbFileInfo *result) +WriteCHdrSemantics(FILE *file, XkbFileInfo *result) { -Bool ok; -XkbDescPtr xkb; - - xkb= result->xkb; - ok= WriteCHdrVMods(file,xkb->dpy,xkb); - ok= WriteCHdrKeyTypes(file,xkb->dpy,xkb)&&ok; - ok= WriteCHdrCompatMap(file,xkb->dpy,xkb)&&ok; - ok= WriteCHdrIndicators(file,xkb->dpy,xkb)&&ok; + Bool ok; + XkbDescPtr xkb; + + xkb = result->xkb; + ok = WriteCHdrVMods(file, xkb->dpy, xkb); + ok = WriteCHdrKeyTypes(file, xkb->dpy, xkb) && ok; + ok = WriteCHdrCompatMap(file, xkb->dpy, xkb) && ok; + ok = WriteCHdrIndicators(file, xkb->dpy, xkb) && ok; return ok; } static Bool -WriteCHdrKeymap(FILE *file,XkbFileInfo *result) +WriteCHdrKeymap(FILE *file, XkbFileInfo *result) { -Bool ok; -XkbDescPtr xkb; - - xkb= result->xkb; - ok= WriteCHdrVMods(file,xkb->dpy,xkb); - ok= ok&&WriteCHdrKeycodes(file,xkb); - ok= ok&&WriteCHdrClientMap(file,xkb->dpy,xkb); - ok= ok&&WriteCHdrServerMap(file,xkb->dpy,xkb); - ok= ok&&WriteCHdrCompatMap(file,xkb->dpy,xkb); - ok= WriteCHdrIndicators(file,xkb->dpy,xkb)&&ok; - ok= ok&&WriteCHdrGeometry(file,xkb); + Bool ok; + XkbDescPtr xkb; + + xkb = result->xkb; + ok = WriteCHdrVMods(file, xkb->dpy, xkb); + ok = ok && WriteCHdrKeycodes(file, xkb); + ok = ok && WriteCHdrClientMap(file, xkb->dpy, xkb); + ok = ok && WriteCHdrServerMap(file, xkb->dpy, xkb); + ok = ok && WriteCHdrCompatMap(file, xkb->dpy, xkb); + ok = WriteCHdrIndicators(file, xkb->dpy, xkb) && ok; + ok = ok && WriteCHdrGeometry(file, xkb); return ok; } Bool -XkbWriteCFile(FILE *out,char *name,XkbFileInfo *result) +XkbWriteCFile(FILE *out, char *name, XkbFileInfo *result) { -Bool ok; -XkbDescPtr xkb; -Bool (*func)( - FILE * /* file*/, - XkbFileInfo * /* result */ -); + Bool ok; + XkbDescPtr xkb; + + Bool (*func) (FILE * /* file */, + XkbFileInfo * /* result */ + ); switch (result->type) { - case XkmSemanticsFile: - func= WriteCHdrSemantics; - break; - case XkmLayoutFile: - func= WriteCHdrLayout; - break; - case XkmKeymapFile: - func= WriteCHdrKeymap; - break; - case XkmGeometryIndex: - case XkmGeometryFile: - func= WriteCHdrGeomFile; - break; - default: - _XkbLibError(_XkbErrIllegalContents,"XkbWriteCFile",result->type); - return False; + case XkmSemanticsFile: + func = WriteCHdrSemantics; + break; + case XkmLayoutFile: + func = WriteCHdrLayout; + break; + case XkmKeymapFile: + func = WriteCHdrKeymap; + break; + case XkmGeometryIndex: + case XkmGeometryFile: + func = WriteCHdrGeomFile; + break; + default: + _XkbLibError(_XkbErrIllegalContents, "XkbWriteCFile", result->type); + return False; } - xkb= result->xkb; - if (out==NULL) { - _XkbLibError(_XkbErrFileCannotOpen,"XkbWriteCFile",0); - ok= False; + xkb = result->xkb; + if (out == NULL) { + _XkbLibError(_XkbErrFileCannotOpen, "XkbWriteCFile", 0); + ok = False; } else { - char *tmp,*hdrdef; - tmp= (char *)strrchr(name,'/'); - if (tmp==NULL) - tmp= name; - else tmp++; - hdrdef= (char *)_XkbCalloc(strlen(tmp)+1,sizeof(char)); - if (hdrdef) { - strcpy(hdrdef,tmp); - tmp= hdrdef; - while (*tmp) { - if (islower(*tmp)) *tmp= toupper(*tmp); - else if (!isalnum(*tmp)) *tmp= '_'; - tmp++; - } - fprintf(out,"/* This file generated automatically by xkbcomp */\n"); - fprintf(out,"/* DO NOT EDIT */\n"); - fprintf(out,"#ifndef %s\n",hdrdef); - fprintf(out,"#define %s 1\n\n",hdrdef); - } - fprintf(out,"#ifndef XKB_IN_SERVER\n"); - fprintf(out,"#define GET_ATOM(d,s) XInternAtom(d,s,0)\n"); - fprintf(out,"#define DPYTYPE Display *\n"); - fprintf(out,"#else\n"); - fprintf(out,"#define GET_ATOM(d,s) MakeAtom(s,strlen(s),1)\n"); - fprintf(out,"#define DPYTYPE char *\n"); - fprintf(out,"#endif\n"); - fprintf(out,"#define NUM_KEYS %d\n",xkb->max_key_code+1); - ok= (*func)(out,result); - if (hdrdef) - fprintf(out,"#endif /* %s */\n",hdrdef); + char *tmp, *hdrdef; + + tmp = (char *) strrchr(name, '/'); + if (tmp == NULL) + tmp = name; + else + tmp++; + hdrdef = (char *) _XkbCalloc(strlen(tmp) + 1, sizeof(char)); + if (hdrdef) { + strcpy(hdrdef, tmp); + tmp = hdrdef; + while (*tmp) { + if (islower(*tmp)) + *tmp = toupper(*tmp); + else if (!isalnum(*tmp)) + *tmp = '_'; + tmp++; + } + fprintf(out, "/* This file generated automatically by xkbcomp */\n"); + fprintf(out, "/* DO NOT EDIT */\n"); + fprintf(out, "#ifndef %s\n", hdrdef); + fprintf(out, "#define %s 1\n\n", hdrdef); + } + fprintf(out, "#ifndef XKB_IN_SERVER\n"); + fprintf(out, "#define GET_ATOM(d,s) XInternAtom(d,s,0)\n"); + fprintf(out, "#define DPYTYPE Display *\n"); + fprintf(out, "#else\n"); + fprintf(out, "#define GET_ATOM(d,s) MakeAtom(s,strlen(s),1)\n"); + fprintf(out, "#define DPYTYPE char *\n"); + fprintf(out, "#endif\n"); + fprintf(out, "#define NUM_KEYS %d\n", xkb->max_key_code + 1); + ok = (*func) (out, result); + if (hdrdef) + fprintf(out, "#endif /* %s */\n", hdrdef); } if (!ok) { - return False; + return False; } return True; } |