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
bce1dee034
Move the client identify (display-panes) code into server-client.c.
2017-03-09 17:06:35 +00:00
dbfee6a468
Move server_fill_environ into environ.c and move some other common code
...
into it.
2017-03-09 17:02:38 +00:00
6b2009ad72
Add a helper function for the most common format_create/defaults/expand
...
pattern.
2017-03-08 13:36:12 +00:00
e741a0bcd7
If splitw -b is used, insert the new pane before the current one in the
...
pane list. This means the numbering is in order (for example for
display-panes) and fixes a problem with redrawing the active pane
borders.
2017-02-27 13:07:57 +00:00
27ee34e7fa
Don't need is1,is2,is3 so remove them.
2017-02-21 14:18:12 +00:00
e340df2034
Make source-file look for files relative to the client working directory
...
(like load-buffer and save-buffer), from Chris Pickel. Also break the
where-is-this-file code out into its own function for loadb and saveb.
2017-02-14 18:13:05 +00:00
d22c15107b
Don't use a bufferevent for the tty, so we can keep better track of what
...
is being written and when.
Also a manpage typo fix from jmc@.
2017-02-10 12:59:18 +00:00
c6a3446398
Instead of numbering session groups, give them a name which may be given
...
to -t instead of a target session. Also allow them to contain only one
session.
2017-02-09 15:04:53 +00:00
b1fa3e25e4
Break the message storage function into its own function, useful for
...
debugging.
2017-02-09 12:09:33 +00:00
1811dc5271
Another helper function to write to terminal and log.
2017-02-08 23:53:03 +00:00
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
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
9cc02d1498
Trying to avoid the occasional newline by saving the last cell on screen
...
is not actually helping us much and just adds complexity, so don't
bother.
2017-02-08 08:50:10 +00:00
35a0606de1
Remove event watermarks, don't work well enough to be worth it.
2017-02-08 08:25:12 +00:00
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
68e04907de
Do not go through the whole attributes setting process if the new cell
...
is the same as the previous one.
2017-02-06 19:45:23 +00:00
10e14ae504
Add BCE for clear to start of screen, which was somehow missed.
2017-02-06 19:26:49 +00:00
e67548dc36
Cancel key table when switching session, unless the key is going to
...
repeat. Reported by Amos Bird.
2017-02-06 15:00:41 +00:00
3fd34e70e5
Only redraw the modified character when adding combining characters, not
...
the whole line.
2017-02-06 13:23:00 +00:00
5e6a8177e5
Cache status line position to reduce option lookups during output.
2017-02-03 21:01:02 +00:00
7d23d019c0
Add a window or pane id "tag" to each format tree and use it to separate
...
jobs, this means that if the same job is used for different windows or
panes (for example in pane-border-format), it will be run separately for
each pane.
2017-02-03 11:57:27 +00:00
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
3408595f77
When a flag option is used in a format, it should use the number form
...
not string.
2017-01-30 21:41:17 +00:00
163732e89f
Revert previous for now, it will break TERM=screen.
2017-01-25 14:36:08 +00:00
0a63ab4f0f
If xterm-keys is on, use xterm(1) style keys for Home and End as well as
...
modified keys.
2017-01-25 14:24:54 +00:00
4b2821ff98
Make update-environment an array as well.
2017-01-24 20:15:32 +00:00
85338bb75f
Add support for custom command aliases, this is an array option which
...
contains items of the form "alias=command". This is consulted when an
unknown command is parsed.
2017-01-24 19:53:37 +00:00
61fce272ea
If given an array option without an index either show or set all items,
...
and support -a for array options. Allow the separator for set to be
specified in the options table (will be used for backwards compatibility
later).
2017-01-24 19:11:46 +00:00
98e7fbb2ac
Open /dev/ptm before pledge() and save it to be used for PTMGET later
...
(this means inlining forkpty()).
ok deraadt
2017-01-23 10:09:43 +00:00
faa0570309
Plain stravis() because it will mangle UTF-8 characters, so add
...
utf8_stravis() which calls our existing utf8_strvis() and use it instead
2017-01-18 10:08:05 +00:00
ef15b4195f
Revert WIP parts of previous I didn't mean to commit yet.
2017-01-16 14:52:25 +00:00
68db958477
getopt() has a struct option so just return to using options_entry.
2017-01-16 14:49:14 +00:00
52847a9518
It is silly for cmd_list_parse to return an integer error when it could
...
just return NULL.
2017-01-15 22:00:56 +00:00
2b0bc9f1c5
Major tidy up and rework of options tree and set-option/show-options
...
commands this pushes more of the code into options.c and ties it more
closely to the options table rather than having an unnecessary
split. Also add support for array options (will be used later). Only
(intentional) user visible change is that show-options output is now
passed through vis(3) with VIS_DQ so quotes are escaped.
2017-01-15 20:48:41 +00:00
08d21936e4
options_get_style return const too.
2017-01-13 11:58:49 +00:00
95950bf668
Add -E to detach-client to exec a command to replace the client instead
...
of exiting it, useful if tmux wasn't exec'd itself. From Jenna Magius.
2017-01-13 10:12:12 +00:00
24cba5907b
Simplify appending to string options.
2017-01-12 15:36:35 +00:00
dad3090d32
Put all palette functions together in the file.
2017-01-12 10:15:55 +00:00
9e786030df
Fix setting the palette of aixterm colours (90-97).
2017-01-12 00:19:32 +00:00
bf6a5c056d
Add a format for terminal type.
2017-01-11 16:09:57 +00:00
7497ecd979
Use a macro for looking up tty types.
2017-01-11 16:05:46 +00:00
458b6eb600
Some tidying and tweaks to options code.
2017-01-11 14:56:44 +00:00
844f2eacf4
Add simple comparisons in formats: #{==:a,b} and #{!=:a,b} ("a" and "b"
...
are expanded so can compare formats). And expand the condition to
#{?a,b,c} (the "a" part) if it doesn't work as a simple lookup.
Also add FORMAT_NOJOBS flag to disable jobs in a format.
2017-01-09 21:03:25 +00:00
5330a2a85d
Run the source-file pattern through glob(3).
2017-01-09 19:27:00 +00:00
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
461217d0f0
Incremental search in copy mode (on for emacs keys by default) - much
...
the same as normal searching but updates the cursor position and marked
search terms as you type. C-r and C-s in the prompt repeat the search,
once finished searching (with Enter), N and n work as before.
2017-01-06 11:57:03 +00:00
9a56671a75
Highlight all occurrences of search string after searching in copy mode.
2017-01-05 09:07:15 +00:00
70ba3c147f
Fix the prefer unattached session behaviour of
...
attach-session/switch-client, reported by Thomas Sattle.
2016-12-28 10:34:34 +00:00
6f8cedb1bc
The mouse valid flag needs to be correct before we fire the dragging
...
callback, so move the callback outside of server_client_check_mouse and
use a new special key code to indicate it.
2016-11-24 18:45:45 +00:00