{"thread":{"id":"9116","subject":"[PATCH 1/2] launch_editor(): Heed GIT_EDITOR and core.editor settings","startedAt":"2007-07-20T12:06:09Z","lastAt":"2007-07-20T12:06:09Z","messageCount":1,"participants":["Johannes Schindelin"],"isPatch":true,"patchVersion":1,"patchTotal":2},"messages":[{"id":"47958","messageId":"Pine.LNX.4.64.0707201305400.14781@racer.site","threadId":"9116","inReplyTo":null,"subject":"[PATCH 1/2] launch_editor(): Heed GIT_EDITOR and core.editor settings","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2007-07-20T12:06:09Z","receivedAt":"2007-07-20T12:06:09Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"\nIn the commit 'Add GIT_EDITOR environment and core.editor\nconfiguration variables', this was done for the shell scripts.\nPort it over to builtin-tag's version of launch_editor(), which\nis just about to be refactored into editor.c.\n\nSigned-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>\n---\n builtin-tag.c |    6 +++++-\n cache.h       |    2 ++\n config.c      |    5 +++++\n environment.c |    1 +\n 4 files changed, 13 insertions(+), 1 deletions(-)\n\ndiff --git a/builtin-tag.c b/builtin-tag.c\nindex 507f510..cf36def 100644\n--- a/builtin-tag.c\n+++ b/builtin-tag.c\n@@ -24,7 +24,11 @@ static void launch_editor(const char *path, char **buffer, unsigned long *len)\n \tconst char *args[3];\n \tint fd;\n \n-\teditor = getenv(\"VISUAL\");\n+\teditor = getenv(\"GIT_EDITOR\");\n+\tif (!editor && editor_program)\n+\t\teditor = editor_program;\n+\tif (!editor)\n+\t\teditor = getenv(\"VISUAL\");\n \tif (!editor)\n \t\teditor = getenv(\"EDITOR\");\n \ndiff --git a/cache.h b/cache.h\nindex 1b88d75..0c12ce8 100644\n--- a/cache.h\n+++ b/cache.h\n@@ -564,6 +564,8 @@ extern char *pager_program;\n extern int pager_in_use;\n extern int pager_use_color;\n \n+extern char *editor_program;\n+\n /* base85 */\n int decode_85(char *dst, const char *line, int linelen);\n void encode_85(char *buf, const unsigned char *data, int bytes);\ndiff --git a/config.c b/config.c\nindex bdbfdec..9d8e9dc 100644\n--- a/config.c\n+++ b/config.c\n@@ -431,6 +431,11 @@ int git_default_config(const char *var, const char *value)\n \t\treturn 0;\n \t}\n \n+\tif (!strcmp(var, \"core.editor\")) {\n+\t\teditor_program = xstrdup(value);\n+\t\treturn 0;\n+\t}\n+\n \t/* Add other config variables here and to Documentation/config.txt. */\n \treturn 0;\n }\ndiff --git a/environment.c b/environment.c\nindex 04d06b6..2e9d505 100644\n--- a/environment.c\n+++ b/environment.c\n@@ -33,6 +33,7 @@ size_t delta_base_cache_limit = 16 * 1024 * 1024;\n char *pager_program;\n int pager_in_use;\n int pager_use_color = 1;\n+char *editor_program;\n int auto_crlf = 0;\t/* 1: both ways, -1: only when adding git objects */\n int show_commit_annotations;\n \n-- \n1.5.3.rc1.16.g9d6f-dirty\n"}]}