Signed-off-by: Nikola Pajkovsky <npajkovs(a)redhat.com>
---
src/include/report/dump_dir.h | 1 +
src/lib/dump_dir.c | 32 ++++++++++++++++++++++++++++++++
2 files changed, 33 insertions(+), 0 deletions(-)
diff --git a/src/include/report/dump_dir.h b/src/include/report/dump_dir.h
index 849525e..a41b700 100644
--- a/src/include/report/dump_dir.h
+++ b/src/include/report/dump_dir.h
@@ -60,6 +60,7 @@ void dd_save_binary(struct dump_dir *dd, const char *name, const char
*data, uns
void dd_delete(struct dump_dir *dd);
char **dd_get_unknown_files(struct dump_dir *dd, const char **known_files);
void dd_add_attachments_name(struct dump_dir *dd, const char *name);
+void dd_rm_attachments_name(struct dump_dir *dd, const char *name);
void delete_dump_dir(const char *dd_dir);
diff --git a/src/lib/dump_dir.c b/src/lib/dump_dir.c
index 7f62be3..5537002 100644
--- a/src/lib/dump_dir.c
+++ b/src/lib/dump_dir.c
@@ -578,6 +578,38 @@ void dd_add_attachments_name(struct dump_dir *dd, const char *name)
free(add);
}
+/*
+ * todo: add flags OPEN, CLOSE to be able run OPEN | CLOSE
+ * and safe a few boring commands
+ */
+void dd_rm_attachments_name(struct dump_dir *dd, const char *name)
+{
+ if (!dd->locked)
+ error_msg_and_die("dump_dir is not opened"); /* bug */
+
+ char *attach_list = dd_load_text_ext(dd, "attachments",
+ DD_LOAD_TEXT_RETURN_NULL_ON_FAILURE);
+ if (!attach_list)
+ return;
+
+ struct strbuf *list = strbuf_new();
+ char *token = strtok(attach_list, "\n");
+ while (token)
+ {
+ if (strcmp(name, token) == 0)
+ {
+ token = strtok(NULL, "\n");
+ continue;
+ }
+
+ strbuf_append_strf(list, "%s\n", token);
+ token = strtok(NULL, "\n");
+ }
+
+ dd_save_text(dd, "attachments", list->buf);
+ strbuf_free(list);
+ free(attach_list);
+}
/* Utility function */
void delete_dump_dir(const char *dd_dir)
{
--
1.7.3.3.489.g44430