Teach xkb how to optionally run xkbcomp from $bindir instead of
$datadir/xkb.
This commit is contained in:
parent
94fbdb5c6d
commit
287336f3c9
|
@ -176,7 +176,7 @@ char tmpname[PATH_MAX];
|
||||||
haveDir= False;
|
haveDir= False;
|
||||||
buf = Xprintf(
|
buf = Xprintf(
|
||||||
"'%s/xkbcomp' '-R%s/%s' -w %ld -l -vlfhpR '%s'" W32_tmparg,
|
"'%s/xkbcomp' '-R%s/%s' -w %ld -l -vlfhpR '%s'" W32_tmparg,
|
||||||
XkbBaseDirectory,XkbBaseDirectory,componentDirs[what],(long)
|
XkbBinDirectory,XkbBaseDirectory,componentDirs[what],(long)
|
||||||
((xkbDebugFlags<2)?1:((xkbDebugFlags>10)?10:xkbDebugFlags)),
|
((xkbDebugFlags<2)?1:((xkbDebugFlags>10)?10:xkbDebugFlags)),
|
||||||
file W32_tmpfile
|
file W32_tmpfile
|
||||||
);
|
);
|
||||||
|
|
|
@ -243,16 +243,21 @@ char *cmd = NULL,file[PATH_MAX],xkm_output_dir[PATH_MAX],*map,*outFile;
|
||||||
if (XkbBaseDirectory!=NULL) {
|
if (XkbBaseDirectory!=NULL) {
|
||||||
#ifndef __UNIXOS2__
|
#ifndef __UNIXOS2__
|
||||||
char *xkbbasedir = XkbBaseDirectory;
|
char *xkbbasedir = XkbBaseDirectory;
|
||||||
|
char *xkbbindir = XkbBinDirectory;
|
||||||
#else
|
#else
|
||||||
/* relocate the basedir and replace the slashes with backslashes */
|
/* relocate the basedir and replace the slashes with backslashes */
|
||||||
char *xkbbasedir = (char*)__XOS2RedirRoot(XkbBaseDirectory);
|
char *xkbbasedir = (char*)__XOS2RedirRoot(XkbBaseDirectory);
|
||||||
|
char *xkbbindir = (char*)__XOS2RedirRoot(XkbBinDirectory);
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i=0; i<strlen(xkbbasedir); i++)
|
for (i=0; i<strlen(xkbbasedir); i++)
|
||||||
if (xkbbasedir[i]=='/') xkbbasedir[i]='\\';
|
if (xkbbasedir[i]=='/') xkbbasedir[i]='\\';
|
||||||
|
for (i=0; i<strlen(xkbbindir); i++)
|
||||||
|
if (xkbbindir[i]=='/') xkbbindir[i]='\\';
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
cmd = Xprintf("\"%s" PATHSEPARATOR "xkbcomp\" -w %d \"-R%s\" -xkm %s%s -em1 %s -emp %s -eml %s keymap/%s \"%s%s.xkm\"",
|
cmd = Xprintf("\"%s" PATHSEPARATOR "xkbcomp\" -w %d \"-R%s\" -xkm %s%s -em1 %s -emp %s -eml %s keymap/%s \"%s%s.xkm\"",
|
||||||
xkbbasedir,
|
xkbbindir,
|
||||||
((xkbDebugFlags<2)?1:((xkbDebugFlags>10)?10:(int)xkbDebugFlags)),
|
((xkbDebugFlags<2)?1:((xkbDebugFlags>10)?10:(int)xkbDebugFlags)),
|
||||||
xkbbasedir,(map?"-m ":""),(map?map:""),
|
xkbbasedir,(map?"-m ":""),(map?map:""),
|
||||||
PRE_ERROR_MSG,ERROR_PREFIX,POST_ERROR_MSG1,file,
|
PRE_ERROR_MSG,ERROR_PREFIX,POST_ERROR_MSG1,file,
|
||||||
|
@ -337,16 +342,20 @@ char tmpname[PATH_MAX];
|
||||||
#endif
|
#endif
|
||||||
#ifndef __UNIXOS2__
|
#ifndef __UNIXOS2__
|
||||||
char *xkbbasedir = XkbBaseDirectory;
|
char *xkbbasedir = XkbBaseDirectory;
|
||||||
|
char *xkbbindir = XkbBinDirectory;
|
||||||
#else
|
#else
|
||||||
int i;
|
int i;
|
||||||
char *xkbbasedir = (char*)__XOS2RedirRoot(XkbBaseDirectory);
|
char *xkbbasedir = (char*)__XOS2RedirRoot(XkbBaseDirectory);
|
||||||
|
char *xkbbindir = (char*)__XOS2RedirRoot(XkbBinDirectory);
|
||||||
for (i=0; i<strlen(xkbbasedir); i++)
|
for (i=0; i<strlen(xkbbasedir); i++)
|
||||||
if (xkbbasedir[i]=='/') xkbbasedir[i]='\\';
|
if (xkbbasedir[i]=='/') xkbbasedir[i]='\\';
|
||||||
|
for (i=0; i<strlen(xkbbindir); i++)
|
||||||
|
if (xkbbindir[i]=='/') xkbbindir[i]='\\';
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
buf = Xprintf(
|
buf = Xprintf(
|
||||||
"\"%s" PATHSEPARATOR "xkbcomp\" -w %d \"-R%s\" -xkm \"%s\" -em1 %s -emp %s -eml %s \"%s%s.xkm\"",
|
"\"%s" PATHSEPARATOR "xkbcomp\" -w %d \"-R%s\" -xkm \"%s\" -em1 %s -emp %s -eml %s \"%s%s.xkm\"",
|
||||||
xkbbasedir,
|
xkbbindir,
|
||||||
((xkbDebugFlags<2)?1:((xkbDebugFlags>10)?10:(int)xkbDebugFlags)),
|
((xkbDebugFlags<2)?1:((xkbDebugFlags>10)?10:(int)xkbDebugFlags)),
|
||||||
xkbbasedir, xkmfile,
|
xkbbasedir, xkmfile,
|
||||||
PRE_ERROR_MSG,ERROR_PREFIX,POST_ERROR_MSG1,
|
PRE_ERROR_MSG,ERROR_PREFIX,POST_ERROR_MSG1,
|
||||||
|
|
|
@ -100,6 +100,9 @@ typedef struct _SrvXkmInfo {
|
||||||
#ifndef XKB_BASE_DIRECTORY
|
#ifndef XKB_BASE_DIRECTORY
|
||||||
#define XKB_BASE_DIRECTORY "/usr/lib/X11/xkb"
|
#define XKB_BASE_DIRECTORY "/usr/lib/X11/xkb"
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef XKB_BIN_DIRECTORY
|
||||||
|
#define XKB_BIN_DIRECTORY XKB_BASE_DIRECTORY
|
||||||
|
#endif
|
||||||
#ifndef XKB_DFLT_RULES_FILE
|
#ifndef XKB_DFLT_RULES_FILE
|
||||||
#define XKB_DFLT_RULES_FILE "rules"
|
#define XKB_DFLT_RULES_FILE "rules"
|
||||||
#endif
|
#endif
|
||||||
|
@ -123,6 +126,7 @@ typedef struct _SrvXkmInfo {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
char * XkbBaseDirectory= XKB_BASE_DIRECTORY;
|
char * XkbBaseDirectory= XKB_BASE_DIRECTORY;
|
||||||
|
char * XkbBinDirectory= XKB_BIN_DIRECTORY;
|
||||||
char * XkbInitialMap= NULL;
|
char * XkbInitialMap= NULL;
|
||||||
int XkbWantAccessX= 0;
|
int XkbWantAccessX= 0;
|
||||||
static XkbFileInfo * _XkbInitFileInfo= NULL;
|
static XkbFileInfo * _XkbInitFileInfo= NULL;
|
||||||
|
|
Loading…
Reference in New Issue