Code

do not let git_path clobber errno when reporting errors
authorJonathan Nieder <jrnieder@gmail.com>
Wed, 16 Nov 2011 08:03:36 +0000 (02:03 -0600)
committerJunio C Hamano <gitster@pobox.com>
Thu, 17 Nov 2011 23:06:27 +0000 (15:06 -0800)
commit418c9b176cbabf954b6325cca0bea7f9be251afe
treeda1efd67a778b6c9b4782fa69ef53ba64dbc4c75
parent4d2440fe0daa9ad1556dfd220af8b3a883cf849d
do not let git_path clobber errno when reporting errors

Because git_path() calls vsnprintf(), code like

fd = open(git_path("SQUASH_MSG"), O_WRONLY | O_CREAT, 0666);
die_errno(_("Could not write to '%s'"), git_path("SQUASH_MSG"));

can end up printing an error indicator from vsnprintf() instead of
open() by mistake.  Store the path we are trying to write to in a
temporary variable and pass _that_ to die_errno(), so the messages
written by git cherry-pick/revert and git merge can avoid this source
of confusion.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/merge.c
builtin/revert.c