summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Johannes Schindelin <Johannes.Schindelin@gmx.de>2006-06-28 12:45:27 +0200
committerLibravatar Junio C Hamano <junkio@cox.net>2006-06-28 03:55:36 -0700
commit47e5c0ca2cabb406518dda5c09432dc996f7ef2b (patch)
tree933006abefab3e5ccd5cacc995e02d1791899d14
parentrebase: check for errors from git-commit (diff)
downloadtgif-47e5c0ca2cabb406518dda5c09432dc996f7ef2b.tar.xz
Save errno in handle_alias()
git.c:main() relies on the value of errno being set by the last attempt to execute the command. However, if something goes awry in handle_alias(), that assumption is wrong. So restore errno before returning from handle_alias(). Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r--git.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/git.c b/git.c
index 159fec008b..ca8961f073 100644
--- a/git.c
+++ b/git.c
@@ -100,7 +100,7 @@ static int split_cmdline(char *cmdline, const char ***argv)
static int handle_alias(int *argcp, const char ***argv)
{
- int nongit = 0, ret = 0;
+ int nongit = 0, ret = 0, saved_errno = errno;
const char *subdir;
subdir = setup_git_directory_gently(&nongit);
@@ -138,6 +138,8 @@ static int handle_alias(int *argcp, const char ***argv)
if (subdir)
chdir(subdir);
+ errno = saved_errno;
+
return ret;
}