Add vtxx option to kdrive servers
This commit is contained in:
parent
f214cab20b
commit
b5d1c53862
|
@ -75,16 +75,21 @@ LinuxInit ()
|
||||||
FatalError("LinuxInit: Server must be suid root\n");
|
FatalError("LinuxInit: Server must be suid root\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((fd = open("/dev/tty0",O_WRONLY,0)) < 0)
|
if (kdVirtualTerminal >= 0)
|
||||||
|
vtno = kdVirtualTerminal;
|
||||||
|
else
|
||||||
{
|
{
|
||||||
FatalError(
|
if ((fd = open("/dev/tty0",O_WRONLY,0)) < 0)
|
||||||
"LinuxInit: Cannot open /dev/tty0 (%s)\n",
|
{
|
||||||
strerror(errno));
|
FatalError(
|
||||||
}
|
"LinuxInit: Cannot open /dev/tty0 (%s)\n",
|
||||||
if ((ioctl(fd, VT_OPENQRY, &vtno) < 0) ||
|
strerror(errno));
|
||||||
(vtno == -1))
|
}
|
||||||
{
|
if ((ioctl(fd, VT_OPENQRY, &vtno) < 0) ||
|
||||||
FatalError("xf86OpenConsole: Cannot find a free VT\n");
|
(vtno == -1))
|
||||||
|
{
|
||||||
|
FatalError("xf86OpenConsole: Cannot find a free VT\n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
close(fd);
|
close(fd);
|
||||||
|
|
||||||
|
|
|
@ -53,6 +53,7 @@ Bool kdEmulateMiddleButton;
|
||||||
Bool kdDisableZaphod;
|
Bool kdDisableZaphod;
|
||||||
Bool kdEnabled;
|
Bool kdEnabled;
|
||||||
int kdSubpixelOrder;
|
int kdSubpixelOrder;
|
||||||
|
int kdVirtualTerminal = -1;
|
||||||
Bool kdSwitchPending;
|
Bool kdSwitchPending;
|
||||||
DDXPointRec kdOrigin;
|
DDXPointRec kdOrigin;
|
||||||
|
|
||||||
|
@ -342,6 +343,7 @@ ddxUseMsg()
|
||||||
ErrorF("-videoTest Start the server, pause momentarily and exit\n");
|
ErrorF("-videoTest Start the server, pause momentarily and exit\n");
|
||||||
ErrorF("-origin X,Y Locates the next screen in the the virtual screen (Xinerama)\n");
|
ErrorF("-origin X,Y Locates the next screen in the the virtual screen (Xinerama)\n");
|
||||||
ErrorF("-mouse path[,n] Filename of mouse device, n is number of buttons\n");
|
ErrorF("-mouse path[,n] Filename of mouse device, n is number of buttons\n");
|
||||||
|
ErrorF("vtxx Use virtual terminal xx instead of the next available\n");
|
||||||
ErrorF("\n");
|
ErrorF("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -738,6 +740,11 @@ KdProcessArgument (int argc, char **argv, int i)
|
||||||
UseMsg ();
|
UseMsg ();
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
|
if (!strncmp (argv[i], "vt", 2) &&
|
||||||
|
sscanf (argv[i], "vt%2d", &kdVirtualTerminal) == 1)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
#ifdef PSEUDO8
|
#ifdef PSEUDO8
|
||||||
return p8ProcessArgument (argc, argv, i);
|
return p8ProcessArgument (argc, argv, i);
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -309,6 +309,7 @@ extern Bool kdEnabled;
|
||||||
extern Bool kdSwitchPending;
|
extern Bool kdSwitchPending;
|
||||||
extern Bool kdEmulateMiddleButton;
|
extern Bool kdEmulateMiddleButton;
|
||||||
extern Bool kdDisableZaphod;
|
extern Bool kdDisableZaphod;
|
||||||
|
extern int kdVirtualTerminal;
|
||||||
extern KdOsFuncs *kdOsFuncs;
|
extern KdOsFuncs *kdOsFuncs;
|
||||||
|
|
||||||
#define KdGetScreenPriv(pScreen) ((KdPrivScreenPtr) \
|
#define KdGetScreenPriv(pScreen) ((KdPrivScreenPtr) \
|
||||||
|
|
Loading…
Reference in New Issue