summaryrefslogtreecommitdiffstats
path: root/abspath.c
diff options
context:
space:
mode:
authorThomas Rast <trast@student.ethz.ch>2009-06-27 17:58:47 +0200
committerJunio C Hamano <gitster@pobox.com>2009-06-27 11:14:53 -0700
commit0721c314a5c8fddc877140ab5a333c42c62f780d (patch)
tree3fbea50f91636df092ac245284e811a32738842c /abspath.c
parentd824cbba02a4061400a0e382f9bd241fbbff34f0 (diff)
downloadgit-0721c314a5c8fddc877140ab5a333c42c62f780d.tar.gz
git-0721c314a5c8fddc877140ab5a333c42c62f780d.tar.xz
Use die_errno() instead of die() when checking syscalls
Lots of die() calls did not actually report the kind of error, which can leave the user confused as to the real problem. Use die_errno() where we check a system/library call that sets errno on failure, or one of the following that wrap such calls: Function Passes on error from -------- -------------------- odb_pack_keep open read_ancestry fopen read_in_full xread strbuf_read xread strbuf_read_file open or strbuf_read_file strbuf_readlink readlink write_in_full xwrite Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'abspath.c')
-rw-r--r--abspath.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/abspath.c b/abspath.c
index 649f34f83..4bee0ba1e 100644
--- a/abspath.c
+++ b/abspath.c
@@ -41,13 +41,13 @@ const char *make_absolute_path(const char *path)
if (*buf) {
if (!*cwd && !getcwd(cwd, sizeof(cwd)))
- die ("Could not get current working directory");
+ die_errno ("Could not get current working directory");
if (chdir(buf))
- die ("Could not switch to '%s'", buf);
+ die_errno ("Could not switch to '%s'", buf);
}
if (!getcwd(buf, PATH_MAX))
- die ("Could not get current working directory");
+ die_errno ("Could not get current working directory");
if (last_elem) {
int len = strlen(buf);
@@ -63,7 +63,7 @@ const char *make_absolute_path(const char *path)
if (!lstat(buf, &st) && S_ISLNK(st.st_mode)) {
len = readlink(buf, next_buf, PATH_MAX);
if (len < 0)
- die ("Invalid symlink: %s", buf);
+ die_errno ("Invalid symlink '%s'", buf);
if (PATH_MAX <= len)
die("symbolic link too long: %s", buf);
next_buf[len] = '\0';
@@ -75,7 +75,7 @@ const char *make_absolute_path(const char *path)
}
if (*cwd && chdir(cwd))
- die ("Could not change back to '%s'", cwd);
+ die_errno ("Could not change back to '%s'", cwd);
return buf;
}
@@ -109,7 +109,7 @@ const char *make_nonrelative_path(const char *path)
} else {
const char *cwd = get_pwd_cwd();
if (!cwd)
- die("Cannot determine the current working directory");
+ die_errno("Cannot determine the current working directory");
if (snprintf(buf, PATH_MAX, "%s/%s", cwd, path) >= PATH_MAX)
die("Too long path: %.*s", 60, path);
}