diff options
author | Johannes Schindelin <Johannes.Schindelin@gmx.de> | 2006-06-28 14:45:27 +0400 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-06-28 14:55:36 +0400 |
commit | 47e5c0ca2cabb406518dda5c09432dc996f7ef2b (patch) | |
tree | 933006abefab3e5ccd5cacc995e02d1791899d14 | |
parent | f0ef05967f3b261fb16f5fdea6dd104c9bdb4c8c (diff) |
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.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -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; } |