From 007f623ad8fc8de7a65bff82a603b853ad5b445f Mon Sep 17 00:00:00 2001 From: Daniel Santos Date: Thu, 30 Mar 2023 21:44:26 +0100 Subject: [PATCH] Editor executable support flags * Make editor executable into a string to be able to support (multiple) flags. * Change /help executable to suit this new feature Signed-off-by: Daniel Santos --- src/command/cmd_defs.c | 2 +- src/tools/editor.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/command/cmd_defs.c b/src/command/cmd_defs.c index c9faed96..0a996a44 100644 --- a/src/command/cmd_defs.c +++ b/src/command/cmd_defs.c @@ -2545,7 +2545,7 @@ static const struct cmd_t command_defs[] = { "/executable urlsave set \"curl %u -o %p\"", "/executable urlsave default", "/executable vcard_photo set \"feh %p\"", - "/executable editor set vim") + "/executable editor set \"emacsclient -t\"") }, { CMD_PREAMBLE("/url", diff --git a/src/tools/editor.c b/src/tools/editor.c index 350fb5b1..0efb4d6b 100644 --- a/src/tools/editor.c +++ b/src/tools/editor.c @@ -88,11 +88,16 @@ get_message_from_editor(gchar* message, gchar** returned_message) } char* editor = prefs_get_string(PREF_COMPOSE_EDITOR); + gchar* editor_with_filename = g_strdup_printf("%s %s", editor, filename); + gchar** editor_argv = g_strsplit(editor_with_filename, " ", 0); + + g_free(editor_with_filename); // Fork / exec pid_t pid = fork(); if (pid == 0) { - int x = execlp(editor, editor, filename, (char*)NULL); + int x = execvp(editor_argv[0], editor_argv); + g_strfreev(editor_argv); if (x == -1) { log_error("[Editor] Failed to exec %s", editor); }