]>
Commit | Line | Data |
---|---|---|
5b8f9e24 JS |
1 | #ifndef WIN32_PATH_UTILS_H |
2 | #define WIN32_PATH_UTILS_H | |
3 | ||
fc346cb2 JS |
4 | int win32_has_dos_drive_prefix(const char *path); |
5 | #define has_dos_drive_prefix win32_has_dos_drive_prefix | |
6 | ||
1cadad6f TB |
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 | |
05ac8582 AK |
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) | |
1cadad6f TB |
34 | int win32_offset_1st_component(const char *path); |
35 | #define offset_1st_component win32_offset_1st_component | |
5b8f9e24 JS |
36 | |
37 | #endif |