|  | @@ -93,6 +93,9 @@ __fastcall TTerminalManager::TTerminalManager() :
 | 
	
		
			
				|  |  |    FTerminalList = new TStringList();
 | 
	
		
			
				|  |  |    FQueues = new TList();
 | 
	
		
			
				|  |  |    FTerminationMessages = new TStringList();
 | 
	
		
			
				|  |  | +  std::unique_ptr<TSessionData> DummyData(new TSessionData(L""));
 | 
	
		
			
				|  |  | +  FLocalTerminal = CreateTerminal(DummyData.get());
 | 
	
		
			
				|  |  | +  SetupTerminal(FLocalTerminal);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  //---------------------------------------------------------------------------
 | 
	
		
			
				|  |  |  __fastcall TTerminalManager::~TTerminalManager()
 | 
	
	
		
			
				|  | @@ -109,6 +112,7 @@ __fastcall TTerminalManager::~TTerminalManager()
 | 
	
		
			
				|  |  |    DebugAssert(WinConfiguration->OnMasterPasswordPrompt == MasterPasswordPrompt);
 | 
	
		
			
				|  |  |    WinConfiguration->OnMasterPasswordPrompt = NULL;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +  delete FLocalTerminal;
 | 
	
		
			
				|  |  |    delete FQueues;
 | 
	
		
			
				|  |  |    delete FTerminationMessages;
 | 
	
		
			
				|  |  |    delete FTerminalList;
 | 
	
	
		
			
				|  | @@ -141,6 +145,20 @@ TTerminal * __fastcall TTerminalManager::CreateTerminal(TSessionData * Data)
 | 
	
		
			
				|  |  |    return new TManagedTerminal(Data, Configuration);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  //---------------------------------------------------------------------------
 | 
	
		
			
				|  |  | +void __fastcall TTerminalManager::SetupTerminal(TTerminal * Terminal)
 | 
	
		
			
				|  |  | +{
 | 
	
		
			
				|  |  | +  Terminal->OnQueryUser = TerminalQueryUser;
 | 
	
		
			
				|  |  | +  Terminal->OnPromptUser = TerminalPromptUser;
 | 
	
		
			
				|  |  | +  Terminal->OnDisplayBanner = TerminalDisplayBanner;
 | 
	
		
			
				|  |  | +  Terminal->OnShowExtendedException = TerminalShowExtendedException;
 | 
	
		
			
				|  |  | +  Terminal->OnProgress = OperationProgress;
 | 
	
		
			
				|  |  | +  Terminal->OnFinished = OperationFinished;
 | 
	
		
			
				|  |  | +  Terminal->OnDeleteLocalFile = DeleteLocalFile;
 | 
	
		
			
				|  |  | +  Terminal->OnReadDirectoryProgress = TerminalReadDirectoryProgress;
 | 
	
		
			
				|  |  | +  Terminal->OnInformation = TerminalInformation;
 | 
	
		
			
				|  |  | +  Terminal->OnCustomCommand = TerminalCustomCommand;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +//---------------------------------------------------------------------------
 | 
	
		
			
				|  |  |  TTerminal * __fastcall TTerminalManager::DoNewTerminal(TSessionData * Data)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |    FTerminalList->Clear();
 | 
	
	
		
			
				|  | @@ -150,16 +168,7 @@ TTerminal * __fastcall TTerminalManager::DoNewTerminal(TSessionData * Data)
 | 
	
		
			
				|  |  |      FQueues->Add(NewQueue(Terminal));
 | 
	
		
			
				|  |  |      FTerminationMessages->Add(L"");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    Terminal->OnQueryUser = TerminalQueryUser;
 | 
	
		
			
				|  |  | -    Terminal->OnPromptUser = TerminalPromptUser;
 | 
	
		
			
				|  |  | -    Terminal->OnDisplayBanner = TerminalDisplayBanner;
 | 
	
		
			
				|  |  | -    Terminal->OnShowExtendedException = TerminalShowExtendedException;
 | 
	
		
			
				|  |  | -    Terminal->OnProgress = OperationProgress;
 | 
	
		
			
				|  |  | -    Terminal->OnFinished = OperationFinished;
 | 
	
		
			
				|  |  | -    Terminal->OnDeleteLocalFile = DeleteLocalFile;
 | 
	
		
			
				|  |  | -    Terminal->OnReadDirectoryProgress = TerminalReadDirectoryProgress;
 | 
	
		
			
				|  |  | -    Terminal->OnInformation = TerminalInformation;
 | 
	
		
			
				|  |  | -    Terminal->OnCustomCommand = TerminalCustomCommand;
 | 
	
		
			
				|  |  | +    SetupTerminal(Terminal);
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |    catch(...)
 | 
	
		
			
				|  |  |    {
 |