First off, thanks for the extensive review and discussion...
[1/3] I changed the snprintf handling to tack the error onto the
format and pass that to die_routine(). I still think it's crazy to
invent new format characters, but who knows.
[2/3] Fixed as per Johannes Sixt's comments.
[3/3] Removed the terrible empty-lines mess caused by pilot error.
Johannes Sixt wrote:
> > @@ -1018,8 +1017,10 @@ int cmd_commit(int argc, const char **argv, const
> > char *prefix)
> >
> > if (commit_index_files())
> > die ("Repository has been updated, but unable to write\n"
> > - "new_index file. Check that disk is not full or quota is\n"
> > - "not exceeded, and then \"git reset HEAD\" to recover.");
> > + "new_index file: %s.\n"
> > + "Check that disk is not full or quota is not exceeded,\n"
> > + "and then \"git reset HEAD\" to recover.",
> > + strerror(errno));
>
> This change should probably not be in this patch. Removed... I'm not enough of an expert to say if
commit_index_files() can only fail because the disk is full, so I
figured it would still be an improvement to show the real error.
If you just meant that it should go in a separate patch because it's
not a die->die_errno change, I can do that, it just feels like
overkill because it is morally the same change, but in a case where
I cannot apply the die_errno shortcut.
Thomas Rast (3):
Introduce die_errno() that appends strerror(errno) to die()
Convert existing die(..., strerror(errno)) to die_errno()
Use die_errno() instead of die() when checking syscalls
abspath.c | 12 ++++++------
bisect.c | 5 ++---
branch.c | 4 ++--
builtin-add.c | 2 +-
builtin-apply.c | 12 ++++++------
builtin-archive.c | 4 ++--
builtin-blame.c | 15 +++++++--------
builtin-clone.c | 21 ++++++++++-----------
builtin-commit-tree.c | 2 +-
builtin-commit.c | 28 +++++++++++++---------------
builtin-config.c | 4 ++--
builtin-diff.c | 2 +-
builtin-fast-export.c | 4 ++--
builtin-fetch--tool.c | 2 +-
builtin-fmt-merge-msg.c | 5 ++---
builtin-fsck.c | 10 +++++-----
builtin-grep.c | 2 +-
builtin-init-db.c | 21 +++++++++++----------
builtin-log.c | 4 ++--
builtin-mailsplit.c | 6 +++---
builtin-merge.c | 29 ++++++++++++++++-------------
builtin-mv.c | 2 +-
builtin-pack-objects.c | 14 +++++---------
builtin-rev-parse.c | 2 +-
builtin-revert.c | 2 +-
builtin-rm.c | 2 +-
builtin-send-pack.c | 2 +-
builtin-stripspace.c | 2 +-
builtin-tag.c | 9 ++++-----
builtin-tar-tree.c | 2 +-
builtin-unpack-objects.c | 2 +-
combine-diff.c | 2 +-
csum-file.c | 5 ++---
daemon.c | 15 +++++++--------
diff.c | 10 +++++-----
dir.c | 2 +-
entry.c | 10 +++++-----
fast-import.c | 8 ++++----
git-compat-util.h | 1 +
git.c | 6 +++---
hash-object.c | 2 +-
index-pack.c | 21 ++++++++++-----------
ll-merge.c | 2 +-
merge-recursive.c | 6 +++---
mktag.c | 2 +-
pack-refs.c | 7 +++----
pack-write.c | 10 +++++-----
pkt-line.c | 4 ++--
read-cache.c | 8 ++++----
refs.c | 2 +-
run-command.c | 4 ++--
setup.c | 18 +++++++++---------
sha1_file.c | 2 +-
shell.c | 2 +-
test-sha1.c | 2 +-
transport.c | 4 ++--
unpack-file.c | 2 +-
usage.c | 12 ++++++++++++
wrapper.c | 8 ++++----
write_or_die.c | 6 +++---
60 files changed, 209 insertions(+), 207 deletions(-)