diff options
| author | Carlos Martín Nieto <cmn@dwim.me> | 2018-05-22 13:58:24 +0200 |
|---|---|---|
| committer | Carlos Martín Nieto <cmn@dwim.me> | 2018-05-22 13:58:24 +0200 |
| commit | 490cbaa97b6476d7103b82a26ef2c7c951c8ec5b (patch) | |
| tree | e7ec7418bc44189c824bcdf316017480537f2baf | |
| parent | 177dcfc702bd268a02db1d75c20e70cd3529a3b2 (diff) | |
| download | libgit2-490cbaa97b6476d7103b82a26ef2c7c951c8ec5b.tar.gz | |
path: expose dotgit detection functions per filesystem
These will be used by the checkout code to detect them for the particular
filesystem they're on.
| -rw-r--r-- | src/path.c | 45 | ||||
| -rw-r--r-- | src/path.h | 42 |
2 files changed, 84 insertions, 3 deletions
diff --git a/src/path.c b/src/path.c index cc4975c07..f8231e505 100644 --- a/src/path.c +++ b/src/path.c @@ -1850,17 +1850,56 @@ static int verify_dotgit_generic(const char *name, const char *dotgit_name, cons return verify_dotgit_hfs_generic(name, strlen(name), dotgit_name, strlen(dotgit_name)); } +int git_path_is_ntfs_dotgit_modules(const char *name) +{ + return !verify_dotgit_ntfs_generic(name, "gitmodules", "gi7eba"); +} + +int git_path_is_hfs_dotgit_modules(const char *name) +{ + return !verify_dotgit_hfs_generic(name, strlen(name), "gitmodules", CONST_STRLEN("gitmodules")); +} + int git_path_is_dotgit_modules(const char *name) { - return !verify_dotgit_generic(name, "gitmodules", "gi7eba"); + if (git_path_is_hfs_dotgit_modules(name)) + return 1; + + return git_path_is_ntfs_dotgit_modules(name); +} + +int git_path_is_ntfs_dotgit_ignore(const char *name) +{ + return !verify_dotgit_ntfs_generic(name, "gitignore", "gi250a"); +} + +int git_path_is_hfs_dotgit_ignore(const char *name) +{ + return !verify_dotgit_hfs_generic(name, strlen(name), "gitignore", CONST_STRLEN("gitignore")); } int git_path_is_dotgit_ignore(const char *name) { - return !verify_dotgit_generic(name, "gitignore", "gi250a"); + if (git_path_is_hfs_dotgit_ignore(name)) + return 1; + + return git_path_is_ntfs_dotgit_ignore(name); +} + +int git_path_is_hfs_dotgit_attributes(const char *name) +{ + return !verify_dotgit_hfs_generic(name, strlen(name), "gitattributes", CONST_STRLEN("gitattributes")); +} + +int git_path_is_ntfs_dotgit_attributes(const char *name) +{ + return !verify_dotgit_ntfs_generic(name, "gitattributes", "gi7d29"); } int git_path_is_dotgit_attributes(const char *name) { - return !verify_dotgit_generic(name, "gitattributes", "gi7d29"); + if (git_path_is_hfs_dotgit_attributes(name)) + return 1; + + return git_path_is_ntfs_dotgit_attributes(name); } diff --git a/src/path.h b/src/path.h index b0c3975ad..e0812ec29 100644 --- a/src/path.h +++ b/src/path.h @@ -652,6 +652,20 @@ int git_path_normalize_slashes(git_buf *out, const char *path); extern int git_path_is_dotgit_modules(const char *name); /** + * Check whether a path component corresponds to a .gitmodules file in NTFS + * + * @param name the path component to check + */ +extern int git_path_is_ntfs_dotgit_modules(const char *name); + +/** + * Check whether a path component corresponds to a .gitmodules file in HFS+ + * + * @param name the path component to check + */ +extern int git_path_is_hfs_dotgit_modules(const char *name); + +/** * Check whether a path component corresponds to a .gitignore file * * @param name the path component to check @@ -659,10 +673,38 @@ extern int git_path_is_dotgit_modules(const char *name); extern int git_path_is_dotgit_ignore(const char *name); /** + * Check whether a path component corresponds to a .gitignore file in NTFS + * + * @param name the path component to check + */ +extern int git_path_is_ntfs_dotgit_ignore(const char *name); + +/** + * Check whether a path component corresponds to a .gitignore file in HFS+ + * + * @param name the path component to check + */ +extern int git_path_is_hfs_dotgit_ignore(const char *name); + +/** * Check whether a path component corresponds to a .gitignore file * * @param name the path component to check */ extern int git_path_is_dotgit_attributes(const char *name); +/** + * Check whether a path component corresponds to a .gitattributes file in NTFS + * + * @param name the path component to check + */ +extern int git_path_is_ntfs_dotgit_attributes(const char *name); + +/** + * Check whether a path component corresponds to a .gitattributes file in HFS+ + * + * @param name the path component to check + */ +extern int git_path_is_hfs_dotgit_attributes(const char *name); + #endif |
