commit 6f16b93546e708d991137b58be3bdec220b55165
Author: Arkadiusz Miśkiewicz <[email protected]>
Date:   Fri Jul 8 10:47:58 2016 +0200

    - rel 3; make xfer:clobber work for regular files only (so no need for it 
if you want to write to /dev/null for example)

 lftp-bug-254.patch | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 lftp.spec          |  4 +++-
 2 files changed, 56 insertions(+), 1 deletion(-)
---
diff --git a/lftp.spec b/lftp.spec
index 84251e7..f0b5a0f 100644
--- a/lftp.spec
+++ b/lftp.spec
@@ -24,7 +24,7 @@ Summary(pt_BR.UTF-8): Sofisticado programa de transferência 
de arquivos (client
 Summary(zh_CN.UTF-8):  lftp 客户端程序
 Name:          lftp
 Version:       4.7.2
-Release:       2
+Release:       3
 License:       GPL v3+
 Group:         Applications/Networking
 Source0:       http://lftp.yar.ru/ftp/%{name}-%{version}.tar.xz
@@ -41,6 +41,7 @@ Patch2:               aliases.patch
 Patch3:                %{name}-pl.po-update.patch
 Patch4:                %{name}-am.patch
 Patch5:                lftp-bug-250.patch
+Patch6:                lftp-bug-254.patch
 URL:           http://lftp.yar.ru/
 BuildRequires: autoconf >= 2.60
 BuildRequires: automake
@@ -99,6 +100,7 @@ o arquivo FEATURES para uma lista mais detalhada.
 %patch3 -p1
 %patch4 -p1
 %patch5 -p1
+%patch6 -p1
 
 %{__rm} po/stamp-po
 
diff --git a/lftp-bug-254.patch b/lftp-bug-254.patch
new file mode 100644
index 0000000..772f47a
--- /dev/null
+++ b/lftp-bug-254.patch
@@ -0,0 +1,53 @@
+From 389ea5d8063b01d3bdbed117e7da7f80e312bc88 Mon Sep 17 00:00:00 2001
+From: "Alexander V. Lukyanov" <[email protected]>
+Date: Fri, 8 Jul 2016 10:59:48 +0300
+Subject: [PATCH] GetJob: apply noclobber setting to plain files only.
+
+---
+ NEWS          |  1 +
+ src/GetJob.cc | 27 ++++++++++++++-------------
+ 2 files changed, 15 insertions(+), 13 deletions(-)
+
+diff --git a/src/GetJob.cc b/src/GetJob.cc
+index 7afba0a..683b666 100644
+--- a/src/GetJob.cc
++++ b/src/GetJob.cc
+@@ -65,24 +65,25 @@ FileCopyPeer *GetJob::SrcLocal(const char *src)
+ FileCopyPeer *GetJob::DstLocal(const char *dst)
+ {
+    bool clobber=(cont || QueryBool("xfer:clobber",0));
+-   int 
flags=O_WRONLY|O_CREAT|(truncate_target_first?O_TRUNC:0)|(clobber?0:O_EXCL);
++   int flags=O_WRONLY|O_CREAT|(truncate_target_first?O_TRUNC:0);
+    dst=expand_home_relative(dst);
+    const char *f=(cwd && dst[0]!='/') ? dir_file(cwd,dst) : dst;
+-   if(truncate_target_first && QueryBool("xfer:make-backup",0))
++
++   struct stat st;
++   if(stat(f,&st)!=-1)
+    {
+-      /* rename old file if exists and size>0 */
+-      struct stat st;
+-      if(stat(f,&st)!=-1)
++      if(st.st_size>0 && S_ISREG(st.st_mode))
+       {
+-       if(st.st_size>0 && S_ISREG(st.st_mode))
++       if(!clobber)
++       {
++          eprintf(_("%s: %s: file already exists and xfer:clobber is 
unset\n"),op,dst);
++          errors++;
++          count++;
++          return 0;
++       }
++       if(truncate_target_first && QueryBool("xfer:make-backup",0))
+        {
+-          if(!clobber)
+-          {
+-             eprintf(_("%s: %s: file already exists and xfer:clobber is 
unset\n"),op,dst);
+-             errors++;
+-             count++;
+-             return 0;
+-          }
++          /* rename old file if exists and size>0 */
+           xstring_ca suffix(xstrftime(Query("xfer:backup-suffix",0),now));
+           backup_file.set(f).append(suffix);
+           if(rename(f,backup_file)!=0)
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/lftp.git/commitdiff/6f16b93546e708d991137b58be3bdec220b55165

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to