浏览代码

Bug 2122: Download edited/opened files with up-to-date timestamps

https://winscp.net/eng/docs/history

Source commit: f07219bcd56e7013217514f71e406a1c369ea4c4
Martin Prikryl 3 年之前
父节点
当前提交
566cef4a69
共有 1 个文件被更改,包括 18 次插入2 次删除
  1. 18 2
      source/forms/CustomScpExplorer.cpp

+ 18 - 2
source/forms/CustomScpExplorer.cpp

@@ -3813,13 +3813,29 @@ void __fastcall TCustomScpExplorerForm::ExecuteFile(TOperationSide Side,
           FullFileName = ListFileName;
         }
 
+        TObject * Object = FileList->Objects[i];
+
         TFileMasks::TParams MaskParams;
         MaskParams.Size = DView->ItemFileSize(Item);
         TDateTimePrecision Precision;
         MaskParams.Modification = DView->ItemFileTime(Item, Precision);
 
-        ExecuteFile(Side, ExecuteFileBy, ExternalEditor, FullFileName,
-          FileList->Objects[i], MaskParams);
+        std::unique_ptr<TRemoteFile> FileOwner;
+        if (!IsSideLocalBrowser(Side))
+        {
+          TRemoteFile * File = NULL;
+          Terminal->FileExists(FullFileName, &File);
+          if (File != NULL)
+          {
+            File->FullFileName = FullFileName;
+            Object = File;
+            FileOwner.reset(File);
+            MaskParams.Size = File->Size;
+            MaskParams.Modification = File->Modification;
+          }
+        }
+
+        ExecuteFile(Side, ExecuteFileBy, ExternalEditor, FullFileName, Object, MaskParams);
       }
     }
   }