This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: pressing ENTER scrambles scrolled MS-DOS-console
- From: "jan.kolar" <kolar at math dot cas dot cz>
- To: cygwin at cygwin dot com
- Date: Tue, 4 Oct 2011 18:18:33 -0700 (PDT)
- Subject: Re: pressing ENTER scrambles scrolled MS-DOS-console
- References: <000c01cc7c46$615cd310$24167930$@de> <20111004123059.GB27229@calimero.vinschen.de>
Corinna Vinschen-2 wrote:
>
> On Sep 26 14:18, Paul Maier wrote:
>> Hi,
>>
>> scrolling up the console output to review the console history, then
>> pressing
>> Enter scrambles the console.
>
> That's a long standing behaviour of the Cygwin console emulation.
> I guess it can be fixed, but somebody will have to do it. In the
> meantime, try mintty as terminal.
>
>
> Corinna
>
> --
> Corinna Vinschen Please, send mails regarding Cygwin to
> Cygwin Project Co-Leader cygwin AT cygwin DOT com
> Red Hat
>
>
The problem is as below.
However it needs some thinking, checking and testing, since I have no idea
what that line was needed for.
diff --git i/fhandler_console.cc w/fhandler_console.cc
index 74b5cbd..f29426d 100644
--- i/fhandler_console.cc
+++ w/fhandler_console.cc
@@ -1089,7 +1127,27 @@ fhandler_console::cursor_set (bool rel_to_top, int x,
int y)
dev_state->fillin_info (get_output_handle ());
if (y > dev_state->info.winBottom)
- y = dev_state->info.winBottom;
+ y = y;
+ // certainly not if doing CR: y = dev_state->info.winBottom;
+ // (What purpose did that serve?)
+ // There is number of places that assume the following be noop with
respect to cursor's position:
+ // cursor_get( &x, &y)
+ // cursor_set( x, y)
+ // For any of them the assignment that I removed is unacceptable.
+
+ // Test case 1: while sleep 0.2; do echo -ne "\r$x"; x=x$x; done
+ // Now it works correctly when the user attempts to
scroll the window.
+ // Test case 2: sleep 2 <enter> {scroll up}
+ // Now it does not scramble the console even if PS1
(effectively) starts with \n as usual.
+
+
+ // There is another problem, not fully manifested in this place:
+ // Nothing should depend on the window how it is currently scrolled by
the user.
+ // If there is any scrolling sub-window, it should be managed without
reference to winBottom/Top.
+ // If we have to place cursor, it should not depend on winBottom/Top.
+ // For example srTop / srBottom cannot be computed relative to
winBottom/Top.
+
else if (y < 0)
y = 0;
else if (rel_to_top)
JK
--
View this message in context: http://old.nabble.com/pressing-ENTER-scrambles-scrolled-MS-DOS-console-tp32539946p32593677.html
Sent from the Cygwin list mailing list archive at Nabble.com.
--
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