diff options
Diffstat (limited to 'src/fileops.c')
| -rw-r--r-- | src/fileops.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/fileops.c b/src/fileops.c index 409d1cb5a..11634c263 100644 --- a/src/fileops.c +++ b/src/fileops.c @@ -131,7 +131,26 @@ int gitfo_isdir(const char *path) return git__throw(GIT_ENOTFOUND, "%s does not exist", path); if (!S_ISDIR(st.st_mode)) - return git__throw(GIT_ENOTFOUND, "%s is a file", path); + return git__throw(GIT_ENOTFOUND, "%s is not a directory", path); + + return GIT_SUCCESS; +} + +int gitfo_isfile(const char *path) +{ + struct stat st; + int stat_error; + + if (!path) + return git__throw(GIT_ENOTFOUND, "No path given to gitfo_isfile"); + + stat_error = gitfo_stat(path, &st); + + if (stat_error < GIT_SUCCESS) + return git__throw(GIT_ENOTFOUND, "%s does not exist", path); + + if (!S_ISREG(st.st_mode)) + return git__throw(GIT_ENOTFOUND, "%s is not a file", path); return GIT_SUCCESS; } |
