nicm
ff4c80d53d
Add support for origin mode (DECOM, SM/RM ?6), from Marc Reisner.
2019-03-12 07:39:27 +00:00
nicm
4e3d661284
Fix parsing of empty colon-separated fields, reported by Siarhei Siniak.
2018-12-17 21:52:59 +00:00
nicm
749f67b7d8
evbuffer_new and bufferevent_new can both fail (when malloc fails) and
...
return NULL. GitHub issue 1547.
2018-11-19 13:35:40 +00:00
nicm
a51668ca06
Support OSC 52 ? to read the top buffer inside tmux (when set-clipboard
...
is changed to on), also add refresh-client -l to ask tmux to use the
same mechanism to get the clipboard from the terminal outside
tmux. GitHub issue 1477.
2018-10-18 08:04:14 +00:00
nicm
bc0e527f32
Support for extended underline styles on terminals which offer them,
...
enabled by adding the Smulx capability with terminal-overrides (add
something like ',vte*:Smulx=\E[4\:%p1%dm'). GitHub issue 1492.
2018-10-18 07:57:57 +00:00
nicm
a9ffb56b65
Add the KEYC_XTERM flag to all function keys that imply a modifier so
...
that they are correctly translated into xterm(1)-style keys. GitHub
issue 1437.
2018-08-16 14:04:03 +00:00
nicm
80bdd89856
Clear history on RIS like most other terminals do.
2018-07-31 10:32:19 +00:00
nicm
051a29ca03
A couple of fixes to the : form of SGR. Apparently there is an extra
...
argument that nobody knew about, so skip that if it exists. Also there
are a bunch of useless optional arguments at the end, so ignore those.
2018-04-10 11:20:15 +00:00
nicm
5d616f4c72
Fix link, from Eliran Gonen.
2018-04-06 09:09:38 +00:00
nicm
85c48aafff
For some reason tmux treats SGR 10 as SGR 0. It has done since the first
...
version and I'm not sure why since no other terminal appears to. Change
to just ignore SGR 10 instead.
2018-03-05 12:32:28 +00:00
nicm
6ae04dd5a0
Support ISO colon-separated SGR.
2018-02-19 21:20:10 +00:00
nicm
c03565611e
Simplify UTF-8 states down into one state.
2018-01-12 16:32:12 +00:00
nicm
88517ceebb
Add support for the xterm(1) title stack, from Brad Town, GitHub issue
...
1075.
2017-10-05 13:29:18 +00:00
nicm
8405fcdd9b
Apply timeout to CAN and RS which also wait for ST.
2017-09-10 08:01:23 +00:00
nicm
5fc0be5045
Support REP escape sequence (\033[b).
2017-08-29 09:28:45 +00:00
nicm
74b2deae1c
Add a hook when the clipboard is set.
2017-06-09 09:21:24 +00:00
nicm
c5b7faaefc
Add a timeout to prevent the sequences which wait for a specific
...
terminator (OSC, APC and DCS) waiting forever, which helps to avoid
garbage (cat /dev/random) locking up panes completely. This (and the
last commit) prompted by a discussion with theo.
2017-06-04 09:22:34 +00:00
nicm
8149bc3fa6
Be more strict about escape sequences that rename windows or set titles:
...
ignore any that not valid UTF-8 outright, and for good measure pass the
result through our UTF-8-aware vis(3).
2017-06-04 09:02:36 +00:00
nicm
3442066054
Make set-clipboard a three-state option so tmux itself can ignore the
...
sequencess.
2017-06-03 17:43:01 +00:00
nicm
d5158620bb
Support OSC 10 and 11 to set foreground and background colours, from
...
"bertnp" in GitHub issue 942.
2017-05-28 23:23:40 +00:00
nicm
18bab30792
Scrolling needs to use background colour.
2017-05-12 13:00:56 +00:00
nicm
886d50dcab
ECH needs to use background colour.
2017-05-12 10:50:11 +00:00
nicm
bcab77e266
We need to collect UTF-8 characters so that width != 1 characters are
...
correctly flushed.
2017-04-22 08:33:28 +00:00
nicm
df3ab87964
Add support for the strikethrough attribute (SGR 9), using the new smxx
...
terminfo capability. This means there are now nine attribute bits, so
anything above 0xff uses an extended cell.
2017-03-22 07:16:54 +00:00
nicm
f27e1d07fc
Add SGR 28 to clear hidden flag.
2017-02-19 07:55:11 +00:00
nicm
82db1fa9e5
There are buggy terminals out there that do not move the cursor to 0,0
...
after CSR, so invalidate the cursor position rather than assuming 0,0.
2017-02-16 12:56:01 +00:00
nicm
e100d465da
Add support for scroll up escape sequence (CSI S) and use it when
...
possible instead of sending individual line feeds.
2017-02-08 17:31:09 +00:00
nicm
13a0b6bb3f
Collect sequences of printable ASCII characters and process them
...
together instead of handling them one by one. This is significantly
faster. Sequences are terminated when we reach the end of the line, fill
the internal buffer, or a different character is seen by the input
parser (an escape sequence, or UTF-8).
Rather than writing collected sequences out immediately, hold them until
it is necessary (another screen modification, or we consume all
available data). This means we can discard changes that would have no
effect (for example, lines that would just be scrolled off the screen or
cleared). This reduces the total amount of data we write out to the
terminal - not important for fast terminals, but a big help with slow
(like xterm).
2017-02-08 16:45:18 +00:00
nicm
7475165cd8
Some other tidying bits.
2017-02-08 15:49:29 +00:00
nicm
d60e585d9e
Use DECFRA on VT420 compatible terminals (so, xterm) and ED on all
...
others for clearing panes.
2017-02-06 22:05:11 +00:00
nicm
10e14ae504
Add BCE for clear to start of screen, which was somehow missed.
2017-02-06 19:26:49 +00:00
nicm
d150d9b384
Fix logging of CSI parameters.
2017-02-06 13:25:15 +00:00
nicm
dd0c814779
Implement "all event" (1003) mouse mode but in a way that works. The
...
main issue is that if we have two panes, A with 1002 and B with 1003, we
need to set 1003 outside tmux in order to get all the mouse events, but
then we need to suppress the ones that pane A doesn't want. This is easy
in SGR mouse mode, because buttons == 3 is only used for movement events
(for other events the trailing m/M marks a release instead), but in
normal mouse mode we can't tell so easily. So for that, look at the
previous event instead - if it is drag+release as well, then the current
event is a movement event.
2017-02-01 09:55:07 +00:00
nicm
4ede35c48c
Accept the OSC 52 escape sequence inside tmux to add a new buffer, from
...
harry dot gindi at live dot com.
2017-01-22 19:00:01 +00:00
nicm
314e933914
Add support for the OSC 4 and OSC 104 palette setting escape sequences,
...
from S Gilles.
2017-01-07 15:28:13 +00:00
nicm
bee95bf378
Spacing nits.
2016-12-09 21:39:27 +00:00
nicm
4179b42424
Add support for BCE (background colour erase). This makes various escape
...
sequences (notable EL and ED but also IL, DL, ICH, DCH) create blank
cells using the current background colour rather than the default
colour.
On modern systems BCE doesn't really have many benefits, but most other
terminals now support it, some (lazy) applications rely on it, and it is
not hard to include now that we have pane background colours anyway.
Mostly written by Sean Haugh.
2016-10-13 20:27:27 +00:00
nicm
1b31d148c9
Remove some dead code in cmd-move-window.c and make a load of local
...
functions static.
2016-10-03 22:52:11 +00:00
nicm
bb5798aa0e
Couple of vasprintf -> xvasprintf.
2016-09-28 14:40:07 +00:00
nicm
1fd6ca2260
Instead of representing colours in several different forms with various
...
cell flags, convert to use an int with flags marking 256 or RGB colours
in the top byte (except in cells, which we don't want to make any
bigger). From Brad Town.
2016-07-15 00:42:56 +00:00
nicm
b8a102d26f
Handle wcwidth() and mbtowc() failures in better style and drop
...
characters where we can't find the width (wcwidth() fails) on input, the
same as we drop invalid UTF-8. Suggested by schwarze@.
2016-03-02 15:36:02 +00:00
nicm
427b820426
Support for RGB colour, using the extended cell mechanism to avoid
...
wasting unnecessary space. The 'Tc' flag must be set in the external
TERM entry (using terminal-overrides or a custom terminfo entry), if not
tmux will map to the closest of the 256 or 16 colour palettes.
Mostly from Suraj N Kurapati, based on a diff originally by someone else.
2016-01-29 11:13:56 +00:00
nicm
995af0e2b7
I no longer use my SourceForge address so replace it.
2016-01-19 15:59:12 +00:00
nicm
68d797587e
A couple of missing printflike attributes, from Andrey Starodubtsev.
2016-01-15 11:31:47 +00:00
nicm
99e9a4c786
send-keys -R should reset the input parser to ground state (so it can be
...
used to escape from, for example, printf '\033]2;').
2015-12-16 22:05:35 +00:00
nicm
2adf3f42ee
Partly revert previous, it is harmless to keep support for UTF-8 mouse
...
mode inside tmux, just no longer support it for tmux itself.
2015-11-23 23:47:57 +00:00
nicm
32e510bd70
Remove support for the UTF-8 mouse extension. This was a briefly used,
...
poor idea that was fairly quickly replaced by SGR mouse input (which is
now widespread). It is impossible to tell the difference between UTF-8
and non-UTF-8 mouse input; since the mouse-utf8 option was removed tmux
has not handled it correctly in any case; and it is ridiculous to have
three different forms of mouse input.
2015-11-23 20:53:09 +00:00
nicm
64571368dc
Sync the entire xmalloc.[ch] with the other users, but with the addition
...
of xrealloc, xvasprintf, xvsnprintf.
2015-11-18 13:06:54 +00:00
nicm
14d90e4901
The character is an int so use %x not %hhx.
2015-11-14 12:20:19 +00:00
nicm
205d15e82d
All these return values from utf8_* are confusing, use an enum.
2015-11-14 11:45:43 +00:00
nicm
64333e3ef8
Be more strict about invalid UTF-8.
2015-11-14 10:56:31 +00:00
nicm
908e6bb68f
Log more of UTF-8 input.
2015-11-14 08:25:12 +00:00
nicm
c5689a5a40
Long overdue change to the way we store cells in the grid: now, instead
...
of storing a full grid_cell with UTF-8 data and everything, store a new
type grid_cell_entry. This can either be the cell itself (for ASCII
cells), or an offset into an extended array (per line) for UTF-8
data.
This avoid a large (8 byte) overhead on non-UTF-8 cells (by far the
majority for most users) without the complexity of the shadow array we
had before. Grid memory without any UTF-8 is about half.
The disadvantage that cells can no longer be modified in place and need
to be copied out of the grid and back but it turned out to be lot less
complicated than I expected.
2015-11-13 08:09:28 +00:00
nicm
1b86f520ea
Nuke the utf8 and status-utf8 options and make tmux only a UTF-8
...
terminal. We still support non-UTF-8 terminals outside tmux, but inside
it is always UTF-8 (as when the utf8 and status-utf8 options were on).
2015-11-12 11:09:11 +00:00
nicm
44657bf932
Move struct options into options.c.
2015-10-27 15:58:42 +00:00
nicm
6c10fc659a
Log pane which received input data.
2015-09-02 17:52:57 +00:00
nicm
93b946ee50
Tweak some error messages/comments.
2015-09-01 19:50:09 +00:00
nicm
66a2720c56
Log the whole new input buffer once rather than each byte.
2015-09-01 19:16:00 +00:00
nicm
b5aaefc727
Move alerts onto events rather than checking every loop.
2015-08-29 08:30:54 +00:00
nicm
fc58e44f89
Only do the automatic-rename dance if the pane has changed (seen output,
...
or new active pane).
2015-08-28 07:49:24 +00:00
nicm
2ffbd5b5f0
When searching for tabs, start from screen width, fixes out-of-bounds
...
read found by Kuang-che Wu.
2015-08-25 15:00:05 +00:00
nicm
8dcea2cc14
Reset G0/G1 state when resetting everything else with send-keys -R.
2015-07-13 18:45:18 +00:00
nicm
d96ab34019
Add window_activity format, from Thomas Adam based on a diff originally
...
from propos6 at gmail dot com.
2015-06-15 10:58:01 +00:00
nicm
55b96a5bd5
Handle the RGB colour escape sequence (\033[38;2;<r>;<g>;<b>m and 48;2)
...
like xterm(1) does, by mapping to the nearest in the 256 colour palette.
2015-06-05 22:33:39 +00:00
nicm
a3edfd9e84
teminal -> terminal, from Corey Farwell.
2015-06-04 09:42:29 +00:00
nicm
a3c6172495
Missing t at end of response, from Vincent Bernat.
2015-06-01 13:59:57 +00:00
nicm
44364d7112
Remove the c0-* options which never really worked satisfactorily. Going
...
to try something else...
2015-05-11 10:10:16 +00:00
nicm
c4a4bd6ac5
Move input parser structs into input.c (removing fairly useless
...
saved_cursor_[xy] formats as a side-effect).
2015-05-08 16:18:04 +00:00
nicm
02df86079b
Fix some format specifier nits, from Ben Boeckel.
2015-03-31 17:45:10 +00:00
nicm
16bdd970dc
Support blinking cursor mode, both the xterm CSI ?12 h/l and (the
...
backwards) screen CSI 34 h/l. From Guanpeng Xu.
2015-01-20 08:18:04 +00:00
nicm
a27ba6e380
Add xreallocarray and remove nmemb argument from xrealloc.
2014-10-08 17:35:58 +00:00
nicm
1ac96200a7
Remove support for the continuous reporting "any" mouse mode which never
...
really worked properly and is rarely used.
2014-08-09 07:33:37 +00:00
nicm
21ade85f24
Properly track switching G0 and G1 modes between US-ASCII and VT100 line
...
drawing rather than just treating them as SO and SI.
2014-06-06 13:21:41 +00:00
nicm
ada75af199
Don't limit the DCS buffer to 256 bytes, expand it as needed. Requested
...
by Suraj Kurapati.
2014-04-17 12:43:38 +00:00
nicm
04f469a324
Change secondary device attributes response to \033[>84;0;0c which is
...
unique for tmux.
2014-03-31 21:32:00 +00:00
nicm
1935eb5c1e
Add \033[18t window operations from J Raynor.
2014-01-31 11:17:20 +00:00
nicm
81a548bcc4
Accept multiple parameters to SM/RM/DECSET/DECRST, based on a diff from
...
Hayaki Saito.
2013-10-10 11:57:14 +00:00
Nicholas Marriott
a41cd8d75b
Always push a focus event when the application turns it on, prompted by
...
discussion with Hayaki Saito a while ago.
2013-06-23 12:51:28 +00:00
Nicholas Marriott
1ec4354998
Add support for focus notifications when tmux pane changes, based on
...
work by Aaron Jensen.
2013-03-24 09:18:16 +00:00
Nicholas Marriott
ad5df9bc2f
Implement DECAWM (SM/RM 7) using existing MODE_WRAP flag.
2013-03-22 10:36:53 +00:00
Nicholas Marriott
67b4d5b609
Support the latest theory for mouse input, this is enabled/disabled with
...
SM/RM 1006 and is similar in style to SGR input: \033[<b;x;yM or
\033[b;x;ym. From Egmont Koblinger.
2013-03-22 10:33:50 +00:00
Nicholas Marriott
10682b9e7e
Instead of loads of little screen_write_*_on and off functions which
...
just change mode flags, just have screen_write_mode_set and
screen_write_mode_clear.
2013-03-21 18:47:56 +00:00
Nicholas Marriott
fdbfc7e349
Rather than having two grids for each pane, one for ASCII and one for
...
UTF-8, collapse the two together. Simplifies the code at the expense of
more memory (which can probably be reduced again later).
2013-01-18 02:16:21 +00:00
Nicholas Marriott
3a09e01a8e
Do not allow cursor colours to be set beginning with ? as that will
...
report the colour, from Hayaki Saito.
2013-01-17 20:30:43 +00:00
Nicholas Marriott
44f8e1caff
Implement ECH (erase character, CSI X). Reported by Christian Neukirchen.
2013-01-15 23:18:55 +00:00
Nicholas Marriott
24d7d073ff
Support the 47 and 1047 SM and RM sequences (alternate screen without
...
cursor), requested by I forget who ages ago.
2012-11-27 20:08:42 +00:00
Nicholas Marriott
17bbf90393
Add notification for input from a pane, from George Nachman.
2012-09-25 07:41:22 +00:00
Nicholas Marriott
df912e3540
xfree is not particularly helpful, remove it. From Thomas Adam.
2012-07-10 11:53:01 +00:00
Nicholas Marriott
ff5155f719
Add a buffer with all input from last ground state, will be used for
...
control mode. From George Nachman.
2012-04-25 21:12:49 +00:00
Nicholas Marriott
f59971276a
Add a simple form of output rate limiting by counting the number of
...
certain C0 sequences (linefeeds, backspaces, carriage returns) and if it
exceeds a threshold (current default 50/millisecond), start to redraw
the pane every 100 milliseconds instead of making each change as it
comes. Two configuration options - c0-change-trigger and
c0-change-interval.
This makes tmux much more responsive under very fast output (for example
yes(1) or accidentally cat'ing a large file) but may not be perfect on
all terminals and connections - feedback very welcome, particularly
where this change has a negative rather than positive effect (making it
off by default is a possibility).
After much experimentation based originally on a request Robin Lee
Powell (which ended with a completely different solution), this idea
from discussion with Ailin Nemui.
2012-03-20 11:01:00 +00:00
Nicholas Marriott
523ed3873d
Respond to secondary DA requests.
2012-03-15 10:05:49 +00:00
Nicholas Marriott
f4fdddc930
Support "bracketed paste" mode. This adds a -p flag to paste-buffer - if
...
this is used and the application has requested bracketed pastes, then
tmux surrounds the pasted text by \033[200~ and \033[201~. Applications
like vim can (apparently) use this to avoid, for example, indenting the
text. From Ailin Nemui.
2012-03-03 09:43:22 +00:00
Nicholas Marriott
8363d19307
Move window name changes into wrapper function window_set_name, from
...
George Nachman.
2012-02-02 00:10:11 +00:00
Nicholas Marriott
7f24020cbe
Add strings to allow the aixterm bright colours to be used when
...
configuring colours, requested by Elliott Cable a few months ago.
2012-01-21 08:23:12 +00:00
Nicholas Marriott
be7b56a613
One day I will actually fix ALL the warnings before I commit...
2012-01-21 08:12:03 +00:00
Nicholas Marriott
66f04514cf
Add a -R flag to send-keys to reset the terminal. Written ages ago and
...
Suggested by someone, I forget who.
2012-01-21 08:10:21 +00:00
Nicholas Marriott
dcad13155b
Add an option to disable the window rename escape sequence, from Romain
...
Francoise.
2012-01-20 19:15:40 +00:00
Nicholas Marriott
92aef64c5a
Add CNL and CPL escape sequences.
2011-12-29 08:06:24 +00:00
Nicholas Marriott
d377a68593
Add \033[s and \033[u to save and restore cursor position.
2011-12-27 14:06:19 +00:00
Nicholas Marriott
f0aad68aee
Support for \e[3J to clear the history. Also send the corresponding
...
terminfo code (E3) before locking.
2011-10-23 10:16:14 +00:00