return 0;
}
+static int
+do_calculate_dentry_full_path(struct wim_dentry *dentry, void *_ignore)
+{
+ return calculate_dentry_full_path(dentry);
+}
+
+int
+calculate_dentry_tree_full_paths(struct wim_dentry *root)
+{
+ return for_dentry_in_tree(root, do_calculate_dentry_full_path, NULL);
+}
+
tchar *
dentry_full_path(struct wim_dentry *dentry)
{
int
print_dentry_full_path(struct wim_dentry *dentry, void *_ignore)
{
- tchar *full_path = dentry_full_path(dentry);
- if (!full_path)
- return WIMLIB_ERR_NOMEM;
- tprintf(T("%"TS"\n"), full_path);
- FREE(full_path);
- dentry->_full_path = 0;
+ int ret = calculate_dentry_full_path(dentry);
+ if (ret)
+ return ret;
+ tprintf(T("%"TS"\n"), dentry->_full_path);
+ FREE(dentry->_full_path);
+ dentry->_full_path = NULL;
dentry->full_path_nbytes = 0;
return 0;
}