From: Luciano Rocha Date: Thu, 20 Dec 2007 09:57:06 GMT Subject: [PATCH v2] builtin-tag.c: allow arguments in $EDITOR Message-ID: <20071220095706.GA9685@bit.office.eurotux.com> In-Reply-To: <20071219232326.GA4135@bit.office.eurotux.com> The previous sh version of git-commit evaluated the value of the defined editor, thus allowing arguments. Make the builtin version work the same, by adding an explicit check for arguments in the editor command, and extract them to an additional argument. Signed-off-by: Luciano Rocha --- builtin-tag.c | 14 +++++++++++++- 1 files changed, 13 insertions(+), 1 deletions(-) I personally use EDITOR="gvim -f", thus this patch. Now with free() of temporary buffer. diff --git a/builtin-tag.c b/builtin-tag.c index 274901a..0e8575e 100644 --- a/builtin-tag.c +++ b/builtin-tag.c @@ -46,7 +46,19 @@ void launch_editor(const char *path, struct strbuf *buffer, const char *const *e if (!editor) editor = "vi"; - if (strcmp(editor, ":")) { + if (strstr(editor, " -")) { + char *editor_cmd = xstrdup(editor); + char *editor_sep = strstr(editor_cmd, " -"); + const char *args[] = { editor_cmd, editor_sep + 1, + path, NULL }; + + *editor_sep = '\0'; + + if (run_command_v_opt_cd_env(args, 0, NULL, env)) + die("There was a problem with the editor %s.", + editor_cmd); + free(editor_cmd); + } else if (strcmp(editor, ":")) { const char *args[] = { editor, path, NULL }; if (run_command_v_opt_cd_env(args, 0, NULL, env)) -- Luciano Rocha Eurotux Informática, S.A.