| `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 |
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;
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);
}
}
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\
goto nochange;
}
- exitcurses();
- spawn(desktop_manager, path, path, 0);
- initcurses();
+ spawn(desktop_manager, path, path, 2);
break;
case SEL_FSIZE:
sizeorder = !sizeorder;