[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[MIT-Scheme-devel] Old bug in Edwin's console-screen.
From: |
Matt Birkholz |
Subject: |
[MIT-Scheme-devel] Old bug in Edwin's console-screen. |
Date: |
Mon, 3 Aug 2009 14:47:24 -0700 |
> From: address@hidden (Matt Birkholz)
> Date: Sat, 1 Aug 2009 12:29:41 -0700
>
> [...]
> I patched clear-current-message! to apply window-direct-update! to the
> typein-window AND the selected-window. This puts the terminal's
> cursor back after a temporary message is erased, but there are still
> certain non-temporary messages that leave the cursor behind.
I punted my hacks to clear-current-message! after realizing that the
console-screen's wrap-update method is a more appropriate place for
the fix. I now have a patch for that procedure that ensures the
terminal's cursor is put back:
diff --git a/src/edwin/tterm.scm b/src/edwin/tterm.scm
index da2d2f4..e6876c5 100644
--- a/src/edwin/tterm.scm
+++ b/src/edwin/tterm.scm
@@ -514,6 +514,7 @@ USA.
(define (console-wrap-update! screen thunk)
screen
(let ((finished? (thunk)))
+ (window-direct-output-cursor! (screen-cursor-window screen))
(output-port/flush-output console-i/o-port)
finished?))
I had to implement the window-direct-output-cursor! procedure, but
calling it right before a final output-port/flush-output seems more
like The Right Thing.
And now I do not see the "toggle-read-only" bug, in which the
terminal's cursor was left in the modeline after C-x C-q.
Included in this patch is a fix that allows Edwin to run interpreted
in the console-screen. Apparently the compiled code does not balk at
(fix:- 0 #f) whereas the s-code interpreter signals a
wrong-type-argument...
Nobody else has been running Edwin in a terminal, interpreted??
patch-2.diff.bz2
Description: Console screen fix.