瀏覽代碼

Do not wait when spawning DE file manager

master
Arun Prakash Jana 7 年之前
父節點
當前提交
4790d17d04
沒有發現已知的金鑰在資料庫的簽署中 GPG Key ID: A75979F35C080412
共有 3 個文件被更改,包括 19 次插入14 次删除
  1. +2
    -2
      README.md
  2. +2
    -2
      nnn.1
  3. +15
    -10
      nnn.c

+ 2
- 2
README.md 查看文件

@@ -139,8 +139,8 @@ nnn needs libreadline, libncursesw (on Linux or ncurses on OS X) and standard li
| `c` | Show change dir prompt |
| `d` | Toggle detail view |
| `D` | Toggle current file details screen |
| `m` | Show concise mediainfo in less |
| `M` | Show full mediainfo in less |
| `m` | Show concise mediainfo |
| `M` | Show full mediainfo |
| `.` | Toggle hide .dot files |
| `s` | Toggle sort by file size |
| `S` | Toggle disk usage analyzer mode |


+ 2
- 2
nnn.1 查看文件

@@ -56,9 +56,9 @@ Toggle detail view
.It Ic D
Toggle current file details screen
.It Ic m
Show concise mediainfo in less
Show concise mediainfo
.It Ic M
Show full mediainfo in less
Show full mediainfo
.It Ic \&.
Toggle hide .dot files
.It Ic s


+ 15
- 10
nnn.c 查看文件

@@ -280,8 +280,13 @@ xdirname(const char *path)
return buf;
}

/*
* Spawns a child process. Behaviour can be controlled using flag:
* flag = 1: draw a marker to indicate nnn spawned e.g., a shell
* flag = 2: do not wait in parent for child process e.g. DE file manager
*/
static void
spawn(char *file, char *arg, char *dir, int notify)
spawn(char *file, char *arg, char *dir, int flag)
{
pid_t pid;
int status;
@@ -290,14 +295,16 @@ spawn(char *file, char *arg, char *dir, int notify)
if (pid == 0) {
if (dir != NULL)
status = chdir(dir);
if (notify)
if (flag == 1)
fprintf(stdout, "\n +-++-++-+\n | n n n |\n +-++-++-+\n\n");
execlp(file, file, arg, NULL);
_exit(1);
} else {
/* Ignore interruptions */
while (waitpid(pid, &status, 0) == -1)
DPRINTF_D(status);
if (flag != 2) {
/* Ignore interruptions */
while (waitpid(pid, &status, 0) == -1)
DPRINTF_D(status);
}
DPRINTF_D(pid);
}
}
@@ -937,8 +944,8 @@ show_help(void)
c Show change dir prompt\n\
d Toggle detail view\n\
D Toggle current file details screen\n\
m Show concise mediainfo in less\n\
M Show full mediainfo in less\n\
m Show concise mediainfo\n\
M Show full mediainfo\n\
. Toggle hide .dot files\n\
s Toggle sort by file size\n\
S Toggle disk usage analyzer mode\n\
@@ -1618,9 +1625,7 @@ nochange:
goto nochange;
}

exitcurses();
spawn(desktop_manager, path, path, 0);
initcurses();
spawn(desktop_manager, path, path, 2);
break;
case SEL_FSIZE:
sizeorder = !sizeorder;


Loading…
取消
儲存