소스 검색

Bug 1406: Log that user aborted the script in XML log (reimplementation)

https://winscp.net/tracker/1406

Source commit: 25596a5ff6dd9736b16417ce356efc6811cdc115
Martin Prikryl 9 년 전
부모
커밋
0dcbfc4b66
1개의 변경된 파일12개의 추가작업 그리고 11개의 파일을 삭제
  1. 12 11
      source/windows/ConsoleRunner.cpp

+ 12 - 11
source/windows/ConsoleRunner.cpp

@@ -1041,7 +1041,7 @@ protected:
   inline void __fastcall Print(const UnicodeString & Str, bool FromBeginning = false);
   inline void __fastcall PrintLine(const UnicodeString & Str);
   void __fastcall UpdateTitle();
-  inline void __fastcall NotifyAbort();
+  inline bool __fastcall NotifyAbort();
   inline bool __fastcall Aborted(bool AllowCompleteAbort = true);
   void __fastcall MasterPasswordPrompt();
   void __fastcall DoShowException(TTerminal * Terminal, Exception * E);
@@ -1184,18 +1184,14 @@ void __fastcall TConsoleRunner::PrintMessage(const UnicodeString & Str)
   }
 }
 //---------------------------------------------------------------------------
-void __fastcall TConsoleRunner::NotifyAbort()
+bool __fastcall TConsoleRunner::NotifyAbort()
 {
-  if (FBatchScript)
+  bool Result = FBatchScript;
+  if (Result)
   {
     FAborted = true;
-
-    if (FScript->Terminal != NULL)
-    {
-      std::unique_ptr<TStringList> Failure(TextToStringList(LoadStr(USER_TERMINATED)));
-      FScript->Terminal->ActionLog->AddFailure(Failure.get());
-    }
   }
+  return Result;
 }
 //---------------------------------------------------------------------------
 bool __fastcall TConsoleRunner::Aborted(bool AllowCompleteAbort)
@@ -1211,9 +1207,14 @@ bool __fastcall TConsoleRunner::Aborted(bool AllowCompleteAbort)
     if (Result)
     {
       PrintMessage(LoadStr(USER_TERMINATED));
-      if (AllowCompleteAbort)
+
+      if (AllowCompleteAbort && NotifyAbort())
       {
-        NotifyAbort();
+        if (FScript->Terminal != NULL)
+        {
+          std::unique_ptr<TStringList> Failure(TextToStringList(LoadStr(USER_TERMINATED)));
+          FScript->Terminal->ActionLog->AddFailure(Failure.get());
+        }
       }
     }
   }