X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=include%2Fwimlib%2Futil.h;h=7b3e724a68ce677859eaa44ddf552cdf3ca1c6c0;hb=30cfd915ede8a2b24b693525ff835b2f03220cc9;hp=e077950394cce201a3b2ca4a8b8a73d29e0ab80b;hpb=f3ab01445d6184f7c5ffd0251667de7ef7437f9a;p=wimlib diff --git a/include/wimlib/util.h b/include/wimlib/util.h index e0779503..7b3e724a 100644 --- a/include/wimlib/util.h +++ b/include/wimlib/util.h @@ -75,7 +75,7 @@ wimlib_strdup(const char *str) _malloc_attribute; # define REALLOC wimlib_realloc # define CALLOC wimlib_calloc # define STRDUP wimlib_strdup -# define WSTRDUP wimlib_wcsdup +# define WCSDUP wimlib_wcsdup #else /* ENABLE_CUSTOM_MEMORY_ALLOCATOR */ # include # include @@ -84,9 +84,11 @@ wimlib_strdup(const char *str) _malloc_attribute; # define REALLOC realloc # define CALLOC calloc # define STRDUP strdup -# define WSTRDUP wcsdup +# define WCSDUP wcsdup #endif /* !ENABLE_CUSTOM_MEMORY_ALLOCATOR */ +extern void * +memdup(const void *mem, size_t size) _malloc_attribute; /* util.c */ extern void @@ -120,4 +122,27 @@ hash_u64(u64 n) return n * 0x9e37fffffffc0001ULL; } +/* is_any_path_separator() - characters treated as path separators in WIM path + * specifications and capture configuration files (the former will be translated + * to WIM_PATH_SEPARATOR; the latter will be translated to + * OS_PREFERRED_PATH_SEPARATOR) + * + * OS_PREFERRED_PATH_SEPARATOR - preferred (or only) path separator on the + * operating system. Used when constructing filesystem paths to extract or + * archive. + * + * WIM_PATH_SEPARATOR - character treated as path separator for WIM paths. + * Currently needs to be '/' on UNIX for the WIM mounting code to work properly. + */ + +#ifdef __WIN32__ +# define OS_PREFERRED_PATH_SEPARATOR L'\\' +# define is_any_path_separator(c) ((c) == L'/' || (c) == L'\\') +#else +# define OS_PREFERRED_PATH_SEPARATOR '/' +# define is_any_path_separator(c) ((c) == '/' || (c) == '\\') +#endif + +#define WIM_PATH_SEPARATOR WIMLIB_WIM_PATH_SEPARATOR + #endif /* _WIMLIB_UTIL_H */