path.c: Added is_dir function
This commit is contained in:
parent
dd0f1ae393
commit
fca8bba289
3 changed files with 21 additions and 0 deletions
11
src/path.c
11
src/path.c
|
|
@ -14,6 +14,8 @@
|
|||
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include "debug.h"
|
||||
#include "strbuf.h"
|
||||
|
|
@ -56,6 +58,15 @@ int is_abspath(const char *path) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
int is_dir(const char *path) {
|
||||
|
||||
struct stat st;
|
||||
|
||||
if (path && stat(path, &st) >= 0)
|
||||
return S_ISDIR(st.st_mode);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static char* expand_home() {
|
||||
|
||||
char *home = getenv("HOME");
|
||||
|
|
|
|||
|
|
@ -16,6 +16,8 @@
|
|||
|
||||
int is_abspath(const char *path);
|
||||
|
||||
int is_dir(const char *path);
|
||||
|
||||
char* path_normalize(const char *base, const char *name, unsigned char dir);
|
||||
|
||||
#endif /* __PATH_H */
|
||||
|
|
|
|||
|
|
@ -51,6 +51,13 @@ void test_isabspath() {
|
|||
assert(is_abspath("/ab/..xy/file") ==1);
|
||||
}
|
||||
|
||||
void test_isdir() {
|
||||
|
||||
assert(is_dir("t_path.c") == 0);
|
||||
assert(is_dir("../src") == 1);
|
||||
assert(is_dir("/") == 1);
|
||||
}
|
||||
|
||||
void test_basename() {
|
||||
|
||||
int i;
|
||||
|
|
@ -98,6 +105,7 @@ void test_dirname() {
|
|||
int main(int argc, char *argv[]) {
|
||||
|
||||
test_isabspath();
|
||||
test_isdir();
|
||||
test_normalize();
|
||||
test_basename();
|
||||
test_dirname();
|
||||
|
|
|
|||
Reference in a new issue