浏览代码

Failure when inspecting PuTTY pattern when no session is opened (the failure was silently ignored)

Source commit: 1d95b09efdc8b41d7c272cd5afd3e271b94137c9
Martin Prikryl 8 年之前
父节点
当前提交
153e7f77bf
共有 1 个文件被更改,包括 24 次插入6 次删除
  1. 24 6
      source/core/FileMasks.cpp

+ 24 - 6
source/core/FileMasks.cpp

@@ -1209,23 +1209,38 @@ bool __fastcall TFileCustomCommand::PatternReplacement(
 
   if (SameText(Pattern, L"!s"))
   {
-    Replacement = FData.SessionData->GenerateSessionUrl(sufComplete);
+    if (FData.SessionData != NULL)
+    {
+      Replacement = FData.SessionData->GenerateSessionUrl(sufComplete);
+    }
   }
   else if (Pattern == L"!@")
   {
-    Replacement = FData.SessionData->HostNameExpanded;
+    if (FData.SessionData != NULL)
+    {
+      Replacement = FData.SessionData->HostNameExpanded;
+    }
   }
   else if (SameText(Pattern, L"!u"))
   {
-    Replacement = FData.SessionData->UserName;
+    if (FData.SessionData != NULL)
+    {
+      Replacement = FData.SessionData->UserName;
+    }
   }
   else if (SameText(Pattern, L"!p"))
   {
-    Replacement = FData.SessionData->Password;
+    if (FData.SessionData != NULL)
+    {
+      Replacement = FData.SessionData->Password;
+    }
   }
   else if (SameText(Pattern, L"!#"))
   {
-    Replacement = IntToStr(FData.SessionData->PortNumber);
+    if (FData.SessionData != NULL)
+    {
+      Replacement = IntToStr(FData.SessionData->PortNumber);
+    }
   }
   else if (Pattern == L"!/")
   {
@@ -1239,7 +1254,10 @@ bool __fastcall TFileCustomCommand::PatternReplacement(
   }
   else if (SameText(Pattern, L"!n"))
   {
-    Replacement = FData.SessionData->SessionName;
+    if (FData.SessionData != NULL)
+    {
+      Replacement = FData.SessionData->SessionName;
+    }
   }
   else
   {