It is obvious that 7.4.851 causes this problem.
When I wrote the patch, I thought that using CreateConsoleScreenBuffer and
SetConsoleActiveScreenBuffer is a perfect solution to save and restore a
console buffer, but now I think it was totally wrong because it causes many
problems.
1. The patch 7.4.851 hits a known bug on Windows 7.
- https://github.com/cbucher/console/issues/148#issuecomment-66362147
- https://fogbugz.bitvise.com/default.asp?WinSSHD.1.16969.1
- http://support.microsoft.com/kb/2458000
This is fixed with 7.4.876 and 7.4.886, but I think that it still has a
potential problem. When a vim plugin execute an external program without
using system() (e.g. using if_python, if_ruby, vimproc, etc.), crashes might
occur.
2. The patch hits another (unknown?) bug on Windows 10 when vimproc is
used.
- https://github.com/Shougo/neocomplete.vim/issues/471
- https://github.com/Shougo/vimproc.vim/issues/208
Currently, I have no idea how to fix this.
3. Some console emulators (ConsoleZ, Console2, ckw, winpty, etc.)
don't support CreateConsoleScreenBuffer and SetConsoleActiveScreenBuffer.
This is the cause of the problem which was reported by Mike.
I hope these console emulators support these APIs, but it might take long time.
(FYI, ConEmu seems to support these APIs but not perfect.)
So I propose Bram to revert 7.4.851, 7.4.876 and 7.4.886.
Regards,
Ken Takata
Is it only on Windows that these patches cause problems? I'm unaffected by all of this, but I know they solve a problem for many people on other systems.
Perhaps this is a place for OS-specific compilation?
Yes, the patch only affects Windows.
Regards,
Ken Takata
I think reverting 7.4.851 fixes the problem, but not sure.
At least, I haven't seen the problem before 7.4.851.
Regards,
Ken Takata