View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001978 | Plugins | FARCmds | public | 2012-01-11 10:38 | 2012-01-13 18:03 |
Reporter | Denis | Assigned To | alexy | ||
Priority | normal | Severity | major | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Platform | x64 | OS | Windows | OS Version | 7 |
Product Version | 3.0 | ||||
Fixed in Version | 3.0 | ||||
Summary | 0001978: Отваливается мышь | ||||
Description | После выполнения из коммандной строки "edit:<abc", где "abc" - несуществующий файл, Far перестаёт реагировать на мышь. | ||||
Additional Information | Far 3.0 build 2361 x86 win7 x64 | ||||
Tags | No tags attached. | ||||
|
у меня и после edit:<svn diff отваливается. svn вполне себе существует. |
|
На несуществующем проще тестить - так как он существует у всех. А svn у меня нет. |
|
проблема известна, любой плагин который что либо запускает теперь должен сохранять и восстанавливать режимы консоли (для stdout, stdin и stderr). |
|
RestoreConsole.patch (1,105 bytes)
diff --git i/plugins/farcmds/OpenCmd.cpp w/plugins/farcmds/OpenCmd.cpp index 535e3d7..a170fc9 100644 --- i/plugins/farcmds/OpenCmd.cpp +++ w/plugins/farcmds/OpenCmd.cpp @@ -437,6 +437,11 @@ static int TestPrefix(wchar_t*& Src,const wchar_t *Pref) int OpenFromCommandLine(wchar_t *_farcmd) { + DWORD InMode=0, OutMode=0, ErrMode=0; + GetConsoleMode(GetStdHandle(STD_OUTPUT_HANDLE), &OutMode); + GetConsoleMode(GetStdHandle(STD_ERROR_HANDLE), &ErrMode); + GetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), &InMode); + if (!_farcmd) return FALSE; int View=0,Edit=0,Goto=0,Far=0,Clip=0,WhereIs=0,Macro=0,Link=0,Run=0, Load=0,Unload=0; @@ -1358,6 +1363,10 @@ int OpenFromCommandLine(wchar_t *_farcmd) } // </if(View||Edit||Goto)> } // </if(lstrlen(farcmd) > 3)> + SetConsoleMode(GetStdHandle(STD_OUTPUT_HANDLE), OutMode); + SetConsoleMode(GetStdHandle(STD_ERROR_HANDLE), ErrMode); + SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), InMode); + if (showhelp) { Info.ShowHelp(Info.ModuleName,(PrefIdx==static_cast<size_t>(-1))?L"Contents":Pref[PrefIdx].HelpName,0); |
|
Добавил патч (исходник взят у t-rex) |
|
build 85 |
Date Modified | Username | Field | Change |
---|---|---|---|
2012-01-11 10:38 | Denis | New Issue | |
2012-01-11 12:54 | zg | Note Added: 0008374 | |
2012-01-11 12:56 | Denis | Note Added: 0008375 | |
2012-01-11 12:56 | Denis | Note Edited: 0008375 | |
2012-01-11 13:15 | alexy | Note Added: 0008376 | |
2012-01-13 06:35 | Denis | File Added: RestoreConsole.patch | |
2012-01-13 06:36 | Denis | Note Added: 0008398 | |
2012-01-13 18:03 | alexy | Note Added: 0008419 | |
2012-01-13 18:03 | alexy | Status | new => closed |
2012-01-13 18:03 | alexy | Assigned To | => alexy |
2012-01-13 18:03 | alexy | Resolution | open => fixed |
2012-01-13 18:03 | alexy | Fixed in Version | => 3.0 |