convert log_ref_write_fd() to use strbuf

Since we don't care about how many bytes were written, simplify the return
value logic.

log_ref_write_fd() was written long before strbuf was fleshed out. Remove
the old manual buffer management code and replace it with strbuf(). Also
update copy_reflog_msg() which is called only by log_ref_write_fd() to use
strbuf as it keeps things consistent.

Signed-off-by: Ben Peart <Ben.Peart@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Ben Peart
2018-07-10 21:08:22 +00:00
committed by Junio C Hamano
parent e3331758f1
commit 80a6c2073b
3 changed files with 17 additions and 31 deletions

12
refs.c
View File

@ -786,25 +786,21 @@ int delete_ref(const char *msg, const char *refname,
old_oid, flags);
}
int copy_reflog_msg(char *buf, const char *msg)
void copy_reflog_msg(struct strbuf *sb, const char *msg)
{
char *cp = buf;
char c;
int wasspace = 1;
*cp++ = '\t';
strbuf_addch(sb, '\t');
while ((c = *msg++)) {
if (wasspace && isspace(c))
continue;
wasspace = isspace(c);
if (wasspace)
c = ' ';
*cp++ = c;
strbuf_addch(sb, c);
}
while (buf < cp && isspace(cp[-1]))
cp--;
*cp++ = '\n';
return cp - buf;
strbuf_rtrim(sb);
}
int should_autocreate_reflog(const char *refname)