Merge branch 'ah/fetch-reject-warning-grammofix'
[git] / compat / win32 / path-utils.h
1 #ifndef WIN32_PATH_UTILS_H
2 #define WIN32_PATH_UTILS_H
3
4 int win32_has_dos_drive_prefix(const char *path);
5 #define has_dos_drive_prefix win32_has_dos_drive_prefix
6
7 int win32_skip_dos_drive_prefix(char **path);
8 #define skip_dos_drive_prefix win32_skip_dos_drive_prefix
9 static inline int win32_is_dir_sep(int c)
10 {
11         return c == '/' || c == '\\';
12 }
13 #define is_dir_sep win32_is_dir_sep
14 static 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
23 static 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)
34 int win32_offset_1st_component(const char *path);
35 #define offset_1st_component win32_offset_1st_component
36
37 #endif