From 38508ed6e468758939a48cc4eb1ef45f4f452628 Mon Sep 17 00:00:00 2001 From: verdant Date: Tue, 28 Jul 2026 20:38:07 +0800 Subject: Refactor open_with_editor() Use spawn() instead of fork child process and execute external commands manually. --- src/fm.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/src/fm.c b/src/fm.c index a112e13..0ab41bc 100644 --- a/src/fm.c +++ b/src/fm.c @@ -3,6 +3,7 @@ #include "display.h" #include "err.h" #include "log.h" +#include "process.h" #include "wm.h" #include #include @@ -458,7 +459,6 @@ fm_getenv(void) int open_with_editor(char **argv) { - pid_t pid; def_prog_mode(); endwin(); @@ -466,18 +466,8 @@ open_with_editor(char **argv) argv[0] = utils[UTIL_VI]; } - if ((pid = fork()) < 0) { - log_write(LOG_ERR, "fork error"); - return -1; - } else if (pid == 0) { - if (execvp(argv[0], argv) < 0) { - log_write(LOG_ERR, "execvp error"); - return -1; - } - } else { - wait(NULL); - need_redraw = true; - } + spawn(argv); + need_redraw = true; return 0; } -- cgit v1.2.3