diff --git a/hw/dmx/dmxinit.c b/hw/dmx/dmxinit.c index fd14a30db..7f041bc84 100644 --- a/hw/dmx/dmxinit.c +++ b/hw/dmx/dmxinit.c @@ -124,6 +124,7 @@ Bool dmxIgnoreBadFontPaths = FALSE; Bool dmxAddRemoveScreens = TRUE; int dmxLaunchIndex = 0; +char *dmxLaunchVT = NULL; #ifdef DMXVNC Bool dmxVnc = FALSE; @@ -761,7 +762,7 @@ void InitOutput(ScreenInfo *pScreenInfo, int argc, char *argv[]) } if (!dmxConfigDisplaysFromCommandLine ()) - dmxLaunchDisplay (argc, argv, dmxLaunchIndex); + dmxLaunchDisplay (argc, argv, dmxLaunchIndex, dmxLaunchVT); /* ddxProcessArgument has been called at this point, but any data * from the configuration file has not been applied. Do so, and be @@ -1133,8 +1134,8 @@ int ddxProcessArgument(int argc, char *argv[], int i) } else if ((argv[i][0] == 'v') && (argv[i][1] == 't')) { - /* ignore vtXX arguments */ - retval = 1; + dmxLaunchVT = argv[i]; + retval = 1; } else if (!strcmp(argv[i], "--")) { dmxLaunchIndex = i + 1; diff --git a/hw/dmx/dmxlaunch.c b/hw/dmx/dmxlaunch.c index 41742a446..2f17a7a5a 100644 --- a/hw/dmx/dmxlaunch.c +++ b/hw/dmx/dmxlaunch.c @@ -265,7 +265,7 @@ dmxSetupAuth (char *name, int authFd) } Bool -dmxLaunchDisplay (int argc, char *argv[], int index) +dmxLaunchDisplay (int argc, char *argv[], int index, char *vt) { sighandler_t oldSigUsr1; pid_t pid; @@ -349,6 +349,10 @@ dmxLaunchDisplay (int argc, char *argv[], int index) return FALSE; } + if (vt) + if (!dmxAddXbeArguments (&vt, 1)) + return FALSE; + if (!dmxAddXbeArguments (&endArg, 1)) return FALSE; diff --git a/hw/dmx/dmxlaunch.h b/hw/dmx/dmxlaunch.h index bfb3e0fd9..beef62209 100644 --- a/hw/dmx/dmxlaunch.h +++ b/hw/dmx/dmxlaunch.h @@ -26,7 +26,7 @@ #ifndef DMXLAUNCH_H #define DMXLAUNCH_H -extern Bool dmxLaunchDisplay (int argc, char *argv[], int index); +extern Bool dmxLaunchDisplay (int argc, char *argv[], int index, char *vt); extern void dmxAbortDisplay (void); #endif /* DMXLAUNCH_H */