nano

nano with my custom patches
git clone git://bsandro.tech/nano
Log | Files | Refs | README | LICENSE

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:
Msrc/nano.c | 9+++++++--
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. */