X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=sha1_file.c;h=1747276647c7551fd3fe7b1a20612341c0d00d6f;hb=ce11895d5cc5920e5ef01525aa8355357ee0820e;hp=74dc2aab26c0e9f87e9238686ad0a077b1570d4a;hpb=723c31fea2f1c4994de837bda9022ffa8b6de1bb;p=git.git diff --git a/sha1_file.c b/sha1_file.c index 74dc2aab..17472766 100644 --- a/sha1_file.c +++ b/sha1_file.c @@ -104,15 +104,13 @@ char *get_index_file(void) char *git_path(const char *fmt, ...) { - static char pathname[PATH_MAX]; + static char pathname[PATH_MAX], *ret; va_list args; int len; if (!git_dir) setup_git_env(); len = strlen(git_dir); - if (len == 1 && *git_dir == '.') - len = 0; if (len > PATH_MAX-100) return "pad-path"; memcpy(pathname, git_dir, len); @@ -121,7 +119,15 @@ char *git_path(const char *fmt, ...) va_start(args, fmt); vsnprintf(pathname + len, sizeof(pathname) - len, fmt, args); va_end(args); - return pathname; + ret = pathname; + + /* Clean it up */ + if (!memcmp(pathname, "./", 2)) { + ret += 2; + while (*ret == '/') + ret++; + } + return ret; } int get_sha1(const char *str, unsigned char *sha1) @@ -457,6 +463,7 @@ static void prepare_packed_git_one(char *objdir) p->next = packed_git; packed_git = p; } + closedir(dir); } void prepare_packed_git(void)