From: Joel Rosdahl Date: Thu, 15 Jul 2010 23:34:27 +0000 (+0200) Subject: Let basedir("foo") return "." X-Git-Tag: v3.1~180^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=032636e5a3a7b3d8a6ff516b85b8ea73a471ac90;p=thirdparty%2Fccache.git Let basedir("foo") return "." --- diff --git a/test/test_util.c b/test/test_util.c index ad5e77b99..dff063b37 100644 --- a/test/test_util.c +++ b/test/test_util.c @@ -33,4 +33,12 @@ TEST(basename) CHECK_STR_EQ_FREE2("", basename("dir1/dir2/")); } +TEST(dirname) +{ + CHECK_STR_EQ_FREE2(".", dirname("foo.c")); + CHECK_STR_EQ_FREE2("dir1/dir2", dirname("dir1/dir2/foo.c")); + CHECK_STR_EQ_FREE2("/dir", dirname("/dir/foo.c")); + CHECK_STR_EQ_FREE2("dir1/dir2", dirname("dir1/dir2/")); +} + TEST_SUITE_END diff --git a/util.c b/util.c index 6f7c781d3..447bfaa70 100644 --- a/util.c +++ b/util.c @@ -620,8 +620,11 @@ char *dirname(char *s) p = strrchr(s, '/'); if (p) { *p = 0; + return s; + } else { + free(s); + return x_strdup("."); } - return s; } /*