| /* |
| * Copyright (C) the libgit2 contributors. All rights reserved. |
| * |
| * This file is part of libgit2, distributed under the GNU GPL v2 with |
| * a Linking Exception. For full terms see the included COPYING file. |
| */ |
| |
| #ifndef INCLUDE_sys_git_path_h__ |
| #define INCLUDE_sys_git_path_h__ |
| |
| #include "git2/common.h" |
| |
| GIT_BEGIN_DECL |
| |
| /** |
| * The kinds of git-specific files we know about. |
| * |
| * The order needs to stay the same to not break the `gitfiles` |
| * array in path.c |
| */ |
| typedef enum { |
| /** Check for the .gitignore file */ |
| GIT_PATH_GITFILE_GITIGNORE, |
| /** Check for the .gitmodules file */ |
| GIT_PATH_GITFILE_GITMODULES, |
| /** Check for the .gitattributes file */ |
| GIT_PATH_GITFILE_GITATTRIBUTES |
| } git_path_gitfile; |
| |
| /** |
| * The kinds of checks to perform according to which filesystem we are trying to |
| * protect. |
| */ |
| typedef enum { |
| /** Do both NTFS- and HFS-specific checks */ |
| GIT_PATH_FS_GENERIC, |
| /** Do NTFS-specific checks only */ |
| GIT_PATH_FS_NTFS, |
| /** Do HFS-specific checks only */ |
| GIT_PATH_FS_HFS |
| } git_path_fs; |
| |
| /** |
| * Check whether a path component corresponds to a .git$SUFFIX |
| * file. |
| * |
| * As some filesystems do special things to filenames when |
| * writing files to disk, you cannot always do a plain string |
| * comparison to verify whether a file name matches an expected |
| * path or not. This function can do the comparison for you, |
| * depending on the filesystem you're on. |
| * |
| * @param path the path component to check |
| * @param pathlen the length of `path` that is to be checked |
| * @param gitfile which file to check against |
| * @param fs which filesystem-specific checks to use |
| * @return 0 in case the file does not match, a positive value if |
| * it does; -1 in case of an error |
| */ |
| GIT_EXTERN(int) git_path_is_gitfile(const char *path, size_t pathlen, git_path_gitfile gitfile, git_path_fs fs); |
| |
| GIT_END_DECL |
| |
| #endif /* INCLUDE_sys_git_path */ |