Remove XkbCF DDX configuration code.
This commit is contained in:
parent
aae4238360
commit
ec10f70b21
|
@ -4,6 +4,12 @@
|
||||||
Fix two of the more glaring unconditional-NULL-dereference screwups.
|
Fix two of the more glaring unconditional-NULL-dereference screwups.
|
||||||
There are many more left.
|
There are many more left.
|
||||||
|
|
||||||
|
* xkb/Makefile.am:
|
||||||
|
* xkb/xkbconfig.c:
|
||||||
|
* xkb/ddxConfig.c:
|
||||||
|
* xkb/xkbInit.c:
|
||||||
|
Remove weirdo XkbCF pre-configuration code.
|
||||||
|
|
||||||
2006-03-25 Adam Jackson <ajax@freedesktop.org>
|
2006-03-25 Adam Jackson <ajax@freedesktop.org>
|
||||||
|
|
||||||
* hw/xfree86/common/xf86Bus.c:
|
* hw/xfree86/common/xf86Bus.c:
|
||||||
|
|
|
@ -13,7 +13,6 @@ DDX_SRCS = \
|
||||||
ddxLEDs.c \
|
ddxLEDs.c \
|
||||||
ddxLoad.c \
|
ddxLoad.c \
|
||||||
ddxList.c \
|
ddxList.c \
|
||||||
ddxConfig.c \
|
|
||||||
ddxDevBtn.c
|
ddxDevBtn.c
|
||||||
|
|
||||||
DIX_SRCS = \
|
DIX_SRCS = \
|
||||||
|
@ -34,7 +33,6 @@ XKBFILE_SRCS = \
|
||||||
xkbtext.c \
|
xkbtext.c \
|
||||||
xkbfmisc.c \
|
xkbfmisc.c \
|
||||||
xkberrs.c \
|
xkberrs.c \
|
||||||
xkbconfig.c \
|
|
||||||
xkbout.c
|
xkbout.c
|
||||||
|
|
||||||
X11_SRCS = \
|
X11_SRCS = \
|
||||||
|
|
215
xkb/ddxConfig.c
215
xkb/ddxConfig.c
|
@ -1,215 +0,0 @@
|
||||||
/* $Xorg: ddxConfig.c,v 1.3 2000/08/17 19:53:45 cpqbld Exp $ */
|
|
||||||
/************************************************************
|
|
||||||
Copyright (c) 1995 by Silicon Graphics Computer Systems, Inc.
|
|
||||||
|
|
||||||
Permission to use, copy, modify, and distribute this
|
|
||||||
software and its documentation for any purpose and without
|
|
||||||
fee is hereby granted, provided that the above copyright
|
|
||||||
notice appear in all copies and that both that copyright
|
|
||||||
notice and this permission notice appear in supporting
|
|
||||||
documentation, and that the name of Silicon Graphics not be
|
|
||||||
used in advertising or publicity pertaining to distribution
|
|
||||||
of the software without specific prior written permission.
|
|
||||||
Silicon Graphics makes no representation about the suitability
|
|
||||||
of this software for any purpose. It is provided "as is"
|
|
||||||
without any express or implied warranty.
|
|
||||||
|
|
||||||
SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
|
|
||||||
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
||||||
AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
|
|
||||||
GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
|
|
||||||
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
|
|
||||||
DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
|
||||||
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
|
|
||||||
THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
|
|
||||||
********************************************************/
|
|
||||||
/* $XFree86: xc/programs/Xserver/xkb/ddxConfig.c,v 3.8 2002/12/20 20:18:35 paulo Exp $ */
|
|
||||||
|
|
||||||
#ifdef HAVE_DIX_CONFIG_H
|
|
||||||
#include <dix-config.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#define NEED_EVENTS 1
|
|
||||||
#include <X11/X.h>
|
|
||||||
#include <X11/Xproto.h>
|
|
||||||
#include <X11/keysym.h>
|
|
||||||
#include "inputstr.h"
|
|
||||||
#include "scrnintstr.h"
|
|
||||||
#include "windowstr.h"
|
|
||||||
#include "os.h"
|
|
||||||
#define XKBSRV_NEED_FILE_FUNCS
|
|
||||||
#include <X11/extensions/XKBsrv.h>
|
|
||||||
#include <X11/extensions/XKBconfig.h>
|
|
||||||
|
|
||||||
Bool
|
|
||||||
XkbDDXApplyConfig(XPointer cfg_in,XkbSrvInfoPtr info)
|
|
||||||
{
|
|
||||||
XkbConfigRtrnPtr rtrn;
|
|
||||||
XkbDescPtr xkb;
|
|
||||||
Bool ok;
|
|
||||||
XkbEventCauseRec cause;
|
|
||||||
|
|
||||||
xkb= info->desc;
|
|
||||||
rtrn= (XkbConfigRtrnPtr)cfg_in;
|
|
||||||
if (rtrn==NULL)
|
|
||||||
return True;
|
|
||||||
ok= XkbCFApplyRtrnValues(rtrn,XkbCFDflts,xkb);
|
|
||||||
if (rtrn->initial_mods.replace) {
|
|
||||||
info->state.locked_mods= rtrn->initial_mods.mods;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
info->state.locked_mods|= rtrn->initial_mods.mods;
|
|
||||||
if (rtrn->initial_mods.mods_clear)
|
|
||||||
info->state.locked_mods&= ~rtrn->initial_mods.mods_clear;
|
|
||||||
}
|
|
||||||
XkbComputeDerivedState(info);
|
|
||||||
XkbSetCauseUnknown(&cause);
|
|
||||||
XkbUpdateIndicators(info->device,XkbAllIndicatorsMask,False,NULL,&cause);
|
|
||||||
if (info->device && info->device->kbdfeed) {
|
|
||||||
DeviceIntPtr dev;
|
|
||||||
KeybdCtrl newCtrl;
|
|
||||||
dev= info->device;
|
|
||||||
newCtrl= dev->kbdfeed->ctrl;
|
|
||||||
if (rtrn->click_volume>=0)
|
|
||||||
newCtrl.click= rtrn->click_volume;
|
|
||||||
if (rtrn->bell_volume>=0)
|
|
||||||
newCtrl.bell= rtrn->bell_volume;
|
|
||||||
if (rtrn->bell_pitch>0)
|
|
||||||
newCtrl.bell_pitch= rtrn->bell_pitch;
|
|
||||||
if (rtrn->bell_duration>0)
|
|
||||||
newCtrl.bell_duration= rtrn->bell_duration;
|
|
||||||
if (dev->kbdfeed->CtrlProc)
|
|
||||||
(*dev->kbdfeed->CtrlProc)(dev,&newCtrl);
|
|
||||||
}
|
|
||||||
XkbCFFreeRtrn(rtrn,XkbCFDflts,xkb);
|
|
||||||
return ok;
|
|
||||||
}
|
|
||||||
|
|
||||||
XPointer
|
|
||||||
XkbDDXPreloadConfig( char ** rulesRtrn,
|
|
||||||
XkbRF_VarDefsPtr defs,
|
|
||||||
XkbComponentNamesPtr names,
|
|
||||||
DeviceIntPtr dev)
|
|
||||||
{
|
|
||||||
char buf[PATH_MAX];
|
|
||||||
char * dName;
|
|
||||||
FILE * file;
|
|
||||||
XkbConfigRtrnPtr rtrn;
|
|
||||||
|
|
||||||
#if defined(MetroLink)
|
|
||||||
if (dev && dev->name)
|
|
||||||
dName= dev->name;
|
|
||||||
else dName= "";
|
|
||||||
/* It doesn't appear that XkbBaseDirectory could ever get set to NULL */
|
|
||||||
sprintf(buf,"%s/X%s-config%s%s",XkbBaseDirectory,display,
|
|
||||||
(dName[0]?".":""),dName);
|
|
||||||
#else
|
|
||||||
if (dev && dev->name)
|
|
||||||
dName= dev->name;
|
|
||||||
else dName= "";
|
|
||||||
if (XkbBaseDirectory!=NULL) {
|
|
||||||
if (strlen(XkbBaseDirectory)+strlen(display)
|
|
||||||
+strlen(dName)+10+(dName[0]?1:0) > PATH_MAX)
|
|
||||||
{
|
|
||||||
#ifdef DEBUG
|
|
||||||
ErrorF("path exceeds max length\n");
|
|
||||||
#endif
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
sprintf(buf,"%s/X%s-config%s%s",XkbBaseDirectory,display,
|
|
||||||
(dName[0]?".":""),dName);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (strlen(display)+strlen(dName)+10+(dName[0]?1:0) > PATH_MAX)
|
|
||||||
{
|
|
||||||
#ifdef DEBUG
|
|
||||||
ErrorF("path exceeds max length\n");
|
|
||||||
#endif
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
sprintf(buf,"X%s-config%s%s",display,(dName[0]?".":""),dName);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifdef __UNIXOS2__
|
|
||||||
strcpy(buf,(char*)__XOS2RedirRoot(buf));
|
|
||||||
#endif
|
|
||||||
#ifdef DEBUG
|
|
||||||
ErrorF("Looking for keyboard configuration in %s...",buf);
|
|
||||||
#endif
|
|
||||||
file= fopen(buf,"r");
|
|
||||||
if (file==NULL) {
|
|
||||||
#ifdef DEBUG
|
|
||||||
ErrorF("file not found\n");
|
|
||||||
#endif
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
rtrn= _XkbTypedCalloc(1,XkbConfigRtrnRec);
|
|
||||||
if (rtrn!=NULL) {
|
|
||||||
if (!XkbCFParse(file,XkbCFDflts,NULL,rtrn)) {
|
|
||||||
#ifdef DEBUG
|
|
||||||
ErrorF("error\n");
|
|
||||||
#endif
|
|
||||||
ErrorF("Error parsing config file: ");
|
|
||||||
XkbCFReportError(stderr,buf,rtrn->error,rtrn->line);
|
|
||||||
_XkbFree(rtrn);
|
|
||||||
fclose(file);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
#ifdef DEBUG
|
|
||||||
ErrorF("found it\n");
|
|
||||||
#endif
|
|
||||||
if (rtrn->rules_file) {
|
|
||||||
*rulesRtrn= rtrn->rules_file;
|
|
||||||
rtrn->rules_file= NULL;
|
|
||||||
}
|
|
||||||
if (rtrn->model) {
|
|
||||||
defs->model= rtrn->model;
|
|
||||||
rtrn->model= NULL;
|
|
||||||
}
|
|
||||||
if (rtrn->layout) {
|
|
||||||
defs->layout= rtrn->layout;
|
|
||||||
rtrn->layout= NULL;
|
|
||||||
}
|
|
||||||
if (rtrn->variant) {
|
|
||||||
defs->variant= rtrn->variant;
|
|
||||||
rtrn->variant= NULL;
|
|
||||||
}
|
|
||||||
if (rtrn->options) {
|
|
||||||
defs->options= rtrn->options;
|
|
||||||
rtrn->options= NULL;
|
|
||||||
}
|
|
||||||
XkbSetRulesUsed(defs);
|
|
||||||
|
|
||||||
if (rtrn->keycodes!=NULL) {
|
|
||||||
if (names->keycodes) _XkbFree(names->keycodes);
|
|
||||||
names->keycodes= rtrn->keycodes;
|
|
||||||
rtrn->keycodes= NULL;
|
|
||||||
}
|
|
||||||
if (rtrn->geometry!=NULL) {
|
|
||||||
if (names->geometry) _XkbFree(names->geometry);
|
|
||||||
names->geometry= rtrn->geometry;
|
|
||||||
rtrn->geometry= NULL;
|
|
||||||
}
|
|
||||||
if (rtrn->symbols!=NULL) {
|
|
||||||
if (rtrn->phys_symbols==NULL)
|
|
||||||
rtrn->phys_symbols= _XkbDupString(names->symbols);
|
|
||||||
if (names->symbols) _XkbFree(names->symbols);
|
|
||||||
names->symbols= rtrn->symbols;
|
|
||||||
rtrn->symbols= NULL;
|
|
||||||
}
|
|
||||||
if (rtrn->types!=NULL) {
|
|
||||||
if (names->types) _XkbFree(names->types);
|
|
||||||
names->types= rtrn->types;
|
|
||||||
rtrn->types= NULL;
|
|
||||||
}
|
|
||||||
if (rtrn->compat!=NULL) {
|
|
||||||
if (names->compat) _XkbFree(names->compat);
|
|
||||||
names->compat= rtrn->compat;
|
|
||||||
rtrn->compat= NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fclose(file);
|
|
||||||
return (XPointer)rtrn;
|
|
||||||
}
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* $Xorg: xkbInit.c,v 1.3 2000/08/17 19:53:47 cpqbld Exp $ */
|
/* $Xorg: xkbInit.c,v 1.3 2000/08/17 19:53:47 cpqbld Exp $ */
|
||||||
/* $XdotOrg: xserver/xorg/xkb/xkbInit.c,v 1.10 2005/12/26 04:23:58 daniels Exp $ */
|
/* $XdotOrg: xserver/xorg/xkb/xkbInit.c,v 1.11 2006/02/15 20:44:13 ajax Exp $ */
|
||||||
/************************************************************
|
/************************************************************
|
||||||
Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
|
Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
|
||||||
|
|
||||||
|
@ -628,8 +628,6 @@ KeySymsRec tmpSyms,*pSyms;
|
||||||
CARD8 tmpMods[XkbMaxLegalKeyCode+1],*pMods;
|
CARD8 tmpMods[XkbMaxLegalKeyCode+1],*pMods;
|
||||||
char name[PATH_MAX],*rules;
|
char name[PATH_MAX],*rules;
|
||||||
Bool ok=False;
|
Bool ok=False;
|
||||||
XPointer config;
|
|
||||||
XkbComponentNamesRec cfgNames;
|
|
||||||
XkbRF_VarDefsRec defs;
|
XkbRF_VarDefsRec defs;
|
||||||
|
|
||||||
if ((dev->key!=NULL)||(dev->kbdfeed!=NULL))
|
if ((dev->key!=NULL)||(dev->kbdfeed!=NULL))
|
||||||
|
@ -637,9 +635,7 @@ XkbRF_VarDefsRec defs;
|
||||||
pSyms= pSymsIn;
|
pSyms= pSymsIn;
|
||||||
pMods= pModsIn;
|
pMods= pModsIn;
|
||||||
bzero(&defs,sizeof(XkbRF_VarDefsRec));
|
bzero(&defs,sizeof(XkbRF_VarDefsRec));
|
||||||
bzero(&cfgNames,sizeof(XkbComponentNamesRec));
|
|
||||||
rules= XkbGetRulesDflts(&defs);
|
rules= XkbGetRulesDflts(&defs);
|
||||||
config= XkbDDXPreloadConfig(&rules,&defs,&cfgNames,dev);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The strings are duplicated because it is not guaranteed that
|
* The strings are duplicated because it is not guaranteed that
|
||||||
|
@ -768,8 +764,6 @@ XkbRF_VarDefsRec defs;
|
||||||
LogMessage(X_WARNING, "Couldn't load XKB keymap, falling back to pre-XKB keymap\n");
|
LogMessage(X_WARNING, "Couldn't load XKB keymap, falling back to pre-XKB keymap\n");
|
||||||
}
|
}
|
||||||
ok= InitKeyboardDeviceStruct((DevicePtr)dev,pSyms,pMods,bellProc,ctrlProc);
|
ok= InitKeyboardDeviceStruct((DevicePtr)dev,pSyms,pMods,bellProc,ctrlProc);
|
||||||
if ((config!=NULL)&&(dev && dev->key && dev->key->xkbInfo))
|
|
||||||
XkbDDXApplyConfig(config,dev->key->xkbInfo);
|
|
||||||
_XkbInitFileInfo= NULL;
|
_XkbInitFileInfo= NULL;
|
||||||
if ((pSyms==&tmpSyms)&&(pSyms->map!=NULL)) {
|
if ((pSyms==&tmpSyms)&&(pSyms->map!=NULL)) {
|
||||||
_XkbFree(pSyms->map);
|
_XkbFree(pSyms->map);
|
||||||
|
|
1355
xkb/xkbconfig.c
1355
xkb/xkbconfig.c
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue