This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: Clearing the buffer after quitting LESS, MAN, VIM etc.
- From: Dawid Ferenczy <ferenczy at volny dot cz>
- To: cygwin at cygwin dot com
- Date: Sat, 4 Jan 2014 03:58:44 +0000 (UTC)
- Subject: Re: Clearing the buffer after quitting LESS, MAN, VIM etc.
- Authentication-results: sourceware.org; auth=none
- References: <loom dot 20131231T025559-913 at post dot gmane dot org> <8545c95dp8ns21seorjf67o4eueglcarsk at 4ax dot com> <20131231185859 dot GA4460 at ednor dot casa dot cgf dot cx> <20131231222904 dot GA5441 at ednor dot casa dot cgf dot cx> <loom dot 20140103T011837-791 at post dot gmane dot org> <20140103065626 dot GB2538 at ednor dot casa dot cgf dot cx>
Christopher Faylor <cgf-use-the-mailinglist-please <at> cygwin.com> writes:
> Problems like that interfere with my sleep so it's best to get them out
> of the way before I go to bed.
Hi Christopher,
that's the difference between real programmers and other coders. Real
programmer can't go to bed, when he has unsolved issue ;)
> >Could you briefly describe what was the nature of that limitation and
how did
> >you fixed it, please? (technically, I'm a developer too)
>
> The problem is described here:
>
> http://stackoverflow.com/questions/14699043/replacement-to-systemcolor
>
> in the first Answer.
>
> I found this after noticing the strange behavior of ReadConsoleOutput.
Thank you, I have a point, now. Moreover I have read the diff of your fix.
And the fix is almost perfect. It's only almost perfect, because it
preserves the visible buffer only, not the whole scrollback buffer, which
could be much more larger, than the window size. I can live with that, but
could it be possible to preserve the whole scrollback buffer, no
matters how big it is? I have a window size of 240 * 70 and scrollback
buffer of 240 * 9999 characters.
So we need to split the buffer to the regions smaller than 16384 characters
(to fit buffer in a heap). Maybe it could be possible to get the
scrollback buffer dimensions instead of the window dimensions and use
ReadConsoleOutputWrapper in a loop (buffer_width * buffer_height / 16384
iterations). Moreover, if the window size is bigger than 32768 characters,
your fix will fail, because you attempt to read a region bigger than
16384 characters at once.
But it's interesting that when I have the window size smaller than 16384
characters (240 * 62), the whole scrollback buffer is preserved, no
matters how big it is.
Thank you and have a nice day.
Dawid Ferenczy
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple