Merge branch 'ep/commit-static-buf-cleanup'
Code clean-up. * ep/commit-static-buf-cleanup: builtin/commit.c: switch to strbuf, instead of snprintf() builtin/commit.c: remove the PATH_MAX limitation via dynamic allocation
This commit is contained in:
commit
cc8364c28b
@ -960,15 +960,15 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
|
||||
return 0;
|
||||
|
||||
if (use_editor) {
|
||||
char index[PATH_MAX];
|
||||
const char *env[2] = { NULL };
|
||||
env[0] = index;
|
||||
snprintf(index, sizeof(index), "GIT_INDEX_FILE=%s", index_file);
|
||||
if (launch_editor(git_path_commit_editmsg(), NULL, env)) {
|
||||
struct argv_array env = ARGV_ARRAY_INIT;
|
||||
|
||||
argv_array_pushf(&env, "GIT_INDEX_FILE=%s", index_file);
|
||||
if (launch_editor(git_path_commit_editmsg(), NULL, env.argv)) {
|
||||
fprintf(stderr,
|
||||
_("Please supply the message using either -m or -F option.\n"));
|
||||
exit(1);
|
||||
}
|
||||
argv_array_clear(&env);
|
||||
}
|
||||
|
||||
if (!no_verify &&
|
||||
@ -1525,12 +1525,10 @@ static int git_commit_config(const char *k, const char *v, void *cb)
|
||||
static int run_rewrite_hook(const unsigned char *oldsha1,
|
||||
const unsigned char *newsha1)
|
||||
{
|
||||
/* oldsha1 SP newsha1 LF NUL */
|
||||
static char buf[2*40 + 3];
|
||||
struct child_process proc = CHILD_PROCESS_INIT;
|
||||
const char *argv[3];
|
||||
int code;
|
||||
size_t n;
|
||||
struct strbuf sb = STRBUF_INIT;
|
||||
|
||||
argv[0] = find_hook("post-rewrite");
|
||||
if (!argv[0])
|
||||
@ -1546,34 +1544,33 @@ static int run_rewrite_hook(const unsigned char *oldsha1,
|
||||
code = start_command(&proc);
|
||||
if (code)
|
||||
return code;
|
||||
n = snprintf(buf, sizeof(buf), "%s %s\n",
|
||||
sha1_to_hex(oldsha1), sha1_to_hex(newsha1));
|
||||
strbuf_addf(&sb, "%s %s\n", sha1_to_hex(oldsha1), sha1_to_hex(newsha1));
|
||||
sigchain_push(SIGPIPE, SIG_IGN);
|
||||
write_in_full(proc.in, buf, n);
|
||||
write_in_full(proc.in, sb.buf, sb.len);
|
||||
close(proc.in);
|
||||
strbuf_release(&sb);
|
||||
sigchain_pop(SIGPIPE);
|
||||
return finish_command(&proc);
|
||||
}
|
||||
|
||||
int run_commit_hook(int editor_is_used, const char *index_file, const char *name, ...)
|
||||
{
|
||||
const char *hook_env[3] = { NULL };
|
||||
char index[PATH_MAX];
|
||||
struct argv_array hook_env = ARGV_ARRAY_INIT;
|
||||
va_list args;
|
||||
int ret;
|
||||
|
||||
snprintf(index, sizeof(index), "GIT_INDEX_FILE=%s", index_file);
|
||||
hook_env[0] = index;
|
||||
argv_array_pushf(&hook_env, "GIT_INDEX_FILE=%s", index_file);
|
||||
|
||||
/*
|
||||
* Let the hook know that no editor will be launched.
|
||||
*/
|
||||
if (!editor_is_used)
|
||||
hook_env[1] = "GIT_EDITOR=:";
|
||||
argv_array_push(&hook_env, "GIT_EDITOR=:");
|
||||
|
||||
va_start(args, name);
|
||||
ret = run_hook_ve(hook_env, name, args);
|
||||
ret = run_hook_ve(hook_env.argv,name, args);
|
||||
va_end(args);
|
||||
argv_array_clear(&hook_env);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user