* 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.
#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
/* 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__