mit-scheme-devel
[Top][All Lists]
Advanced

[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??

Attachment: patch-2.diff.bz2
Description: Console screen fix.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]