commit 919df09ffa5624b83786907db9b2f0934e3f6b06
parent ddbff6dcb21ed1f3f9cb59421ece1c111ad4eb4b
Author: Benno Schulenberg <bensberg@telfort.nl>
Date: Wed, 31 Jan 2018 12:35:21 +0100
general: detect in a better way whether we're running on a Linux console
Suggested-by: Mike Frysinger <vapier@gentoo.org>
Diffstat:
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/nano.c b/src/nano.c
@@ -26,7 +26,7 @@
#include <errno.h>
#include <fcntl.h>
#include <getopt.h>
-#ifndef NANO_TINY
+#if defined(__linux__) || !defined(NANO_TINY)
#include <sys/ioctl.h>
#endif
#ifdef ENABLE_UTF8
@@ -38,6 +38,9 @@
#include <termios.h>
#endif
#include <unistd.h>
+#ifdef __linux__
+#include <sys/vt.h>
+#endif
#ifdef ENABLE_MOUSE
static int oldinterval = -1;
@@ -1988,8 +1991,10 @@ int main(int argc, char **argv)
};
#ifdef __linux__
+ struct vt_stat dummy;
+
/* Check whether we're running on a Linux console. */
- console = (getenv("DISPLAY") == NULL);
+ console = (ioctl(0, VT_GETSTATE, &dummy) == 0);
#endif
/* Back up the terminal settings so that they can be restored. */