Skip to content

Commit

Permalink
builtin-commit: fix reflog message generation
Browse files Browse the repository at this point in the history
Instead of strdup()ing, we can just reuse the buffer in which the
commit message is stored, and which is supposed to hold the reflog
message anyway.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Johannes Schindelin authored and Junio C Hamano committed Nov 23, 2007
1 parent e97c9ad commit 741707b
Showing 1 changed file with 8 additions and 7 deletions.
15 changes: 8 additions & 7 deletions builtin-commit.c
Original file line number Diff line number Diff line change
Expand Up @@ -488,7 +488,7 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
int header_len, parent_count = 0;
struct strbuf sb;
const char *index_file, *reflog_msg;
char *nl, *header_line;
char *nl;
unsigned char commit_sha1[20];
struct ref_lock *ref_lock;

Expand Down Expand Up @@ -585,12 +585,13 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
0);

nl = strchr(sb.buf + header_len, '\n');
header_line = xstrndup(sb.buf + header_len,
nl - (sb.buf + header_len));
strbuf_release(&sb);
strbuf_addf(&sb, "%s: %s\n", reflog_msg, header_line);
strbuf_addch(&sb, '\0');
free(header_line);
if (nl)
strbuf_setlen(&sb, nl + 1 - sb.buf);
else
strbuf_addch(&sb, '\n');
strbuf_remove(&sb, 0, header_len);
strbuf_insert(&sb, 0, reflog_msg, strlen(reflog_msg));
strbuf_insert(&sb, strlen(reflog_msg), ": ", 2);

if (!ref_lock)
die("cannot lock HEAD ref");
Expand Down

0 comments on commit 741707b

Please sign in to comment.