summaryrefslogtreecommitdiffstats
path: root/input.c
AgeCommit message (Collapse)Author
2018-04-10A couple of fixes to the : form of SGR. Apparently there is an extranicm
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-06Fix link, from Eliran Gonen.nicm
2018-03-05For some reason tmux treats SGR 10 as SGR 0. It has done since the firstnicm
version and I'm not sure why since no other terminal appears to. Change to just ignore SGR 10 instead.
2018-02-19Support ISO colon-separated SGR.nicm
2018-01-12Simplify UTF-8 states down into one state.nicm
2017-10-05Add support for the xterm(1) title stack, from Brad Town, GitHub issuenicm
1075.
2017-09-10Apply timeout to CAN and RS which also wait for ST.nicm
2017-08-29Support REP escape sequence (\033[b).nicm
2017-06-09Add a hook when the clipboard is set.nicm
2017-06-04Add a timeout to prevent the sequences which wait for a specificnicm
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-04Be more strict about escape sequences that rename windows or set titles:nicm
ignore any that not valid UTF-8 outright, and for good measure pass the result through our UTF-8-aware vis(3).
2017-06-03Make set-clipboard a three-state option so tmux itself can ignore thenicm
sequencess.
2017-05-28Support OSC 10 and 11 to set foreground and background colours, fromnicm
"bertnp" in GitHub issue 942.
2017-05-12Scrolling needs to use background colour.nicm
2017-05-12ECH needs to use background colour.nicm
2017-04-22We need to collect UTF-8 characters so that width != 1 characters arenicm
correctly flushed.
2017-03-22Add support for the strikethrough attribute (SGR 9), using the new smxxnicm
terminfo capability. This means there are now nine attribute bits, so anything above 0xff uses an extended cell.
2017-02-19Add SGR 28 to clear hidden flag.nicm
2017-02-16There are buggy terminals out there that do not move the cursor to 0,0nicm
after CSR, so invalidate the cursor position rather than assuming 0,0.
2017-02-08Add support for scroll up escape sequence (CSI S) and use it whennicm
possible instead of sending individual line feeds.
2017-02-08Collect sequences of printable ASCII characters and process themnicm
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-08Some other tidying bits.nicm
2017-02-06Use DECFRA on VT420 compatible terminals (so, xterm) and ED on allnicm
others for clearing panes.
2017-02-06Add BCE for clear to start of screen, which was somehow missed.nicm
2017-02-06Fix logging of CSI parameters.nicm
2017-02-01Implement "all event" (1003) mouse mode but in a way that works. Thenicm
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-01-22Accept the OSC 52 escape sequence inside tmux to add a new buffer, fromnicm
harry dot gindi at live dot com.
2017-01-07Add support for the OSC 4 and OSC 104 palette setting escape sequences,nicm
from S Gilles.
2016-12-09Spacing nits.nicm
2016-10-13Add support for BCE (background colour erase). This makes various escapenicm
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-03Remove some dead code in cmd-move-window.c and make a load of localnicm
functions static.
2016-09-28Couple of vasprintf -> xvasprintf.nicm
2016-07-15Instead of representing colours in several different forms with variousnicm
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-03-02Handle wcwidth() and mbtowc() failures in better style and dropnicm
characters where we can't find the width (wcwidth() fails) on input, the same as we drop invalid UTF-8. Suggested by schwarze@.
2016-01-29Support for RGB colour, using the extended cell mechanism to avoidnicm
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-19I no longer use my SourceForge address so replace it.nicm
2016-01-15A couple of missing printflike attributes, from Andrey Starodubtsev.nicm
2015-12-16send-keys -R should reset the input parser to ground state (so it can benicm
used to escape from, for example, printf '\033]2;').
2015-11-23Partly revert previous, it is harmless to keep support for UTF-8 mousenicm
mode inside tmux, just no longer support it for tmux itself.
2015-11-23Remove support for the UTF-8 mouse extension. This was a briefly used,nicm
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-18Sync the entire xmalloc.[ch] with the other users, but with the additionnicm
of xrealloc, xvasprintf, xvsnprintf.
2015-11-14The character is an int so use %x not %hhx.nicm
2015-11-14All these return values from utf8_* are confusing, use an enum.nicm
2015-11-14Be more strict about invalid UTF-8.nicm
2015-11-14Log more of UTF-8 input.nicm
2015-11-13Long overdue change to the way we store cells in the grid: now, insteadnicm
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-12Nuke the utf8 and status-utf8 options and make tmux only a UTF-8nicm
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-10-27Move struct options into options.c.nicm
2015-09-02Log pane which received input data.nicm
2015-09-01Tweak some error messages/comments.nicm