X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=src%2Freparse.c;h=3b36548c3c63951c858c37970a8dde011a70c13d;hp=465900178df8dac4f12488874f6c634fc95d184b;hb=5a08c61d7a83a846813863fcbec4b7d5098a2abf;hpb=2412c8ed80e1283657c97d156061beac04849eb5 diff --git a/src/reparse.c b/src/reparse.c index 46590017..3b36548c 100644 --- a/src/reparse.c +++ b/src/reparse.c @@ -422,8 +422,8 @@ wim_inode_set_symlink(struct wim_inode *inode, * ways to provide Windows paths.) * * To change a UNIX relative symbolic link to Windows format, we only - * need to translate it to UTF-16LE and replace backslashes with forward - * slashes. We do not make any attempt to handle filename character + * need to translate it to UTF-16LE and replace forward slashes with + * backslashes. We do not make any attempt to handle filename character * problems, such as a link target that itself contains backslashes on * UNIX. Then, for these relative links, we set the reparse header * @flags field to SYMBOLIC_LINK_RELATIVE. @@ -516,12 +516,13 @@ unix_get_ino_and_dev(const char *path, u64 *ino_ret, u64 *dev_ret) #endif /* !defined(__WIN32__) */ +/* is_rp_path_separator() - characters treated as path separators in absolute + * symbolic link targets */ + #ifdef __WIN32__ -# define RP_PATH_SEPARATOR L'\\' # define is_rp_path_separator(c) ((c) == L'\\' || (c) == L'/') # define os_get_ino_and_dev win32_get_file_and_vol_ids #else -# define RP_PATH_SEPARATOR '/' # define is_rp_path_separator(c) ((c) == '/') # define os_get_ino_and_dev unix_get_ino_and_dev #endif @@ -563,7 +564,7 @@ capture_fixup_absolute_symlink(tchar *dest, /* Link points inside capture root. Return abbreviated * path. */ if (*p == T('\0')) - *(p - 1) = RP_PATH_SEPARATOR; + *(p - 1) = OS_PREFERRED_PATH_SEPARATOR; while (p - 1 >= dest && is_rp_path_separator(*(p - 1))) p--; #ifdef __WIN32__