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

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

bug#24420: 25.1.50; Work around terminal differences for bracketed-paste


From: Philipp Stephani
Subject: bug#24420: 25.1.50; Work around terminal differences for bracketed-paste/mouse-2
Date: Wed, 14 Sep 2016 20:05:21 +0000



Robert Cochran <robert-emacs@cochranmail.com> schrieb am Mi., 14. Sep. 2016 um 20:37 Uhr:
Philipp Stephani <p.stephani2@gmail.com> writes:

> There are several terminals that announce themselves as XTerm and
> partially implement the XTerm control sequences
> (http://invisible-island.net/xterm/ctlseqs/ctlseqs.html), but have some
> slightly different behavior.

That sounds like breakage waiting to happen. Maybe I'm not entirely
familiar with how things are done in terminal-emulator-land, but why
would you declare yourself as an XTerm if you only partially implement
or differ from the real thing?

For the same reason that every web browser on the planet declares itself as "Mozilla". Identification strings simply don't work.
 

how do you communicate the advanced features (like mouse support)? Is it
simply that it's there if a terminal claims to be an xterm? Or is there
a real query method for those things?

That's not really possible. Basically Emacs tries to enable all features and assumes the terminal emulator simply ignores escape sequences it doesn't understand.
 

> I've tried out XTerm, HTerm, and gnome-terminal, and found the
> following behavior differences:
>
> - XTerm sends xterm-paste (ESC [ 200~ ... ESC [ 201~) if
>   xterm-mouse-mode is disabled.  If xterm-mouse-mode is enabled, it
>   sends down-mouse-2 + up-mouse-2 using SGR coordinates (ESC [<1;x;yM
>   ESC [<1;x;ym), which gets translated to mouse-yank-primary.
>
> - Gnome Terminal sends xterm-paste if xterm-mouse-mode is disabled.  If
>   xterm-mouse-mode is enabled, it only sends down-mouse-2 using SGR
>   coordinates, which is ignored by Emacs.
>
> - HTerm doesn't use bracketed paste mode if xterm-mouse-mode is disabled
>   (i.e. pasted text gets inserted using individual
>   self-insert-commands).  If xterm-mouse-mode is enabled, it uses both
>   (!) down-mouse-2 + down-mouse-up (using basic coordinates) and then a
>   bracketed paste.
>
> The HTerm and Gnome-Terminal behaviors are probably bugs, and I'll try
> to get them fixed.  However, maybe we want to work around these issues
> on the Emacs side, e.g. by not requiring an up-mouse-2 if
> xterm-mouse-mode is enabled.

I could go either way on this one... Emacs maybe ought not to be so
choosy about what it gets from a control character standpoint, but how
relatively difficuly would it be to fix the emulators to do both up and
down? That way both flavors of program are satisfied: the ones looking
for down-only get their event, and those looking for both get both.


Fixing gnome-terminal would be preferred, yes, but old (unfixed) versions tend to stick around for years.
With HTerm it's a bit different: arguably HTerm's behavior is better than XTerm's, because with XTerm you can't paste any more once you enable extended mouse mode. 

reply via email to

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