summaryrefslogtreecommitdiff
path: root/Fix-issue-of-moving-files-by-ar-or-br.patch
diff options
context:
space:
mode:
Diffstat (limited to 'Fix-issue-of-moving-files-by-ar-or-br.patch')
-rw-r--r--Fix-issue-of-moving-files-by-ar-or-br.patch28
1 files changed, 28 insertions, 0 deletions
diff --git a/Fix-issue-of-moving-files-by-ar-or-br.patch b/Fix-issue-of-moving-files-by-ar-or-br.patch
new file mode 100644
index 0000000..a73cb5b
--- /dev/null
+++ b/Fix-issue-of-moving-files-by-ar-or-br.patch
@@ -0,0 +1,28 @@
+From 665f6beeeb98bac769e6a072b88339ecad5c23e4 Mon Sep 17 00:00:00 2001
+From: yixiangzhike <yixiangzhike007@163.com>
+Date: Wed, 17 Aug 2022 16:44:03 +0800
+Subject: [PATCH] fix issue of moving files by ar or br
+
+When eu-ar uses the combination of br or ar parameters to move the exist files,
+it forgets to add the files to the new linked list. As a result, the files are lost.
+---
+ src/ar.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/ar.c b/src/ar.c
+index 072ca2e..e824b59 100644
+--- a/src/ar.c
++++ b/src/ar.c
+@@ -1341,7 +1341,8 @@ do_oper_insert (int oper, const char *arfname, char **argv, int argc,
+
+ struct armem *last_added = after_memberelem;
+ for (int cnt = 0; cnt < argc; ++cnt)
+- if (oper != oper_replace || found[cnt]->old_off == -1)
++ if (((oper == oper_replace) && (ipos != ipos_none) && (found[cnt]->old_off != -1)) || \
++ oper != oper_replace || found[cnt]->old_off == -1)
+ {
+ if (last_added == NULL)
+ {
+--
+2.27.0
+