nnn

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 54b7dc4756520b0b1070a9bd6b5efc0dd2dc0e74
parent 7e307bc2ffec54a301aeffd6caf4794e4c6034e7
Author: KlzXS <klzx+github@klzx.cf>
Date:   Tue, 16 Feb 2021 22:23:29 +0000

Fix frozen terminal

xdg-open would launch a cli program that would contest the terminal for character input

Diffstat:
Msrc/nnn.c | 3+++
1 file changed, 3 insertions(+), 0 deletions(-)

diff --git a/src/nnn.c b/src/nnn.c @@ -215,6 +215,7 @@ #define F_NORMAL 0x08 /* spawn child process in non-curses regular CLI mode */ #define F_CONFIRM 0x10 /* run command - show results before exit (must have F_NORMAL) */ #define F_CHKRTN 0x20 /* wait for user prompt if cmd returns failure status */ +#define F_ALLNULL 0x44 /* stdin, stdout and stderr mapped to /dev/null */ #define F_CLI (F_NORMAL | F_MULTI) #define F_SILENT (F_CLI | F_NOTRACE) @@ -1910,6 +1911,8 @@ static int spawn(char *file, char *arg1, char *arg2, uchar_t flag) if (flag & F_NOTRACE) { int fd = open("/dev/null", O_WRONLY, 0200); + if (flag & F_ALLNULL) + dup2(fd, 0); dup2(fd, 1); dup2(fd, 2); close(fd);