XKB: Remove support for setting combined keymaps

We don't do full keymaps anymore.  Deal.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Daniel Stone 2008-07-18 16:29:35 +03:00
parent 133e0bd6f1
commit 1ad80678d8
9 changed files with 17 additions and 61 deletions

View File

@ -284,10 +284,6 @@ extern _X_EXPORT Bool XkbWriteXKBGeometry(
void * /* priv */
);
extern _X_EXPORT void XkbEnsureSafeMapName(
char * /* name */
);
extern _X_EXPORT Bool XkbWriteXKBKeymapForNames(
FILE * /* file */,
XkbComponentNamesPtr /* names */,

View File

@ -69,7 +69,6 @@ typedef struct _XkbRF_Rule {
char * types;
char * compat;
char * geometry;
char * keymap;
unsigned flags;
} XkbRF_RuleRec,*XkbRF_RulePtr;

View File

@ -962,13 +962,12 @@ extern Bool XkbCopyKeymap(
#include <X11/extensions/XKMformat.h>
#include "xkbrules.h"
#define _XkbListKeymaps 0
#define _XkbListKeycodes 1
#define _XkbListTypes 2
#define _XkbListCompat 3
#define _XkbListSymbols 4
#define _XkbListGeometry 5
#define _XkbListNumComponents 6
#define _XkbListKeycodes 0
#define _XkbListTypes 1
#define _XkbListCompat 2
#define _XkbListSymbols 3
#define _XkbListGeometry 4
#define _XkbListNumComponents 5
typedef struct _XkbSrvListInfo {
int szPool;

View File

@ -527,7 +527,6 @@ typedef struct _XkbChanges {
* database.
*/
typedef struct _XkbComponentNames {
char * keymap;
char * keycodes;
char * types;
char * compat;

View File

@ -61,7 +61,7 @@ extern int Win32System(const char *cmdline);
/***====================================================================***/
static char *componentDirs[_XkbListNumComponents] = {
"keymap", "keycodes", "types", "compat", "symbols", "geometry"
"keycodes", "types", "compat", "symbols", "geometry"
};
/***====================================================================***/
@ -280,9 +280,7 @@ XkbDDXList(DeviceIntPtr dev,XkbSrvListInfoPtr list,ClientPtr client)
{
Status status;
status= XkbDDXListComponent(dev,_XkbListKeymaps,list,client);
if (status==Success)
status= XkbDDXListComponent(dev,_XkbListKeycodes,list,client);
status= XkbDDXListComponent(dev,_XkbListKeycodes,list,client);
if (status==Success)
status= XkbDDXListComponent(dev,_XkbListTypes,list,client);
if (status==Success)

View File

@ -177,7 +177,7 @@ OutputDirectory(
}
}
static Bool
static Bool
XkbDDXCompileKeymapByNames( XkbDescPtr xkb,
XkbComponentNamesPtr names,
unsigned want,
@ -204,7 +204,6 @@ XkbDDXCompileKeymapByNames( XkbDescPtr xkb,
snprintf(keymap, sizeof(keymap), "server-%s", display);
XkbEnsureSafeMapName(keymap);
OutputDirectory(xkm_output_dir, sizeof(xkm_output_dir));
#ifdef WIN32

View File

@ -193,15 +193,14 @@ Bool endOfFile,spacePending,slashPending,inComment;
#define TYPES 6
#define COMPAT 7
#define GEOMETRY 8
#define KEYMAP 9
#define MAX_WORDS 10
#define MAX_WORDS 9
#define PART_MASK 0x000F
#define COMPONENT_MASK 0x03F0
static char * cname[MAX_WORDS] = {
"model", "layout", "variant", "option",
"keycodes", "symbols", "types", "compat", "geometry", "keymap"
"keycodes", "symbols", "types", "compat", "geometry"
};
typedef struct _RemapSpec {
@ -336,13 +335,6 @@ Bool found;
remap->num_remap= 0;
return;
}
if (((present&COMPONENT_MASK)&(1<<KEYMAP))&&
((present&COMPONENT_MASK)!=(1<<KEYMAP))) {
DebugF("Keymap cannot appear with other components\n");
DebugF("Illegal mapping ignored\n");
remap->num_remap= 0;
return;
}
remap->number++;
return;
}
@ -459,7 +451,6 @@ Bool append = False;
rule->types= _XkbDupString(tmp.name[TYPES]);
rule->compat= _XkbDupString(tmp.name[COMPAT]);
rule->geometry= _XkbDupString(tmp.name[GEOMETRY]);
rule->keymap= NULL;
rule->layout_num = rule->variant_num = 0;
for (i = 0; i < nread; i++) {
@ -859,12 +850,10 @@ XkbRF_GetComponents( XkbRF_RulesPtr rules,
names->compat= XkbRF_SubstituteVars(names->compat, &mdefs);
if (names->geometry)
names->geometry= XkbRF_SubstituteVars(names->geometry, &mdefs);
if (names->keymap)
names->keymap= XkbRF_SubstituteVars(names->keymap, &mdefs);
FreeMultiDefs(&mdefs);
return (names->keycodes && names->symbols && names->types &&
names->compat && names->geometry ) || names->keymap;
names->compat && names->geometry);
}
XkbRF_RulePtr
@ -1045,6 +1034,7 @@ int len,headingtype;
ErrorF("Broken rules file: unknown type for line %s\n",
line.line);
ErrorF("Not parsing rules file further\n");
XkbRF_Free(rules, False);
FreeInputLine(&line);
return False;
}

View File

@ -5492,7 +5492,6 @@ ProcXkbListComponents(ClientPtr client)
str= (unsigned char *)&stuff[1];
bzero(&list,sizeof(XkbSrvListInfoRec));
list.maxRtrn= stuff->maxNames;
list.pattern[_XkbListKeymaps]= GetComponentSpec(&str,False,&status);
list.pattern[_XkbListKeycodes]= GetComponentSpec(&str,False,&status);
list.pattern[_XkbListTypes]= GetComponentSpec(&str,False,&status);
list.pattern[_XkbListCompat]= GetComponentSpec(&str,False,&status);
@ -5515,7 +5514,7 @@ ProcXkbListComponents(ClientPtr client)
rep.deviceID = dev->id;
rep.sequenceNumber = client->sequence;
rep.length = XkbPaddedSize(list.nPool)/4;
rep.nKeymaps = list.nFound[_XkbListKeymaps];
rep.nKeymaps = 0;
rep.nKeycodes = list.nFound[_XkbListKeycodes];
rep.nTypes = list.nFound[_XkbListTypes];
rep.nCompatMaps = list.nFound[_XkbListCompat];
@ -5581,7 +5580,8 @@ ProcXkbGetKbdByName(ClientPtr client)
xkb = dev->key->xkbInfo->desc;
status= Success;
str= (unsigned char *)&stuff[1];
names.keymap= GetComponentSpec(&str,True,&status);
if (GetComponentSpec(&str,True,&status)) /* keymap, unsupported */
return BadMatch;
names.keycodes= GetComponentSpec(&str,True,&status);
names.types= GetComponentSpec(&str,True,&status);
names.compat= GetComponentSpec(&str,True,&status);
@ -5873,7 +5873,6 @@ ProcXkbGetKbdByName(ClientPtr client)
XkbFreeKeyboard(new,XkbAllComponentsMask,True);
new= NULL;
}
if (names.keymap) { _XkbFree(names.keymap); names.keymap= NULL; }
if (names.keycodes) { _XkbFree(names.keycodes); names.keycodes= NULL; }
if (names.types) { _XkbFree(names.types); names.types= NULL; }
if (names.compat) { _XkbFree(names.compat); names.compat= NULL; }

View File

@ -170,7 +170,7 @@ int multi_section;
unsigned wantNames,wantConfig,wantDflts;
complete= 0;
if ((name=names->keymap)==NULL) name= "default";
name= "default";
if (COMPLETE(names->keycodes)) complete|= XkmKeyNamesMask;
if (COMPLETE(names->types)) complete|= XkmTypesMask;
if (COMPLETE(names->compat)) complete|= XkmCompatMapMask;
@ -412,29 +412,6 @@ unsigned rtrn;
return rtrn;
}
/* all latin-1 alphanumerics, plus parens, slash, minus, underscore and */
/* wildcards */
static unsigned char componentSpecLegal[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xff, 0x83,
0xfe, 0xff, 0xff, 0x87, 0xfe, 0xff, 0xff, 0x07,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff
};
void
XkbEnsureSafeMapName(char *name)
{
if (name==NULL)
return;
while (*name!='\0') {
if ((componentSpecLegal[(*name)/8]&(1<<((*name)%8)))==0)
*name= '_';
name++;
}
return;
}
/***====================================================================***/
#define UNMATCHABLE(c) (((c)=='(')||((c)==')')||((c)=='/'))