---
 src/include/dump_dir.h |    1 +
 src/lib/dump_dir.c     |   10 ++++++++++
 2 files changed, 11 insertions(+)

diff --git a/src/include/dump_dir.h b/src/include/dump_dir.h
index f8d2931..1073949 100644
--- a/src/include/dump_dir.h
+++ b/src/include/dump_dir.h
@@ -70,6 +70,7 @@ void dd_save_text(struct dump_dir *dd, const char *name, 
const char *data);
 void dd_save_binary(struct dump_dir *dd, const char *name, const char *data, 
unsigned size);
 /* Returns 0 if directory is deleted or not found */
 int dd_delete(struct dump_dir *dd);
+int dd_rename(struct dump_dir *dd, const char *new_path);
 
 
 /* reported_to handling */
diff --git a/src/lib/dump_dir.c b/src/lib/dump_dir.c
index 908a2df..a61fccf 100644
--- a/src/lib/dump_dir.c
+++ b/src/lib/dump_dir.c
@@ -913,6 +913,16 @@ report_result_t *find_in_reported_to(struct dump_dir *dd, 
const char *prefix)
     return result;
 }
 
+int dd_rename(struct dump_dir *dd, const char *new_path)
+{
+    int res = rename(dd->dd_dirname, new_path);
+    if (res == 0)
+    {
+        free(dd->dd_dirname);
+        dd->dd_dirname = rm_trailing_slashes(new_path);
+    }
+    return res;
+}
 
 /* Utility function */
 
-- 
1.7.10.2

Reply via email to