launch_editor(): read the file, even when EDITOR=:
authorJohannes Schindelin <Johannes.Schindelin@gmx.de>
Thu, 8 Nov 2007 14:06:52 +0000 (14:06 +0000)
committerJunio C Hamano <gitster@pobox.com>
Fri, 23 Nov 2007 01:05:02 +0000 (17:05 -0800)
Earlier we just returned in case EDITOR=: but the message stored
in the file was not read back. Fix this, at the same time
simplifying the code as suggested by Johannes Sixt.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-tag.c
index 88a5449e67c9220564fe3461b9f99dc1fd41e9b4..566b9d186fb8a20841cce23914643556c6c24382 100644 (file)
@@ -20,8 +20,6 @@ static char signingkey[1000];
 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,17 +40,12 @@ void launch_editor(const char *path, struct strbuf *buffer)
        if (!editor)
                editor = "vi";
 
-       if (!strcmp(editor, ":"))
-               return;
-
-       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",