]> git.ipfire.org Git - thirdparty/git.git/blame - compat/win32/path-utils.h
Merge branch 'dl/test-must-fail-fixes-5'
[thirdparty/git.git] / compat / win32 / path-utils.h
CommitLineData
5b8f9e24
JS
1#ifndef WIN32_PATH_UTILS_H
2#define WIN32_PATH_UTILS_H
3
fc346cb2
JS
4int win32_has_dos_drive_prefix(const char *path);
5#define has_dos_drive_prefix win32_has_dos_drive_prefix
6
1cadad6f
TB
7int win32_skip_dos_drive_prefix(char **path);
8#define skip_dos_drive_prefix win32_skip_dos_drive_prefix
9static inline int win32_is_dir_sep(int c)
10{
11 return c == '/' || c == '\\';
12}
13#define is_dir_sep win32_is_dir_sep
14static inline char *win32_find_last_dir_sep(const char *path)
15{
16 char *ret = NULL;
17 for (; *path; ++path)
18 if (is_dir_sep(*path))
19 ret = (char *)path;
20 return ret;
21}
22#define find_last_dir_sep win32_find_last_dir_sep
05ac8582
AK
23static inline int win32_has_dir_sep(const char *path)
24{
25 /*
26 * See how long the non-separator part of the given path is, and
27 * if and only if it covers the whole path (i.e. path[len] is NUL),
28 * there is no separator in the path---otherwise there is a separator.
29 */
30 size_t len = strcspn(path, "/\\");
31 return !!path[len];
32}
33#define has_dir_sep(path) win32_has_dir_sep(path)
1cadad6f
TB
34int win32_offset_1st_component(const char *path);
35#define offset_1st_component win32_offset_1st_component
5b8f9e24
JS
36
37#endif