bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#7117: 23.2.2 mangles terminal escape sequences


From: Ryan Johnson
Subject: bug#7117: 23.2.2 mangles terminal escape sequences
Date: Thu, 30 Sep 2010 17:14:16 +0200
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.8) Gecko/20100802 Lightning/1.0b2 Thunderbird/3.1.2

 On 9/30/2010 4:59 PM, Eli Zaretskii wrote:
From: Ryan Johnson<ryanjohn@ece.cmu.edu>
Cc: 7117@debbugs.gnu.org

At this point the symptom is easy enough to understand: sometimes
discard-input gets unlucky and chops the front off of a partly-arrived
escape sequence.

The real question is, why would the command loop encounter errors and
need to discard input at all?
    [1] _longjmp()
=>[2] unwind_to_catch()
    [3] Fsignal()
    [4] xsignal()
    [5] xsignal0()
    [6] window_scroll()
The only calls to xsignal0 I see in window_scroll (or, rather, in its
subroutines) is to signal Qbeginning_of_buffer or Qend_of_buffer.

 From the above, it seems that scrolling past beginning or end of buffer
triggers an error, which I guess is somewhat justifiable.
Indeed.  Perhaps we need some infrastructure to ignore errors in this
case (I assume `ignore-errors' won't help).  Or maybe we should allow
not to discard input when we signal an error.  Or maybe discard-input
should be smarter, and not discard partial escape sequences?
One thing I don't get is, I've been using emacs over painfully slow ssh connections for literally years -- sometimes slow enough that keystrokes take visible time to echo. This was never really an issue before. In retrospect, it did pop up occasionally all along, but it was infrequent enough to hide in the shadow of xterm mouse escape sequences confusing emacs for x>95. Now it interferes with normal work. Is there some change that would have done this? I'm using the same bad internet connection as when I had emacs-22...

However, on a
very slow connection this morning mouse-clicking between or even within
buffers caused problems. Unfortunately, setting debug-on-error doesn't
seem to catch errors generated from C code.

I could try to break on longjmp over another slow connection, but with
the number of times it gets called for other reasons this would be slow
going...

Ideas?
You could put a breakpoint in Fsignal, and see if the problems with
mouse-clicking within buffers is also caused by signaling an error.
I'll try that next time it becomes annoying (it's hit-and-miss...)

Ryan






reply via email to

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