]> git.pld-linux.org Git - packages/lftp.git/commitdiff
- up to 4.6.5; allow edit command to create new files auto/th/lftp-4.6.5-1
authorArkadiusz Miśkiewicz <arekm@maven.pl>
Sun, 13 Dec 2015 13:04:48 +0000 (14:04 +0100)
committerArkadiusz Miśkiewicz <arekm@maven.pl>
Sun, 13 Dec 2015 13:04:48 +0000 (14:04 +0100)
lftp-edit-new.patch [new file with mode: 0644]
lftp.spec

diff --git a/lftp-edit-new.patch b/lftp-edit-new.patch
new file mode 100644 (file)
index 0000000..164ba6c
--- /dev/null
@@ -0,0 +1,99 @@
+From 9dbf23ac89031129bdf39d8dd461c83617e0a2cb Mon Sep 17 00:00:00 2001
+From: "Alexander V. Lukyanov" <lavv17f@gmail.com>
+Date: Thu, 5 Nov 2015 16:14:38 +0300
+Subject: [PATCH] edit: allow creating a new file
+
+---
+ src/EditJob.cc | 13 ++++---------
+ src/EditJob.h  |  2 +-
+ 2 files changed, 5 insertions(+), 10 deletions(-)
+
+diff --git a/src/EditJob.cc b/src/EditJob.cc
+index 0ab731d..5946c72 100644
+--- a/src/EditJob.cc
++++ b/src/EditJob.cc
+@@ -33,11 +33,11 @@ void EditJob::Finish(int e)
+       unlink(temp_file);
+ }
+-int EditJob::HandleJob(JobRef<Job>& j)
++int EditJob::HandleJob(JobRef<Job>& j,bool fail)
+ {
+    if(!j->Done())
+       return STALL;
+-   if(j->ExitCode())
++   if(j->ExitCode() && fail)
+       Finish(1);
+    RemoveWaiting(j);
+    return MOVED;
+@@ -82,18 +82,13 @@ int EditJob::Do()
+       return MOVED;
+    }
+    if(get) {
+-      if(!HandleJob(get))
++      if(!HandleJob(get,false))
+        return m;
+       if(done)
+        return MOVED;
+       struct stat st;
+       int res=stat(temp_file,&st);
+-      if(res<0) {
+-       perror(temp_file);
+-       Finish(1);
+-       return MOVED;
+-      }
+-      mtime=st.st_mtime;
++      mtime=(res>=0?st.st_mtime:NO_DATE);
+       xstring cmd("${EDITOR:-vi} ");
+       cmd.append(shell_encode(temp_file));
+       editor=new SysCmdJob(cmd);
+diff --git a/src/EditJob.h b/src/EditJob.h
+index d527965..c70b250 100644
+--- a/src/EditJob.h
++++ b/src/EditJob.h
+@@ -34,7 +34,7 @@ class EditJob : public SessionJob
+    int exit_code;
+    bool done;
+-   int HandleJob(JobRef<Job>& j);
++   int HandleJob(JobRef<Job>& j, bool fail=true);
+    void Finish(int code);
+ public:
+From 7840bb4716f2365f8de9067b5482144ca3522e16 Mon Sep 17 00:00:00 2001
+From: "Alexander V. Lukyanov" <lavv17f@gmail.com>
+Date: Thu, 5 Nov 2015 16:15:13 +0300
+Subject: [PATCH] get: rename the backup file back if retrieval fails.
+
+---
+ src/GetJob.cc | 16 +++++++++++-----
+ 1 file changed, 11 insertions(+), 5 deletions(-)
+
+diff --git a/src/GetJob.cc b/src/GetJob.cc
+index 4419255..0ff8999 100644
+--- a/src/GetJob.cc
++++ b/src/GetJob.cc
+@@ -42,12 +42,18 @@ int   GetJob::Do()
+ {
+    int m=STALL;
+-   if(cp && cp->Done() && !cp->Error())
++   if(cp && cp->Done())
+    {
+-      // now we can delete old file, since there is new one
+-      RemoveBackupFile();
+-      if(file_mode!=NO_MODE && local)
+-       chmod(local->full_name,file_mode);
++      if(cp->Error()) {
++       // in case of errors, move the backup to original location
++       if(local && backup_file)
++          rename(backup_file,local->full_name);
++      } else {
++       // now we can delete the old file, since there is a new one
++       RemoveBackupFile();
++       if(file_mode!=NO_MODE && local)
++          chmod(local->full_name,file_mode);
++      }
+    }
+    if(super::Do()==MOVED)
+       m=MOVED;
index 2b2c341d4d8d28ed37b66efe85beda09ecd72018..89504a24eb2c1d1f78022ea4173d1ea1b2b025eb 100644 (file)
--- a/lftp.spec
+++ b/lftp.spec
@@ -23,12 +23,12 @@ Summary(pl.UTF-8):  Zaawansowany klient FTP/HTTP
 Summary(pt_BR.UTF-8):  Sofisticado programa de transferência de arquivos (cliente FTP/HTTP)
 Summary(zh_CN.UTF-8):  lftp 客户端程序
 Name:          lftp
-Version:       4.6.4
+Version:       4.6.5
 Release:       1
 License:       GPL v3+
 Group:         Applications/Networking
 Source0:       http://lftp.yar.ru/ftp/%{name}-%{version}.tar.xz
-# Source0-md5: 84987c1095df84bfb5ac9c95c6aba6be
+# Source0-md5: 39507c331a987e0534acf75a4c3824a0
 Source1:       http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-man-pages.tar.bz2
 # Source1-md5: cdad8fb5342eebd9916eccefc98a855b
 Source2:       %{name}.desktop
@@ -40,6 +40,7 @@ Patch2:               aliases.patch
 # when updated attach at https://github.com/lavv17/lftp/issues
 Patch3:                %{name}-pl.po-update.patch
 Patch4:                %{name}-am.patch
+Patch5:                lftp-edit-new.patch
 URL:           http://lftp.yar.ru/
 BuildRequires: autoconf >= 2.60
 BuildRequires: automake
@@ -97,6 +98,7 @@ o arquivo FEATURES para uma lista mais detalhada.
 %patch2 -p1
 #%patch3 -p1
 %patch4 -p1
+%patch5 -p1
 
 %{__rm} po/stamp-po
 
This page took 0.086684 seconds and 4 git commands to generate.