Code

Move launch_editor() from builtin-tag.c to editor.c
authorStephan Beyer <s-beyer@gmx.net>
Fri, 25 Jul 2008 16:28:41 +0000 (18:28 +0200)
committerJunio C Hamano <gitster@pobox.com>
Sat, 26 Jul 2008 00:08:34 +0000 (17:08 -0700)
launch_editor() is declared in strbuf.h but defined in builtin-tag.c.
This patch moves launch_editor() into a new source file editor.c,
but keeps the declaration in strbuf.h.

Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Makefile
builtin-tag.c
editor.c [new file with mode: 0644]

index f4b8e38e80d2cc00910e76c2eceb3ebdbfc55d65..d0add9d8ec5215b378480e88ae35af82dd8a8dc8 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -410,6 +410,7 @@ LIB_OBJS += diff-no-index.o
 LIB_OBJS += diff-lib.o
 LIB_OBJS += diff.o
 LIB_OBJS += dir.o
+LIB_OBJS += editor.o
 LIB_OBJS += entry.o
 LIB_OBJS += environment.o
 LIB_OBJS += exec_cmd.o
index c2cca6cb6dc46a221c65092d7c419445d6442b5f..219f51d6fc56d1d4a7623cd921e9f18dc7e0ca90 100644 (file)
@@ -23,59 +23,6 @@ static const char * const git_tag_usage[] = {
 
 static char signingkey[1000];
 
-void launch_editor(const char *path, struct strbuf *buffer, const char *const *env)
-{
-       const char *editor, *terminal;
-
-       editor = getenv("GIT_EDITOR");
-       if (!editor && editor_program)
-               editor = editor_program;
-       if (!editor)
-               editor = getenv("VISUAL");
-       if (!editor)
-               editor = getenv("EDITOR");
-
-       terminal = getenv("TERM");
-       if (!editor && (!terminal || !strcmp(terminal, "dumb"))) {
-               fprintf(stderr,
-               "Terminal is dumb but no VISUAL nor EDITOR defined.\n"
-               "Please supply the message using either -m or -F option.\n");
-               exit(1);
-       }
-
-       if (!editor)
-               editor = "vi";
-
-       if (strcmp(editor, ":")) {
-               size_t len = strlen(editor);
-               int i = 0;
-               const char *args[6];
-               struct strbuf arg0;
-
-               strbuf_init(&arg0, 0);
-               if (strcspn(editor, "$ \t'") != len) {
-                       /* there are specials */
-                       strbuf_addf(&arg0, "%s \"$@\"", editor);
-                       args[i++] = "sh";
-                       args[i++] = "-c";
-                       args[i++] = arg0.buf;
-               }
-               args[i++] = editor;
-               args[i++] = path;
-               args[i] = NULL;
-
-               if (run_command_v_opt_cd_env(args, 0, NULL, env))
-                       die("There was a problem with the editor %s.", editor);
-               strbuf_release(&arg0);
-       }
-
-       if (!buffer)
-               return;
-       if (strbuf_read_file(buffer, path, 0) < 0)
-               die("could not read message file '%s': %s",
-                   path, strerror(errno));
-}
-
 struct tag_filter {
        const char *pattern;
        int lines;
diff --git a/editor.c b/editor.c
new file mode 100644 (file)
index 0000000..483b62d
--- /dev/null
+++ b/editor.c
@@ -0,0 +1,56 @@
+#include "cache.h"
+#include "strbuf.h"
+#include "run-command.h"
+
+void launch_editor(const char *path, struct strbuf *buffer, const char *const *env)
+{
+       const char *editor, *terminal;
+
+       editor = getenv("GIT_EDITOR");
+       if (!editor && editor_program)
+               editor = editor_program;
+       if (!editor)
+               editor = getenv("VISUAL");
+       if (!editor)
+               editor = getenv("EDITOR");
+
+       terminal = getenv("TERM");
+       if (!editor && (!terminal || !strcmp(terminal, "dumb"))) {
+               fprintf(stderr,
+               "Terminal is dumb but no VISUAL nor EDITOR defined.\n"
+               "Please supply the message using either -m or -F option.\n");
+               exit(1);
+       }
+
+       if (!editor)
+               editor = "vi";
+
+       if (strcmp(editor, ":")) {
+               size_t len = strlen(editor);
+               int i = 0;
+               const char *args[6];
+               struct strbuf arg0;
+
+               strbuf_init(&arg0, 0);
+               if (strcspn(editor, "$ \t'") != len) {
+                       /* there are specials */
+                       strbuf_addf(&arg0, "%s \"$@\"", editor);
+                       args[i++] = "sh";
+                       args[i++] = "-c";
+                       args[i++] = arg0.buf;
+               }
+               args[i++] = editor;
+               args[i++] = path;
+               args[i] = NULL;
+
+               if (run_command_v_opt_cd_env(args, 0, NULL, env))
+                       die("There was a problem with the editor %s.", editor);
+               strbuf_release(&arg0);
+       }
+
+       if (!buffer)
+               return;
+       if (strbuf_read_file(buffer, path, 0) < 0)
+               die("could not read message file '%s': %s",
+                   path, strerror(errno));
+}