From 919df09ffa5624b83786907db9b2f0934e3f6b06 Mon Sep 17 00:00:00 2001 From: Benno Schulenberg <bensberg@telfort.nl> Date: Wed, 31 Jan 2018 12:35:21 +0100 Subject: [PATCH] general: detect in a better way whether we're running on a Linux console Suggested-by: Mike Frysinger <vapier@gentoo.org> --- src/nano.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/nano.c b/src/nano.c index cae57e0f..091f774a 100644 --- 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. */ -- GitLab