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:
parent
133e0bd6f1
commit
1ad80678d8
|
@ -284,10 +284,6 @@ extern _X_EXPORT Bool XkbWriteXKBGeometry(
|
||||||
void * /* priv */
|
void * /* priv */
|
||||||
);
|
);
|
||||||
|
|
||||||
extern _X_EXPORT void XkbEnsureSafeMapName(
|
|
||||||
char * /* name */
|
|
||||||
);
|
|
||||||
|
|
||||||
extern _X_EXPORT Bool XkbWriteXKBKeymapForNames(
|
extern _X_EXPORT Bool XkbWriteXKBKeymapForNames(
|
||||||
FILE * /* file */,
|
FILE * /* file */,
|
||||||
XkbComponentNamesPtr /* names */,
|
XkbComponentNamesPtr /* names */,
|
||||||
|
|
|
@ -69,7 +69,6 @@ typedef struct _XkbRF_Rule {
|
||||||
char * types;
|
char * types;
|
||||||
char * compat;
|
char * compat;
|
||||||
char * geometry;
|
char * geometry;
|
||||||
char * keymap;
|
|
||||||
unsigned flags;
|
unsigned flags;
|
||||||
} XkbRF_RuleRec,*XkbRF_RulePtr;
|
} XkbRF_RuleRec,*XkbRF_RulePtr;
|
||||||
|
|
||||||
|
|
|
@ -962,13 +962,12 @@ extern Bool XkbCopyKeymap(
|
||||||
#include <X11/extensions/XKMformat.h>
|
#include <X11/extensions/XKMformat.h>
|
||||||
#include "xkbrules.h"
|
#include "xkbrules.h"
|
||||||
|
|
||||||
#define _XkbListKeymaps 0
|
#define _XkbListKeycodes 0
|
||||||
#define _XkbListKeycodes 1
|
#define _XkbListTypes 1
|
||||||
#define _XkbListTypes 2
|
#define _XkbListCompat 2
|
||||||
#define _XkbListCompat 3
|
#define _XkbListSymbols 3
|
||||||
#define _XkbListSymbols 4
|
#define _XkbListGeometry 4
|
||||||
#define _XkbListGeometry 5
|
#define _XkbListNumComponents 5
|
||||||
#define _XkbListNumComponents 6
|
|
||||||
|
|
||||||
typedef struct _XkbSrvListInfo {
|
typedef struct _XkbSrvListInfo {
|
||||||
int szPool;
|
int szPool;
|
||||||
|
|
|
@ -527,7 +527,6 @@ typedef struct _XkbChanges {
|
||||||
* database.
|
* database.
|
||||||
*/
|
*/
|
||||||
typedef struct _XkbComponentNames {
|
typedef struct _XkbComponentNames {
|
||||||
char * keymap;
|
|
||||||
char * keycodes;
|
char * keycodes;
|
||||||
char * types;
|
char * types;
|
||||||
char * compat;
|
char * compat;
|
||||||
|
|
|
@ -61,7 +61,7 @@ extern int Win32System(const char *cmdline);
|
||||||
/***====================================================================***/
|
/***====================================================================***/
|
||||||
|
|
||||||
static char *componentDirs[_XkbListNumComponents] = {
|
static char *componentDirs[_XkbListNumComponents] = {
|
||||||
"keymap", "keycodes", "types", "compat", "symbols", "geometry"
|
"keycodes", "types", "compat", "symbols", "geometry"
|
||||||
};
|
};
|
||||||
|
|
||||||
/***====================================================================***/
|
/***====================================================================***/
|
||||||
|
@ -280,8 +280,6 @@ XkbDDXList(DeviceIntPtr dev,XkbSrvListInfoPtr list,ClientPtr client)
|
||||||
{
|
{
|
||||||
Status status;
|
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)
|
if (status==Success)
|
||||||
status= XkbDDXListComponent(dev,_XkbListTypes,list,client);
|
status= XkbDDXListComponent(dev,_XkbListTypes,list,client);
|
||||||
|
|
|
@ -204,7 +204,6 @@ XkbDDXCompileKeymapByNames( XkbDescPtr xkb,
|
||||||
|
|
||||||
snprintf(keymap, sizeof(keymap), "server-%s", display);
|
snprintf(keymap, sizeof(keymap), "server-%s", display);
|
||||||
|
|
||||||
XkbEnsureSafeMapName(keymap);
|
|
||||||
OutputDirectory(xkm_output_dir, sizeof(xkm_output_dir));
|
OutputDirectory(xkm_output_dir, sizeof(xkm_output_dir));
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
|
|
|
@ -193,15 +193,14 @@ Bool endOfFile,spacePending,slashPending,inComment;
|
||||||
#define TYPES 6
|
#define TYPES 6
|
||||||
#define COMPAT 7
|
#define COMPAT 7
|
||||||
#define GEOMETRY 8
|
#define GEOMETRY 8
|
||||||
#define KEYMAP 9
|
#define MAX_WORDS 9
|
||||||
#define MAX_WORDS 10
|
|
||||||
|
|
||||||
#define PART_MASK 0x000F
|
#define PART_MASK 0x000F
|
||||||
#define COMPONENT_MASK 0x03F0
|
#define COMPONENT_MASK 0x03F0
|
||||||
|
|
||||||
static char * cname[MAX_WORDS] = {
|
static char * cname[MAX_WORDS] = {
|
||||||
"model", "layout", "variant", "option",
|
"model", "layout", "variant", "option",
|
||||||
"keycodes", "symbols", "types", "compat", "geometry", "keymap"
|
"keycodes", "symbols", "types", "compat", "geometry"
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct _RemapSpec {
|
typedef struct _RemapSpec {
|
||||||
|
@ -336,13 +335,6 @@ Bool found;
|
||||||
remap->num_remap= 0;
|
remap->num_remap= 0;
|
||||||
return;
|
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++;
|
remap->number++;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -459,7 +451,6 @@ Bool append = False;
|
||||||
rule->types= _XkbDupString(tmp.name[TYPES]);
|
rule->types= _XkbDupString(tmp.name[TYPES]);
|
||||||
rule->compat= _XkbDupString(tmp.name[COMPAT]);
|
rule->compat= _XkbDupString(tmp.name[COMPAT]);
|
||||||
rule->geometry= _XkbDupString(tmp.name[GEOMETRY]);
|
rule->geometry= _XkbDupString(tmp.name[GEOMETRY]);
|
||||||
rule->keymap= NULL;
|
|
||||||
|
|
||||||
rule->layout_num = rule->variant_num = 0;
|
rule->layout_num = rule->variant_num = 0;
|
||||||
for (i = 0; i < nread; i++) {
|
for (i = 0; i < nread; i++) {
|
||||||
|
@ -859,12 +850,10 @@ XkbRF_GetComponents( XkbRF_RulesPtr rules,
|
||||||
names->compat= XkbRF_SubstituteVars(names->compat, &mdefs);
|
names->compat= XkbRF_SubstituteVars(names->compat, &mdefs);
|
||||||
if (names->geometry)
|
if (names->geometry)
|
||||||
names->geometry= XkbRF_SubstituteVars(names->geometry, &mdefs);
|
names->geometry= XkbRF_SubstituteVars(names->geometry, &mdefs);
|
||||||
if (names->keymap)
|
|
||||||
names->keymap= XkbRF_SubstituteVars(names->keymap, &mdefs);
|
|
||||||
|
|
||||||
FreeMultiDefs(&mdefs);
|
FreeMultiDefs(&mdefs);
|
||||||
return (names->keycodes && names->symbols && names->types &&
|
return (names->keycodes && names->symbols && names->types &&
|
||||||
names->compat && names->geometry ) || names->keymap;
|
names->compat && names->geometry);
|
||||||
}
|
}
|
||||||
|
|
||||||
XkbRF_RulePtr
|
XkbRF_RulePtr
|
||||||
|
@ -1045,6 +1034,7 @@ int len,headingtype;
|
||||||
ErrorF("Broken rules file: unknown type for line %s\n",
|
ErrorF("Broken rules file: unknown type for line %s\n",
|
||||||
line.line);
|
line.line);
|
||||||
ErrorF("Not parsing rules file further\n");
|
ErrorF("Not parsing rules file further\n");
|
||||||
|
XkbRF_Free(rules, False);
|
||||||
FreeInputLine(&line);
|
FreeInputLine(&line);
|
||||||
return False;
|
return False;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5492,7 +5492,6 @@ ProcXkbListComponents(ClientPtr client)
|
||||||
str= (unsigned char *)&stuff[1];
|
str= (unsigned char *)&stuff[1];
|
||||||
bzero(&list,sizeof(XkbSrvListInfoRec));
|
bzero(&list,sizeof(XkbSrvListInfoRec));
|
||||||
list.maxRtrn= stuff->maxNames;
|
list.maxRtrn= stuff->maxNames;
|
||||||
list.pattern[_XkbListKeymaps]= GetComponentSpec(&str,False,&status);
|
|
||||||
list.pattern[_XkbListKeycodes]= GetComponentSpec(&str,False,&status);
|
list.pattern[_XkbListKeycodes]= GetComponentSpec(&str,False,&status);
|
||||||
list.pattern[_XkbListTypes]= GetComponentSpec(&str,False,&status);
|
list.pattern[_XkbListTypes]= GetComponentSpec(&str,False,&status);
|
||||||
list.pattern[_XkbListCompat]= GetComponentSpec(&str,False,&status);
|
list.pattern[_XkbListCompat]= GetComponentSpec(&str,False,&status);
|
||||||
|
@ -5515,7 +5514,7 @@ ProcXkbListComponents(ClientPtr client)
|
||||||
rep.deviceID = dev->id;
|
rep.deviceID = dev->id;
|
||||||
rep.sequenceNumber = client->sequence;
|
rep.sequenceNumber = client->sequence;
|
||||||
rep.length = XkbPaddedSize(list.nPool)/4;
|
rep.length = XkbPaddedSize(list.nPool)/4;
|
||||||
rep.nKeymaps = list.nFound[_XkbListKeymaps];
|
rep.nKeymaps = 0;
|
||||||
rep.nKeycodes = list.nFound[_XkbListKeycodes];
|
rep.nKeycodes = list.nFound[_XkbListKeycodes];
|
||||||
rep.nTypes = list.nFound[_XkbListTypes];
|
rep.nTypes = list.nFound[_XkbListTypes];
|
||||||
rep.nCompatMaps = list.nFound[_XkbListCompat];
|
rep.nCompatMaps = list.nFound[_XkbListCompat];
|
||||||
|
@ -5581,7 +5580,8 @@ ProcXkbGetKbdByName(ClientPtr client)
|
||||||
xkb = dev->key->xkbInfo->desc;
|
xkb = dev->key->xkbInfo->desc;
|
||||||
status= Success;
|
status= Success;
|
||||||
str= (unsigned char *)&stuff[1];
|
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.keycodes= GetComponentSpec(&str,True,&status);
|
||||||
names.types= GetComponentSpec(&str,True,&status);
|
names.types= GetComponentSpec(&str,True,&status);
|
||||||
names.compat= GetComponentSpec(&str,True,&status);
|
names.compat= GetComponentSpec(&str,True,&status);
|
||||||
|
@ -5873,7 +5873,6 @@ ProcXkbGetKbdByName(ClientPtr client)
|
||||||
XkbFreeKeyboard(new,XkbAllComponentsMask,True);
|
XkbFreeKeyboard(new,XkbAllComponentsMask,True);
|
||||||
new= NULL;
|
new= NULL;
|
||||||
}
|
}
|
||||||
if (names.keymap) { _XkbFree(names.keymap); names.keymap= NULL; }
|
|
||||||
if (names.keycodes) { _XkbFree(names.keycodes); names.keycodes= NULL; }
|
if (names.keycodes) { _XkbFree(names.keycodes); names.keycodes= NULL; }
|
||||||
if (names.types) { _XkbFree(names.types); names.types= NULL; }
|
if (names.types) { _XkbFree(names.types); names.types= NULL; }
|
||||||
if (names.compat) { _XkbFree(names.compat); names.compat= NULL; }
|
if (names.compat) { _XkbFree(names.compat); names.compat= NULL; }
|
||||||
|
|
|
@ -170,7 +170,7 @@ int multi_section;
|
||||||
unsigned wantNames,wantConfig,wantDflts;
|
unsigned wantNames,wantConfig,wantDflts;
|
||||||
|
|
||||||
complete= 0;
|
complete= 0;
|
||||||
if ((name=names->keymap)==NULL) name= "default";
|
name= "default";
|
||||||
if (COMPLETE(names->keycodes)) complete|= XkmKeyNamesMask;
|
if (COMPLETE(names->keycodes)) complete|= XkmKeyNamesMask;
|
||||||
if (COMPLETE(names->types)) complete|= XkmTypesMask;
|
if (COMPLETE(names->types)) complete|= XkmTypesMask;
|
||||||
if (COMPLETE(names->compat)) complete|= XkmCompatMapMask;
|
if (COMPLETE(names->compat)) complete|= XkmCompatMapMask;
|
||||||
|
@ -412,29 +412,6 @@ unsigned rtrn;
|
||||||
return 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)=='/'))
|
#define UNMATCHABLE(c) (((c)=='(')||((c)==')')||((c)=='/'))
|
||||||
|
|
Loading…
Reference in New Issue