diff options
Diffstat (limited to 'builtin-tag.c')
-rw-r--r-- | builtin-tag.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/builtin-tag.c b/builtin-tag.c index cbb0f04e85..566b9d186f 100644 --- a/builtin-tag.c +++ b/builtin-tag.c @@ -17,11 +17,9 @@ static const char builtin_tag_usage[] = static char signingkey[1000]; -static void launch_editor(const char *path, struct strbuf *buffer) +void launch_editor(const char *path, struct strbuf *buffer) { const char *editor, *terminal; - struct child_process child; - const char *args[3]; editor = getenv("GIT_EDITOR"); if (!editor && editor_program) @@ -42,14 +40,12 @@ static void launch_editor(const char *path, struct strbuf *buffer) if (!editor) editor = "vi"; - memset(&child, 0, sizeof(child)); - child.argv = args; - args[0] = editor; - args[1] = path; - args[2] = NULL; + if (strcmp(editor, ":")) { + const char *args[] = { editor, path, NULL }; - if (run_command(&child)) - die("There was a problem with the editor %s.", editor); + if (run_command_v_opt(args, 0)) + die("There was a problem with the editor %s.", editor); + } if (strbuf_read_file(buffer, path, 0) < 0) die("could not read message file '%s': %s", |