From 1c9c52647fe2984472246eb2c12b3412fd5fafa4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Fri, 25 Nov 2016 16:41:53 +0100 Subject: [PATCH] vis-menu: also re-open /dev/tty as stderr This means vis-menu will also work when stderr is used for other purposes. This will be used by the vis editor: - stdin is used for the initial completion candidates - stdout is used to return the selected entry - stderr is used for error reporting --- vis-menu.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/vis-menu.c b/vis-menu.c index a37e7dfc4..a5023e209 100644 --- a/vis-menu.c +++ b/vis-menu.c @@ -201,6 +201,7 @@ drawmenu(void) { } fprintf(stderr, "\033[%iG", (int)(promptw+textwn(text, cursor)-1)); + fflush(stderr); } static char* @@ -317,7 +318,8 @@ setup(void) { struct winsize ws; /* re-open stdin to read keyboard */ - if (!freopen("/dev/tty", "r", stdin)) die("Can't reopen tty."); + if (!freopen("/dev/tty", "r", stdin)) die("Can't reopen tty as stdin."); + if (!freopen("/dev/tty", "w", stderr)) die("Can't reopen tty as stderr."); /* ioctl() the tty to get size */ fd = open("/dev/tty", O_RDWR);