void* x_realloc(void* ptr, size_t size);
void x_setenv(const char* name, const char* value);
void x_unsetenv(const char* name);
-char* x_basename(const char* path);
char* x_dirname(const char* path);
const char* get_extension(const char* path);
char* remove_extension(const char* path);
}
}
-// Return the base name of a file - caller frees.
-char*
-x_basename(const char* path)
-{
- const char* p = strrchr(path, '/');
- if (p) {
- path = p + 1;
- }
-#ifdef _WIN32
- p = strrchr(path, '\\');
- if (p) {
- path = p + 1;
- }
-#endif
-
- return x_strdup(path);
-}
-
// Return the dir name of a file - caller frees.
char*
x_dirname(const char* path)
TEST_SUITE(legacy_util)
-TEST(x_basename)
-{
- CHECK_STR_EQ_FREE2("foo.c", x_basename("foo.c"));
- CHECK_STR_EQ_FREE2("foo.c", x_basename("dir1/dir2/foo.c"));
- CHECK_STR_EQ_FREE2("foo.c", x_basename("/dir/foo.c"));
- CHECK_STR_EQ_FREE2("", x_basename("dir1/dir2/"));
-}
-
TEST(x_dirname)
{
CHECK_STR_EQ_FREE2(".", x_dirname("foo.c"));