[PATCH] Fix make_absolute_path() for parameters without a slash
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Mar 2, 2008, 07:40 UTC
- Message-ID
- <alpine.LSU.1.00.0803020739530.22527@racer.site>
- In-Reply-To
- <alpine.LSU.1.00.0803020730170.22527@racer.site>
When passing "xyz" to make_absolute_path(), make_absolute_path() erroneously tried to chdir("xyz"), and then append "/xyz". Instead, skip the chdir() completely when no slash was found.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> ---
On Sun, 2 Mar 2008, Johannes Schindelin wrote:
> Will stop posting patches for today, and fix tomorrow.
It was just too embarassing.
path.c | 4 +++- t/t0000-basic.sh | 2 ++ 2 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/path.c b/path.c index 4260952..af27161 100644 --- a/path.c +++ b/path.c @@ -311,8 +311,10 @@ const char *make_absolute_path(const char *path) if (last_slash) { *last_slash = '\0'; last_elem = xstrdup(last_slash + 1); - } else + } else { last_elem = xstrdup(buf); + *buf = '\0'; + } } if (*buf) { diff --git a/t/t0000-basic.sh b/t/t0000-basic.sh index 92de088..27b54cb 100755 --- a/t/t0000-basic.sh +++ b/t/t0000-basic.sh @@ -304,6 +304,8 @@ test_expect_success 'absolute path works as expected' ' test "$dir" = "$(test-absolute-path $dir2)" && file="$dir"/index && test "$file" = "$(test-absolute-path $dir2/index)" && + basename=blub && + test "$dir/$basename" = $(cd .git && test-absolute-path $basename) && ln -s ../first/file .git/syml && sym="$(cd first; pwd -P)"/file && test "$sym" = "$(test-absolute-path $dir2/syml)"
-- 1.5.4.3.446.gbe8932