X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=abspath.c;h=b88122cbe73ec0c438e2d375fdebd51e5febf9ae;hb=55b4e9e43227632dd372f916c08dca6e26118af5;hp=649f34f83365db3513c5166b897c4f033831444d;hpb=799fdb4ed0f9443122fdb85f6f73c58cb1de12ec;p=git.git diff --git a/abspath.c b/abspath.c index 649f34f83..b88122cbe 100644 --- a/abspath.c +++ b/abspath.c @@ -18,7 +18,7 @@ const char *make_absolute_path(const char *path) { static char bufs[2][PATH_MAX + 1], *buf = bufs[0], *next_buf = bufs[1]; char cwd[1024] = ""; - int buf_index = 1, len; + int buf_index = 1; int depth = MAXDEPTH; char *last_elem = NULL; @@ -41,16 +41,16 @@ 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); + size_t len = strlen(buf); if (len + strlen(last_elem) + 2 > PATH_MAX) die ("Too long path name: '%s/%s'", buf, last_elem); @@ -61,9 +61,9 @@ const char *make_absolute_path(const char *path) } if (!lstat(buf, &st) && S_ISLNK(st.st_mode)) { - len = readlink(buf, next_buf, PATH_MAX); + ssize_t 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); }