View Issue Details

IDProjectCategoryView StatusLast Update
0003433Far ManagerCommand Line/Executepublic2017-05-11 02:29
ReporterddvAssigned ToDrKnS 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Platformx64OSWindowsOS Version10
Product Version3.0 
Target VersionFixed in Version3.0 
Summary0003433: Если выполненная программа поменяла заголовок консоли, Far его не восстановит
DescriptionЕсли в Far'е поменять заголовок окна консоли командой title и запустить PowerShell.exe, заголовок поменяется на "Windows PowerShell", а после возврата из него в Far так и останется.
Steps To Reproduce
  1. В Far'е поменять заголовок окна консоли командой title
  2. Запустить PowerShell.exe (заголовок поменяется на "Windows PowerShell")
  3. Выйти из PowerShell.exe (заголовок останется "Windows PowerShell")
Additional InformationПрилагаю исправление
TagsNo tags attached.
Build4956

Activities

ddv

2017-05-11 01:27

reporter  

FlushTitle.patch (1,958 bytes)
Index: execute.cpp
===================================================================
--- execute.cpp	(revision 14911)
+++ execute.cpp	(working copy)
@@ -52,6 +52,7 @@
 #include "string_utils.hpp"
 #include "cvtname.hpp"
 #include "RegExp.hpp"
+#include "scrbuf.hpp"
 
 enum class image_type
 {
@@ -1019,6 +1020,7 @@
 	    вследствие своей оптимизации, которая в данном случае выходит боком.
 	*/
 	SetCursorType(Visible, CursorSize);
+	Global->ScrBuf->InvalidateTitle();
 	CONSOLE_CURSOR_INFO cci = { CursorSize, Visible };
 	Console().SetCursorInfo(cci);
 
Index: main.cpp
===================================================================
--- main.cpp	(revision 14911)
+++ main.cpp	(working copy)
@@ -482,7 +482,7 @@
 
 	SCOPED_ACTION(global);
 
-	auto NoElevetionDuringBoot = std::make_unique<elevation::suppress>();
+	auto NoElevationDuringBoot = std::make_unique<elevation::suppress>();
 
 	SetErrorMode(Global->ErrorMode);
 
@@ -786,7 +786,7 @@
 
 	Global->CtrlObject = new ControlObject;
 
-	NoElevetionDuringBoot.reset();
+	NoElevationDuringBoot.reset();
 
 	try
 	{
Index: scrbuf.cpp
===================================================================
--- scrbuf.cpp	(revision 14911)
+++ scrbuf.cpp	(working copy)
@@ -590,6 +590,11 @@
 	}
 }
 
+void ScreenBuf::InvalidateTitle()
+{
+	SBFlags.Clear(SBFLAGS_FLUSHEDTITLE);
+}
+
 void ScreenBuf::RestoreMacroChar()
 {
 	if(MacroCharUsed)
Index: scrbuf.hpp
===================================================================
--- scrbuf.hpp	(revision 14911)
+++ scrbuf.hpp	(working copy)
@@ -77,6 +77,7 @@
 	void GetCursorType(bool& Visible, DWORD& Size) const;
 	const string& GetTitle() const { return m_Title; }
 	void SetTitle(const string& Title);
+	void InvalidateTitle();
 
 	void FillBuf();
 	void Read(int X1, int Y1, int X2, int Y2, matrix<FAR_CHAR_INFO>& Dest);
FlushTitle.patch (1,958 bytes)

DrKnS

2017-05-11 02:09

administrator   bugnote:0015347

Ок, правда мне не очень нравится идея расширять ради одного этого случая scrbuf.
Сделано слегка иначе, 4956.

ddv

2017-05-11 02:20

reporter   bugnote:0015348

OK.

Issue History

Date Modified Username Field Change
2017-05-11 01:27 ddv New Issue
2017-05-11 01:27 ddv File Added: FlushTitle.patch
2017-05-11 02:04 DrKnS Assigned To => DrKnS
2017-05-11 02:04 DrKnS Status new => assigned
2017-05-11 02:09 DrKnS Note Added: 0015347
2017-05-11 02:09 DrKnS Status assigned => feedback
2017-05-11 02:20 ddv Note Added: 0015348
2017-05-11 02:20 ddv Status feedback => assigned
2017-05-11 02:29 DrKnS Build => 4956
2017-05-11 02:29 DrKnS Status assigned => closed
2017-05-11 02:29 DrKnS Resolution open => fixed
2017-05-11 02:29 DrKnS Fixed in Version => 3.0