launch_editor(): Heed GIT_EDITOR and core.editor settings

In the commit 'Add GIT_EDITOR environment and core.editor
configuration variables', this was done for the shell scripts.
Port it over to builtin-tag's version of launch_editor(), which
is just about to be refactored into editor.c.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Johannes Schindelin 2007-07-20 13:06:09 +01:00 committed by Junio C Hamano
parent 62e09ce998
commit 4d87b9c5db
4 changed files with 15 additions and 3 deletions

View File

@ -24,7 +24,11 @@ static void launch_editor(const char *path, char **buffer, unsigned long *len)
const char *args[3];
int fd;
editor = getenv("VISUAL");
editor = getenv("GIT_EDITOR");
if (!editor && editor_program)
editor = editor_program;
if (!editor)
editor = getenv("VISUAL");
if (!editor)
editor = getenv("EDITOR");
@ -249,9 +253,9 @@ static void create_tag(const unsigned char *object, const char *tag,
char *message, int sign, unsigned char *result)
{
enum object_type type;
char header_buf[1024], *buffer;
char header_buf[1024], *buffer = NULL;
int header_len, max_size;
unsigned long size;
unsigned long size = 0;
type = sha1_object_info(object, NULL);
if (type <= 0)

View File

@ -560,6 +560,8 @@ extern char *pager_program;
extern int pager_in_use;
extern int pager_use_color;
extern char *editor_program;
/* base85 */
int decode_85(char *dst, const char *line, int linelen);
void encode_85(char *buf, const unsigned char *data, int bytes);

View File

@ -426,6 +426,11 @@ int git_default_config(const char *var, const char *value)
return 0;
}
if (!strcmp(var, "core.editor")) {
editor_program = xstrdup(value);
return 0;
}
/* Add other config variables here and to Documentation/config.txt. */
return 0;
}

View File

@ -33,6 +33,7 @@ size_t delta_base_cache_limit = 16 * 1024 * 1024;
char *pager_program;
int pager_in_use;
int pager_use_color = 1;
char *editor_program;
int auto_crlf = 0; /* 1: both ways, -1: only when adding git objects */
static const char *git_dir;