]> wimlib.net Git - wimlib/blobdiff - src/iterate_dir.c
wimlib_iterate_dir_tree(): iterate in default case order
[wimlib] / src / iterate_dir.c
index fb2c1b36507205631d657e0edfcc57af97072898..76bb2b3c2d9a28d8f1d841fe4115f02e18a18f99 100644 (file)
@@ -99,7 +99,7 @@ init_wimlib_dentry(struct wimlib_dir_entry *wdentry, struct wim_dentry *dentry,
        }
 
        for (unsigned i = 0; i < inode->i_num_ads; i++) {
-               if (!ads_entry_is_named_stream(&inode->i_ads_entries[i]))
+               if (!inode->i_ads_entries[i].stream_name_nbytes)
                        continue;
                lte = inode_stream_lte(inode, i + 1, wim->lookup_table);
                wdentry->num_named_streams++;
@@ -170,12 +170,22 @@ do_iterate_dir_tree(WIMStruct *wim,
                struct wim_dentry *child;
 
                ret = 0;
-               for_dentry_child(child, dentry) {
-                       ret = do_iterate_dir_tree(wim, child,
-                                                 flags & ~WIMLIB_ITERATE_DIR_TREE_FLAG_CHILDREN,
-                                                 cb, user_ctx);
-                       if (ret)
-                               break;
+               if (default_ignore_case) {
+                       for_dentry_child_case_insensitive(child, dentry) {
+                               ret = do_iterate_dir_tree(wim, child,
+                                                         flags & ~WIMLIB_ITERATE_DIR_TREE_FLAG_CHILDREN,
+                                                         cb, user_ctx);
+                               if (ret)
+                                       break;
+                       }
+               } else {
+                       for_dentry_child(child, dentry) {
+                               ret = do_iterate_dir_tree(wim, child,
+                                                         flags & ~WIMLIB_ITERATE_DIR_TREE_FLAG_CHILDREN,
+                                                         cb, user_ctx);
+                               if (ret)
+                                       break;
+                       }
                }
        }
 out_free_wimlib_dentry: