+/* Call this if the destination dir (which is assumed to be in curr_dir)
+ * does not yet exist and we can't create it due to being in dry-run
+ * mode. We'll fix dirs that can be relative to the non-existent dir. */
+static void fix_basis_dirs(void)
+{
+ char **dir, *new;
+ int len;
+
+ for (dir = basis_dir; *dir; dir++) {
+ if (**dir == '/')
+ continue;
+ len = curr_dir_len + 1 + strlen(*dir) + 1;
+ if (!(new = new_array(char, len)))
+ out_of_memory("fix_basis_dirs");
+ pathjoin(new, len, curr_dir, *dir);
+ clean_fname(new, 1);
+ *dir = new;
+ }
+}