+static void repositoryDeleteR (struct dirs_info *di, struct dirs_entry *dst,
+ const char *base, char *src,
+ struct recordGroup *rGroup)
+{
+ char tmppath[256];
+ size_t src_len = strlen (src);
+
+ while (dst && !repComp (dst->path, src, src_len+1))
+ {
+ switch (dst->kind)
+ {
+ case dirs_file:
+ sprintf (tmppath, "%s%s", base, dst->path);
+ fileExtract (&dst->sysno, tmppath, rGroup, 1);
+
+ strcpy (tmppath, dst->path);
+ dst = dirs_read (di);
+ dirs_del (di, tmppath);
+ break;
+ case dirs_dir:
+ strcpy (tmppath, dst->path);
+ dst = dirs_read (di);
+ dirs_rmdir (di, tmppath);
+ break;
+ default:
+ dst = dirs_read (di);
+ }
+ }
+}
+