]> wimlib.net Git - wimlib/blobdiff - src/iterate_dir.c
wimlib_iterate_dir_tree(): iterate in default case order
[wimlib] / src / iterate_dir.c
index 8e7f6cc3878d6c59c8229b20ee65c2dda795cc13..76bb2b3c2d9a28d8f1d841fe4115f02e18a18f99 100644 (file)
@@ -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: