- lte = inode_unnamed_lte_resolved(inode);
- if (!lte) {
- ERROR("Reparse point has no reparse data!");
- return WIMLIB_ERR_INVALID_REPARSE_DATA;
+ if (!lte_override) {
+ lte = inode_unnamed_lte_resolved(inode);
+ if (!lte) {
+ ERROR("Reparse point has no reparse data!");
+ return WIMLIB_ERR_INVALID_REPARSE_DATA;
+ }
+ } else {
+ lte = lte_override;
* on failure a negated error code is returned rather than -1 with errno set. */
ssize_t
wim_inode_readlink(const struct wim_inode * restrict inode,
* on failure a negated error code is returned rather than -1 with errno set. */
ssize_t
wim_inode_readlink(const struct wim_inode * restrict inode,
- char * restrict buf, size_t bufsize)
+ char * restrict buf, size_t bufsize,
+ struct wim_lookup_table_entry *lte_override)
- if (wim_inode_get_reparse_data(inode, (u8*)&rpbuf_disk, &rpbuflen))
+ if (wim_inode_get_reparse_data(inode, (u8*)&rpbuf_disk, &rpbuflen,
+ lte_override))
* ways to provide Windows paths.)
*
* To change a UNIX relative symbolic link to Windows format, we only
* 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.
* 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.