* "resolve" the inode's streams anyway by allocating new entries. */
if (ctx->extract_flags & WIMLIB_EXTRACT_FLAG_FROM_PIPE)
force = true;
- ret = inode_resolve_ltes(inode, ctx->wim->lookup_table, force);
+ ret = inode_resolve_streams(inode, ctx->wim->lookup_table, force);
if (ret)
return ret;
for (unsigned i = 0; i <= inode->i_num_ads; i++) {
if ((found_lte->resource_location != RESOURCE_NONEXISTENT)
&& !(found_lte->flags & WIM_RESHDR_FLAG_METADATA)
- && (needed_lte = lookup_resource(lookup_table, found_lte->hash))
+ && (needed_lte = lookup_stream(lookup_table, found_lte->hash))
&& (needed_lte->out_refcnt))
{
tchar *tmpfile_name = NULL;
return true;
}
-static bool
-dentry_is_dot_or_dotdot(const struct wim_dentry *dentry)
-{
- const utf16lechar *file_name = dentry->file_name;
- return file_name != NULL &&
- file_name[0] == cpu_to_le16('.') &&
- (file_name[1] == cpu_to_le16('\0') ||
- (file_name[1] == cpu_to_le16('.') &&
- file_name[2] == cpu_to_le16('\0')));
-}
-
static int
dentry_mark_skipped(struct wim_dentry *dentry, void *_ignore)
{
if (!dentry_is_supported(dentry, &ctx->supported_features))
goto skip_dentry;
- if (dentry_is_dot_or_dotdot(dentry)) {
- /* WIM files shouldn't contain . or .. entries. But if they are
- * there, don't attempt to extract them. */
- WARNING("Skipping extraction of unexpected . or .. file "
- "\"%"TS"\"", dentry_full_path(dentry));
- goto skip_dentry;
- }
-
if (!ctx->ops->supports_case_sensitive_filenames)
{
struct wim_dentry *other;