X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=include%2Fwimlib%2Fpaths.h;h=e6c331776d3825755415d55406f7c704f3de09f7;hp=944fbf45b522d2281addf7ced0747cf15cc24f0c;hb=1234ed02b76f7a14e951b4355d23288be24c98e7;hpb=e8c3ca2d1d0cac3d64985b45a9f654d2029a7518 diff --git a/include/wimlib/paths.h b/include/wimlib/paths.h index 944fbf45..e6c33177 100644 --- a/include/wimlib/paths.h +++ b/include/wimlib/paths.h @@ -1,6 +1,7 @@ #ifndef _WIMLIB_PATHS_H #define _WIMLIB_PATHS_H +#include "wimlib/compiler.h" #include "wimlib/types.h" const tchar * @@ -13,12 +14,32 @@ extern const tchar * path_stream_name(const tchar *path); extern void -zap_backslashes(tchar *s); +do_canonicalize_path(const tchar *in, tchar *out); extern tchar * -canonicalize_wim_path(const tchar *wim_path); - -extern tchar * -canonicalize_fs_path(const tchar *fs_path); +canonicalize_wim_path(const tchar *wim_path) _malloc_attribute; + +/* 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_PATHS_H */