Просмотр исходного кода

Merge pull request #858 from KlzXS/xdgopen

Fix frozen terminal caused by opener
master
Mischievous Meerkat GitHub 3 лет назад
Родитель
Сommit
5c47ac651f
Не найден GPG ключ соответствующий данной подписи Идентификатор GPG ключа: 4AEE18F83AFDEB23
1 измененных файлов: 4 добавлений и 1 удалений
  1. +4
    -1
      src/nnn.c

+ 4
- 1
src/nnn.c Просмотреть файл

@@ -215,6 +215,7 @@
#define F_NORMAL 0x08 /* spawn child process in non-curses regular CLI mode */ #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_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_CHKRTN 0x20 /* wait for user prompt if cmd returns failure status */
#define F_NOSTDIN 0x40 /* suppress stdin */
#define F_CLI (F_NORMAL | F_MULTI) #define F_CLI (F_NORMAL | F_MULTI)
#define F_SILENT (F_CLI | F_NOTRACE) #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) { if (flag & F_NOTRACE) {
int fd = open("/dev/null", O_WRONLY, 0200); int fd = open("/dev/null", O_WRONLY, 0200);


if (flag & F_NOSTDIN)
dup2(fd, 0);
dup2(fd, 1); dup2(fd, 1);
dup2(fd, 2); dup2(fd, 2);
close(fd); close(fd);
@@ -5872,7 +5875,7 @@ static bool browse(char *ipath, const char *session, int pkey)
enum action sel; enum action sel;
struct stat sb; struct stat sb;
int r = -1, presel, selstartid = 0, selendid = 0; int r = -1, presel, selstartid = 0, selendid = 0;
const uchar_t opener_flags = (cfg.cliopener ? F_CLI : (F_NOTRACE | F_NOWAIT));
const uchar_t opener_flags = (cfg.cliopener ? F_CLI : (F_NOTRACE | F_NOSTDIN | F_NOWAIT));
bool watch = FALSE; bool watch = FALSE;


#ifndef NOMOUSE #ifndef NOMOUSE


Загрузка…
Отмена
Сохранить