* extract.c
*
* Support for extracting WIM files.
+ *
+ * This code does NOT contain any filesystem-specific features. In particular,
+ * security information (i.e. file permissions) and alternate data streams are
+ * ignored, except possibly to read an alternate data stream that contains
+ * symbolic link data.
*/
/*
+/*
+ * hardlink.c
+ *
+ * Code to deal with hard links in WIMs. Essentially, the WIM dentries are put
+ * into a hash table indexed by the hard link group ID field, then for each hard
+ * link group, a linked list is made to connect the dentries.
+ */
+
/*
* Copyright (C) 2012 Eric Biggers
*
+/*
+ * ntfs-apply.c
+ *
+ * Apply a WIM image to a NTFS volume, restoring everything we can, including
+ * security data and alternate data streams. There should be no loss of
+ * information.
+ */
+
/*
* Copyright (C) 2012 Eric Biggers
*
return ret;
}
+
+/*
+ * API entry point for applying a WIM image to a NTFS volume.
+ *
+ * Please note that this is a NTFS *volume* and not a directory. The intention
+ * is that the volume contain an empty filesystem, and the WIM image contain a
+ * full filesystem to be applied to the volume.
+ */
WIMLIBAPI int wimlib_apply_image_to_ntfs_volume(WIMStruct *w, int image,
const char *device, int flags)
{
return WIMLIB_ERR_INVALID_PARAM;
}
if (flags & (WIMLIB_EXTRACT_FLAG_SYMLINK | WIMLIB_EXTRACT_FLAG_HARDLINK)) {
- ERROR("Cannot specifcy symlink or hardlink flags when applying ");
+ ERROR("Cannot specify symlink or hardlink flags when applying ");
ERROR("directly to a NTFS volume");
return WIMLIB_ERR_INVALID_PARAM;
}
+/*
+ * symlink.c
+ *
+ * Code to read and set symbolic links in WIM files.
+ */
+
/*
* Copyright (C) 2012 Eric Biggers
*
translated_target += 4;
link_target_len -= 4;
/* There's a drive letter, so just leave the backslashes since
- * it won't go anyhwere on UNIX anyway... */
+ * it won't go anyhwere on UNIX anyway...
+ *
+ * XXX
+ * NTFS-3g tries to re-map these links to actually point to
+ * something, so maybe we could do something like that here
+ * XXX*/
} else {
for (size_t i = 0; i < link_target_len; i++)
if (translated_target[i] == '\\')