Now we only have one place where we need to touch the internals of the lock_file struct. No functional changes intended. Signed-off-by: Stefan Beller <sbeller@xxxxxxxxxx> --- refs.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/refs.c b/refs.c index 2472e61..2013d37 100644 --- a/refs.c +++ b/refs.c @@ -3052,6 +3052,16 @@ int is_branch(const char *refname) return !strcmp(refname, "HEAD") || starts_with(refname, "refs/heads/"); } +static int write_sha1_to_lock_file(struct ref_lock *lock, + const unsigned char *sha1) +{ + if (fdopen_lock_file(lock->lk, "w") < 0 + || fprintf(lock->lk->fp, "%s\n", sha1_to_hex(sha1)) != 41) + return -1; + else + return 0; +} + /* * Write sha1 into the ref specified by the lock. Make sure that errno * is sane on error. @@ -3059,7 +3069,6 @@ int is_branch(const char *refname) static int write_ref_sha1(struct ref_lock *lock, const unsigned char *sha1, const char *logmsg) { - static char term = '\n'; struct object *o; if (!lock) { @@ -3085,8 +3094,7 @@ static int write_ref_sha1(struct ref_lock *lock, errno = EINVAL; return -1; } - if (write_in_full(lock->lk->fd, sha1_to_hex(sha1), 40) != 40 || - write_in_full(lock->lk->fd, &term, 1) != 1 || + if (write_sha1_to_lock_file(lock, sha1) || close_ref(lock) < 0) { int save_errno = errno; error("Couldn't write %s", lock->lk->filename.buf); @@ -4042,9 +4050,7 @@ int reflog_expire(const char *refname, const unsigned char *sha1, status |= error("couldn't write %s: %s", log_file, strerror(errno)); } else if ((flags & EXPIRE_REFLOGS_UPDATE_REF) && - (write_in_full(lock->lk->fd, - sha1_to_hex(cb.last_kept_sha1), 40) != 40 || - write_str_in_full(lock->lk->fd, "\n") != 1 || + (write_sha1_to_lock_file(lock, cb.last_kept_sha1) || close_ref(lock) < 0)) { status |= error("couldn't write %s", lock->lk->filename.buf); -- 2.2.1.62.g3f15098 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html