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 <luciano@xxxxxxxxxxx> --- 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 <luciano@xxxxxxxxxxx> Eurotux Informática, S.A. <http://www.eurotux.com/> - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html