]> git.proxmox.com Git - libgit2.git/commitdiff
Fileops: Added gitfo_isfile.
authorRomain Geissler <romain.geissler@gmail.com>
Fri, 3 Jun 2011 19:09:14 +0000 (21:09 +0200)
committerRomain Geissler <romain.geissler@gmail.com>
Fri, 3 Jun 2011 19:20:20 +0000 (21:20 +0200)
Conflicts:

src/fileops.c

src/fileops.c
src/fileops.h

index 409d1cb5a977149001d095c73fbad2fc14c8b191..11634c263ef3c32ca705b1d0407a12a75557d6e6 100644 (file)
@@ -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;
 }
index 1b70fc83692e2c5afd6ed96348b7d38f79901f75..aa225dca629bc9ff6b3735a1d47698c2dc18fc4b 100644 (file)
@@ -67,6 +67,7 @@ extern int gitfo_creat(const char *path, int mode);
 extern int gitfo_creat_force(const char *path, int mode);
 extern int gitfo_mktemp(char *path_out, const char *filename);
 extern int gitfo_isdir(const char *path);
+extern int gitfo_isfile(const char *path);
 extern int gitfo_mkdir_recurs(const char *path, int mode);
 extern int gitfo_mkdir_2file(const char *path);
 #define gitfo_close(fd) close(fd)