38 lines
1.2 KiB
C
38 lines
1.2 KiB
C
#ifndef WIN32_PATH_UTILS_H
|
|
#define WIN32_PATH_UTILS_H
|
|
|
|
int win32_has_dos_drive_prefix(const char *path);
|
|
#define has_dos_drive_prefix win32_has_dos_drive_prefix
|
|
|
|
int win32_skip_dos_drive_prefix(char **path);
|
|
#define skip_dos_drive_prefix win32_skip_dos_drive_prefix
|
|
#define is_dir_sep is_xplatform_dir_sep
|
|
static inline char *win32_find_last_dir_sep(const char *path)
|
|
{
|
|
char *ret = NULL;
|
|
for (; *path; ++path)
|
|
if (is_dir_sep(*path))
|
|
ret = (char *)path;
|
|
return ret;
|
|
}
|
|
#define find_last_dir_sep win32_find_last_dir_sep
|
|
static inline int win32_has_dir_sep(const char *path)
|
|
{
|
|
/*
|
|
* See how long the non-separator part of the given path is, and
|
|
* if and only if it covers the whole path (i.e. path[len] is NUL),
|
|
* there is no separator in the path---otherwise there is a separator.
|
|
*/
|
|
size_t len = strcspn(path, "/\\");
|
|
return !!path[len];
|
|
}
|
|
#define has_dir_sep(path) win32_has_dir_sep(path)
|
|
int win32_offset_1st_component(const char *path);
|
|
#define offset_1st_component win32_offset_1st_component
|
|
int win32_fspathcmp(const char *a, const char *b);
|
|
#define fspathcmp win32_fspathcmp
|
|
int win32_fspathncmp(const char *a, const char *b, size_t count);
|
|
#define fspathncmp win32_fspathncmp
|
|
|
|
#endif
|