commit ad198dd
Michael Forney
·
2015-08-30 08:21:32 +0000 UTC
parent d509875
launch: Always use a new VT when DISPLAY or WAYLAND_DISPLAY is set
1 files changed,
+7,
-5
+7,
-5
1@@ -305,12 +305,11 @@ done:
2 static void
3 find_vt(char *vt, size_t size)
4 {
5- char *vt_num_string;
6+ char *vtnr;
7
8- if ((vt_num_string = getenv("XDG_VTNR"))) {
9- if (snprintf(vt, size, "/dev/tty%s", vt_num_string) >= size)
10- die("XDG_VTNR is too long");
11- } else {
12+ /* If we are running from an existing X or wayland session, always open a new
13+ * VT instead of using the current one. */
14+ if (getenv("DISPLAY") || getenv("WAYLAND_DISPLAY") || !(vtnr = getenv("XDG_VTNR"))) {
15 int tty0_fd, vt_num;
16
17 tty0_fd = open("/dev/tty0", O_RDWR);
18@@ -321,6 +320,9 @@ find_vt(char *vt, size_t size)
19 close(tty0_fd);
20 if (snprintf(vt, size, "/dev/tty%d", vt_num) >= size)
21 die("VT number is too large");
22+ } else {
23+ if (snprintf(vt, size, "/dev/tty%s", vtnr) >= size)
24+ die("XDG_VTNR is too long");
25 }
26 }
27