Replace system with execlp and fix indentation
This commit is contained in:
parent
d67e01086c
commit
462ce7b792
1 changed files with 56 additions and 45 deletions
15
ccc.c
15
ccc.c
|
@ -173,7 +173,7 @@ int main(int argc, char **argv)
|
|||
/* go back */
|
||||
case BACKSPACE:
|
||||
case ARROW_LEFT:
|
||||
case 'h':;
|
||||
case 'h':
|
||||
/* get parent directory */
|
||||
strcpy(p_cwd, cwd);
|
||||
char *last_slash = strrchr(cwd, '/');
|
||||
|
@ -1002,8 +1002,19 @@ void edit_file(void)
|
|||
char command[length];
|
||||
|
||||
snprintf(command, length, "%s %s", editor, filename);
|
||||
system(command);
|
||||
pid_t pid = fork();
|
||||
if (pid == 0) {
|
||||
/* Child process */
|
||||
execlp(editor, editor, filename, NULL);
|
||||
_exit(1); /* Exit if exec fails */
|
||||
} else if (pid > 0) {
|
||||
/* Parent process */
|
||||
waitpid(pid, NULL, 0);
|
||||
list_files();
|
||||
} else {
|
||||
/* Fork failed */
|
||||
wpprintw("fork failed: %s", strerror(errno));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue