Xdmx: fix input driver initialization code paths
Problem: Xdmx exit with error "(Fatal Error) dmx: Unknown input argument: " if local input driver is specified (example: -input local,usb-kbd,usb-mou). Cause: code block for remote input drivers is placed in code path common for all drivers. Fix: affected code block moved to remote input driver code path part. Signed-off-by: Raimonds Cicans <ray@apollo.lv> Reviewed-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
parent
cbf09619f2
commit
b75835a435
|
@ -970,41 +970,6 @@ dmxInputInit(DMXInputInfo * dmxInput)
|
|||
|
||||
a = dmxArgParse(dmxInput->name);
|
||||
|
||||
for (i = 1; i < dmxArgC(a); i++) {
|
||||
switch (hasXkb) {
|
||||
case 1:
|
||||
dmxInput->keycodes = xstrdup(dmxArgV(a, i));
|
||||
++hasXkb;
|
||||
break;
|
||||
case 2:
|
||||
dmxInput->symbols = xstrdup(dmxArgV(a, i));
|
||||
++hasXkb;
|
||||
break;
|
||||
case 3:
|
||||
dmxInput->geometry = xstrdup(dmxArgV(a, i));
|
||||
hasXkb = 0;
|
||||
break;
|
||||
case 0:
|
||||
if (!strcmp(dmxArgV(a, i), "noxi"))
|
||||
doXI = 0;
|
||||
else if (!strcmp(dmxArgV(a, i), "xi"))
|
||||
doXI = 1;
|
||||
else if (!strcmp(dmxArgV(a, i), "console"))
|
||||
forceConsole = 1;
|
||||
else if (!strcmp(dmxArgV(a, i), "noconsole"))
|
||||
forceConsole = 0;
|
||||
else if (!strcmp(dmxArgV(a, i), "windows"))
|
||||
doWindows = 1;
|
||||
else if (!strcmp(dmxArgV(a, i), "nowindows"))
|
||||
doWindows = 0;
|
||||
else if (!strcmp(dmxArgV(a, i), "xkb"))
|
||||
hasXkb = 1;
|
||||
else {
|
||||
dmxLog(dmxFatal, "Unknown input argument: %s\n", dmxArgV(a, i));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
name = dmxArgV(a, 0);
|
||||
|
||||
if (!strcmp(name, "local")) {
|
||||
|
@ -1016,6 +981,41 @@ dmxInputInit(DMXInputInfo * dmxInput)
|
|||
dmxLogInput(dmxInput, "Using dummy input\n");
|
||||
}
|
||||
else {
|
||||
for (i = 1; i < dmxArgC(a); i++) {
|
||||
switch (hasXkb) {
|
||||
case 1:
|
||||
dmxInput->keycodes = xstrdup(dmxArgV(a, i));
|
||||
++hasXkb;
|
||||
break;
|
||||
case 2:
|
||||
dmxInput->symbols = xstrdup(dmxArgV(a, i));
|
||||
++hasXkb;
|
||||
break;
|
||||
case 3:
|
||||
dmxInput->geometry = xstrdup(dmxArgV(a, i));
|
||||
hasXkb = 0;
|
||||
break;
|
||||
case 0:
|
||||
if (!strcmp(dmxArgV(a, i), "noxi"))
|
||||
doXI = 0;
|
||||
else if (!strcmp(dmxArgV(a, i), "xi"))
|
||||
doXI = 1;
|
||||
else if (!strcmp(dmxArgV(a, i), "console"))
|
||||
forceConsole = 1;
|
||||
else if (!strcmp(dmxArgV(a, i), "noconsole"))
|
||||
forceConsole = 0;
|
||||
else if (!strcmp(dmxArgV(a, i), "windows"))
|
||||
doWindows = 1;
|
||||
else if (!strcmp(dmxArgV(a, i), "nowindows"))
|
||||
doWindows = 0;
|
||||
else if (!strcmp(dmxArgV(a, i), "xkb"))
|
||||
hasXkb = 1;
|
||||
else {
|
||||
dmxLog(dmxFatal, "Unknown input argument: %s\n", dmxArgV(a, i));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int found;
|
||||
|
||||
for (found = 0, i = 0; i < dmxNumScreens; i++) {
|
||||
|
|
Loading…
Reference in New Issue