Thomas Adam
21d8f77a0d
Merge branch 'obsd-master'
2017-01-25 16:01:13 +00:00
nicm
163732e89f
Revert previous for now, it will break TERM=screen.
2017-01-25 14:36:08 +00:00
nicm
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
Thomas Adam
418ab1a553
Merge branch 'obsd-master'
2017-01-24 22:01:13 +00:00
nicm
4b2821ff98
Make update-environment an array as well.
2017-01-24 20:15:32 +00:00
Thomas Adam
f38a6bbd81
Merge branch 'obsd-master'
2017-01-24 20:01:12 +00:00
nicm
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
nicm
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
Thomas Adam
b3a724f30c
Merge branch 'obsd-master'
...
Conflicts:
Makefile
tmux.c
2017-01-23 12:20:43 +00:00
nicm
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
Thomas Adam
044999ce6d
Merge branch 'obsd-master'
2017-01-18 12:01:11 +00:00
nicm
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
Thomas Adam
7e110b9d99
Merge branch 'obsd-master'
2017-01-16 15:36:02 +00:00
nicm
ef15b4195f
Revert WIP parts of previous I didn't mean to commit yet.
2017-01-16 14:52:25 +00:00
nicm
68db958477
getopt() has a struct option so just return to using options_entry.
2017-01-16 14:49:14 +00:00
Thomas Adam
7b60645732
Merge branch 'obsd-master'
2017-01-16 00:01:10 +00:00
Thomas Adam
c9fcb76651
Merge branch 'obsd-master'
2017-01-15 22:01:11 +00:00
nicm
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
nicm
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
Thomas Adam
780dd7ac82
Merge branch 'obsd-master'
2017-01-13 14:01:13 +00:00
Thomas Adam
2311bbd28a
Merge branch 'obsd-master'
2017-01-13 12:01:12 +00:00
nicm
08d21936e4
options_get_style return const too.
2017-01-13 11:58:49 +00:00
nicm
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
Thomas Adam
d4cb178249
Merge branch 'obsd-master'
2017-01-12 16:01:13 +00:00
nicm
24cba5907b
Simplify appending to string options.
2017-01-12 15:36:35 +00:00
Thomas Adam
1eb9500644
Merge branch 'obsd-master'
2017-01-12 12:01:10 +00:00
nicm
dad3090d32
Put all palette functions together in the file.
2017-01-12 10:15:55 +00:00
Thomas Adam
4a76861925
Merge branch 'obsd-master'
2017-01-12 02:01:11 +00:00
nicm
9e786030df
Fix setting the palette of aixterm colours (90-97).
2017-01-12 00:19:32 +00:00
Thomas Adam
d87ab0cadf
Merge branch 'obsd-master'
2017-01-11 18:01:13 +00:00
nicm
bf6a5c056d
Add a format for terminal type.
2017-01-11 16:09:57 +00:00
nicm
7497ecd979
Use a macro for looking up tty types.
2017-01-11 16:05:46 +00:00
Thomas Adam
0d19d78fff
Merge branch 'obsd-master'
2017-01-11 16:01:16 +00:00
nicm
458b6eb600
Some tidying and tweaks to options code.
2017-01-11 14:56:44 +00:00
Thomas Adam
2c862b04af
Merge branch 'obsd-master'
2017-01-09 22:01:12 +00:00
nicm
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
Thomas Adam
95f5d406e5
Merge branch 'obsd-master'
2017-01-09 20:01:12 +00:00
nicm
5330a2a85d
Run the source-file pattern through glob(3).
2017-01-09 19:27:00 +00:00
Thomas Adam
29e64a8c64
Merge branch 'obsd-master'
2017-01-07 16:01:17 +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
Thomas Adam
a3428487a7
Merge branch 'obsd-master'
2017-01-06 14:01:15 +00:00
nicm
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
Thomas Adam
58642011df
Merge branch 'obsd-master'
2017-01-05 10:01:11 +00:00
nicm
9a56671a75
Highlight all occurrences of search string after searching in copy mode.
2017-01-05 09:07:15 +00:00
Thomas Adam
d3328a3b1e
Merge branch 'obsd-master'
2016-12-28 12:01:14 +00:00
nicm
70ba3c147f
Fix the prefer unattached session behaviour of
...
attach-session/switch-client, reported by Thomas Sattle.
2016-12-28 10:34:34 +00:00
Thomas Adam
2864a31311
Merge branch 'obsd-master'
2016-11-24 20:01:10 +00:00
nicm
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
Thomas Adam
a02d95a313
Merge branch 'obsd-master'
2016-11-24 16:01:11 +00:00
nicm
7e6c2cb238
Make the selection able to exist independent of the cursor position, so
...
that it is not affected by scrolling. If MouseDragEnd1Pane is bound to
the new "stop-selection" command:
bind -Tcopy-mode MouseDragEnd1Pane stop-selection
A selection made with the mouse will stay as it is after button 1 is
released. (It also works bound to a key.)
From Artem Fokin.
2016-11-24 13:38:44 +00:00
Thomas Adam
8a8001350d
Merge branch 'obsd-master'
2016-11-23 18:01:19 +00:00
nicm
6de466cf8b
For mouse keys, use the mouse pane as the default current pane.
2016-11-23 17:01:24 +00:00
Thomas Adam
12c49fa3bd
Merge branch 'obsd-master'
2016-11-16 02:01:11 +00:00
nicm
e88b74350f
The target validity check used window_pane_visible but that may be false
...
if the pane is zoomed, so instead add a new function to just check if
the pane is actually on screen (most commands still want to accept panes
invisible by zoom). Also reject panes outside the window for various
special targets. Problem reported by Sean Haugh.
2016-11-16 00:24:03 +00:00
Thomas Adam
1afe9e98de
Merge branch 'obsd-master'
2016-11-15 16:01:10 +00:00
nicm
c34a79b152
Turn on margins, with a couple of fixes (only limit to the pane for line
...
feeds, and do not move cursor to end for full width panes).
2016-11-15 15:17:28 +00:00
nicm
0ace779cde
Initial attempt to make use of left and right margins if the terminal
...
supports them (that is, if it advertises itself as a VT420 - probably
just xterm). These are the vertical equivalent of the scroll region and
allow much faster scrolling of panes that do not take up the full width
of the terminal.
2016-11-15 14:02:32 +00:00
Thomas Adam
1de107c405
Merge branch 'obsd-master'
2016-11-04 16:01:11 +00:00
nicm
353439acee
enum values need to fit in 32 bits; we only use enum for numbering and
...
Unicode characters fit in 24 bits, so we can leave key_code as 64 bits
and change KEYC_BASE down to 0x10000000.
2016-11-04 14:47:38 +00:00
Thomas Adam
28a31201d3
Merge branch 'obsd-master'
2016-10-19 12:01:11 +01:00
nicm
899e629bf0
Alerts are too slow, so rather than walking all sessions and windows,
...
add a link of winlinks to each window and a pointer to the session to
each winlink. Also rewrite the alerts processing to return to the old
behaviour (alert in any window sets the flag on any winlink).
2016-10-19 09:22:07 +00:00
Thomas Adam
8576ecaf32
Merge branch 'obsd-master'
2016-10-18 12:01:10 +01:00
nicm
2e5c49a1fd
Give each item on queue a name for better logging.
2016-10-18 08:46:43 +00:00
Thomas Adam
d54e990c4f
Merge branch 'obsd-master'
2016-10-17 00:01:11 +01:00
nicm
fe106842c8
Use notifys for alerts too.
2016-10-16 22:18:04 +00:00
nicm
41e633acf5
Use the notify name string instead of going via an enum and change
...
existing hooks to use notifys instead.
2016-10-16 22:06:40 +00:00
Thomas Adam
1a6e696b08
Merge branch 'obsd-master'
2016-10-16 22:01:14 +01:00
nicm
3f35b5299f
Provide a way for hooks to tag formats onto the commands they fire so
...
that the user can get at additional information - now used for the
"hook" format, more to come.
2016-10-16 19:36:37 +00:00
nicm
026ad08b56
Notifys can go via the command queue instead of using their own queue.
2016-10-16 19:15:02 +00:00
nicm
b342bd0b46
Mass rename struct cmd_q to struct cmdq_item and related.
2016-10-16 19:04:05 +00:00
Thomas Adam
c67b702588
Merge branch 'obsd-master'
2016-10-16 20:01:10 +01:00
nicm
ddc4512d2e
Rewrite command queue handling. Each client still has a command queue,
...
but there is also now a global command queue. Instead of command queues
being dispatched on demand from wherever the command happens to be
added, they are now all dispatched from the top level server
loop. Command queues may now also include callbacks as well as commands,
and items may be inserted after the current command as well as at the end.
This all makes command queues significantly more predictable and easier
to use, and avoids the complex multiple nested command queues used by
source-file, if-shell and friends.
A mass rename of struct cmdq to a better name (cmdq_item probably) is
coming.
2016-10-16 17:55:14 +00:00
Thomas Adam
59d1147469
Merge branch 'obsd-master'
2016-10-15 12:01:14 +01:00
nicm
e7990375cb
Give window_create and window_create1 better names.
2016-10-15 09:27:52 +00:00
Thomas Adam
623e54788e
Merge branch 'obsd-master'
2016-10-15 02:01:12 +01:00
nicm
3f138dc40c
Rename a function for consistency and some spacing nits.
2016-10-15 00:12:58 +00:00
nicm
63b2547a02
Fire hooks on the simple notifys (window-renamed and session-renamed),
...
the complicated ones get no hooks for now (more to come).
2016-10-15 00:09:30 +00:00
nicm
9b3ae84993
Drain notifys once at the end of the server loop instead of doing it
...
from the end of every command queue (which could be nested).
2016-10-15 00:01:01 +00:00
Thomas Adam
117737c6ca
Merge branch 'obsd-master'
2016-10-14 02:01:14 +01:00
nicm
4289a1ebfa
Trying to do hooks generically is way too complicated and unreliable and
...
confusing, particularly trying to automatically figure out what target
hooks should be using. So simplify it:
- drop before hooks entirely, they don't seem to be very useful;
- commands with special requirements now fire their own after hook (for
example, if they change session or window, or if they have -t and -s
and need to choose which one the hook uses as current target);
- commands with no special requirements can have the CMD_AFTERHOOK flag
added and they will use the -t state.
At the moment new-session, new-window, split-window fire their own hook,
and display-message uses the flag. The remaining commands still need to
be looked at.
2016-10-13 22:48:51 +00:00
Thomas Adam
ad5a561adb
Merge branch 'obsd-master'
2016-10-13 22:01:12 +01: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
Thomas Adam
6270392d04
Merge branch 'obsd-master'
2016-10-13 12:01:11 +01:00
nicm
4d9e6ea310
Some improvements and bug fixes for hooks:
...
- Prepare the state again before the "after" hooks are run, because the
command may have killed or moved windows.
- Use the hooks list from the newly prepared target, not the old hooks
list (only matters for new-session really).
- Correctly detect an invalid current state and ignore it in
cmd_find_target ("killw; swapw").
- Change neww, new, killp, killw, splitw, swapp, swapw to update the
current state (used if no explicit target is given) to something more
useful after they have finished. For example, neww changes it to the
newly created window.
Hooks are still relatively new and primitive so there are likely to be
more changes to come.
Parts based on bug reports from Uwe Werler and Iblis Lin.
2016-10-13 10:01:49 +00:00
Thomas Adam
6551f4bb3b
Merge branch 'obsd-master'
...
Conflicts:
paste.c
2016-10-13 08:09:47 +01:00
nicm
40253048ca
bind-key -c has gone, remove from man page, and unused table declarations.
2016-10-12 15:26:37 +00:00
nicm
c484c5a2a1
Drop the edit mode key tables and just use fixed key bindings for the
...
command prompt.
2016-10-12 14:50:14 +00:00
nicm
4160df4ca4
Redraw selection in tty_draw_line, so it appears when redrawing whole
...
pane. Reported by Theo Buehler.
2016-10-12 13:24:07 +00:00
nicm
68bebe1fb7
The repeat prompt in both emacs and vi (and the old one in tmux) doesn't
...
support line editing and instead executes a command as soon as a
non-number key is pressed. Add a -N flag to command-prompt for the same
in copy mode. Reported by Theo Buehler.
2016-10-12 13:03:27 +00:00
Thomas Adam
b9dc855016
Merge branch 'obsd-master'
...
Conflicts:
format.c
osdep-openbsd.c
2016-10-12 09:45:49 +01:00
nicm
5c49e1d0c1
Some other stuff that can be local to one file.
2016-10-11 13:45:47 +00:00
nicm
e45401846f
Add static in window-*.c and move some internal functions out of tmux.h.
2016-10-11 13:21:59 +00:00
nicm
85d7afaefc
Support double and triple clicks (they are cumulative, so double is
...
fired then triple), and use for select-word and select-line in copy
mode. Inspired by a different solution from Omar Sandoval.
2016-10-11 09:30:36 +00:00
nicm
76d6d3641f
Fundamental change to how copy mode key bindings work:
...
The vi-copy and emacs-copy mode key tables are gone, and instead copy
mode commands are bound in one of two normal key tables ("copy-mode" or
"copy-mode-vi"). Keys are bound to "send-keys -X copy-mode-command". So:
bind -temacs-copy C-Up scroll-up
bind -temacs-copy -R5 WheelUpPane scroll-up
Becomes:
bind -Tcopy-mode C-Up send -X scroll-up
bind -Tcopy-mode WheelUpPane send -N5 -X scroll-up
This allows the full command parser and command set to be used - for
example, we can use the normal command prompt for searching, jumping,
and so on instead of a custom one:
bind -Tcopy-mode C-r command-prompt -p'search up' "send -X search-backward '%%'"
command-prompt also gets a -1 option to only require on key press, which
is needed for jumping.
The plan is to get rid of mode keys entirely, so more to come eventually.
2016-10-11 07:23:34 +00:00
nicm
8b804fb589
Support UTF-8 entry into the command prompt.
2016-10-11 07:11:40 +00:00
Thomas Adam
27126f8797
Merge branch 'obsd-master'
2016-10-10 20:01:11 +01:00
nicm
66b5477cc1
Do not allow the opposite pane to resize when dragging with the mouse
...
because it is not possible to keep the mouse on the border when the
minimum size is reached.
2016-10-10 17:28:30 +00:00
Thomas Adam
226b6a2192
Merge branch 'obsd-master'
2016-10-10 16:01:12 +01:00
nicm
7d4b416fe6
Some more static.
2016-10-10 13:54:47 +00:00
Thomas Adam
215d3f8c0d
Merge branch 'obsd-master'
2016-10-09 18:01:10 +01:00
nicm
b8f2dd8237
Make the CLIENT_STATUS flag imply that pane status lines are redrawn if
...
they are enabled and break the actual screen generation code into a
separate function. Fixes problems reported by Romain Francoise.
2016-10-09 16:24:34 +00:00
Thomas Adam
5b8f033e06
Merge branch 'obsd-master'
2016-10-05 14:01:10 +01:00
nicm
4117a7ed19
Keep buffer creation time and add accessors for it and the order number.
2016-10-05 12:34:05 +00:00
Thomas Adam
27591570c4
Merge branch 'obsd-master'
2016-09-28 10:01:11 +01:00
nicm
acacb718e5
Rate limit TIOCSWINSZ on a timer to avoid programs getting hammered with
...
SIGWINCH when the size changes rapidly. To help a problem reported by
Rui Pinheiro.
2016-09-28 08:30:44 +00:00
Thomas Adam
895f1d93d5
Merge branch 'obsd-master'
2016-09-16 16:01:16 +01:00
nicm
eb50e7a2c8
Swap watermarks from high (4096) to low (128) when we get full buffers
...
into the read callback several times in succession; swap back when we
see empty buffers several times. This hopefully limits how much programs
that print a lot for a long period can monopolize tmux (like large, fast
compiling), without penalizing programs that print a lot briefly (like
most curses applications). Helps a lot for me, the actual numbers may
need tweaking later.
2016-09-16 13:43:41 +00:00
Thomas Adam
a5b29a1250
Merge branch 'obsd-master'
2016-09-12 18:01:12 +01:00
nicm
2e5584c2b4
Allow repeat count to be specified in mode key tables with bind-key -R,
...
and set the default repeat count to 5 for WheelUp and WheelDown in
copy-mode.
2016-09-12 15:40:58 +00:00
Thomas Adam
f68a908c8a
Merge branch 'obsd-master'
2016-09-04 20:01:16 +01:00
nicm
fed1e384ad
Add support for performing a full width split (with splitw -f), rather
...
than splitting the current cell. From Stephen Kent.
2016-09-04 17:37:06 +00:00
Thomas Adam
999c1c771b
Merge branch 'obsd-master'
2016-09-03 00:01:14 +01:00
nicm
2627ab322e
Remember the number of lines scrolled into the history (versus cleared
...
into the history) and when resizing only use scrolled lines and not
cleared lines (which are probably not intended to reappear). From
Chaoren Lin.
2016-09-02 20:57:20 +00:00
Thomas Adam
baf1550227
Merge branch 'obsd-master'
2016-08-03 12:01:11 +01:00
nicm
f8cc48a43f
Fix minimum size when pane status line is enabled, reported by Y Petremann.
2016-08-03 09:07:02 +00:00
Thomas Adam
a24260bb23
Merge branch 'obsd-master'
2016-07-15 12:01:10 +01:00
nicm
9436a31603
Tweak output of environment logging.
2016-07-15 09:52:34 +00:00
nicm
1718420c48
Log environment to new panes.
2016-07-15 09:28:32 +00:00
Thomas Adam
d4eeeb5498
Merge branch 'obsd-master'
2016-07-15 04:01:12 +01:00
nicm
0f73af876f
Don't update cells in each block of data read from a pane immediately,
...
instead track them as change (dirty) and update them once at the end,
saves much time if repeatedly writing the same cell. Also fix comparison
of cells being equal in a few places (memcmp is not enough).
2016-07-15 00:49:08 +00:00
Thomas Adam
93f42d360b
Merge branch 'obsd-master'
2016-06-16 14:01:11 +01:00
nicm
325cbe90d9
Allow a command to be specified to display-panes, similar to
...
command-prompt, rather than always just selecting the pane.
2016-06-16 10:55:47 +00:00
Thomas Adam
5c12230a08
Merge branch 'obsd-master'
2016-06-15 12:01:11 +01:00
nicm
bee3e3e28d
Copy mode needs to keep the original grid intact so it can copy from it
...
if needed, so it disables reading from the pane. This can be problem
with some programs. So make tmux automatically exit all modes after 180
seconds of inactivity and if there is pending output.
2016-06-15 09:13:46 +00:00
Thomas Adam
cc096ae929
Merge branch 'obsd-master'
2016-06-06 10:01:11 +01:00
nicm
aba4438013
Cache selected state so that cells going from selected to unselected are not
...
skipped, reported by Omar Sandoval.
2016-06-06 07:28:52 +00:00
nicm
00cf5fbde6
Insert new panes after the pane being split in the list rather than
...
always after the active pane. This is more sensible when doing it with
commands rather than keys.
2016-06-06 07:24:31 +00:00
Thomas Adam
c7a0f56c71
Merge branch 'obsd-master'
2016-05-30 12:01:13 +01:00
nicm
1921fac814
Cache the window styles and do not look up the window-style options
...
unless they have changed.
2016-05-30 09:50:20 +00:00
Thomas Adam
a2e0db67cc
Merge branch 'obsd-master'
2016-05-27 20:01:11 +01:00
nicm
fcb00a4161
Use getprogname() instead of __progname to make portability easier.
2016-05-27 17:05:42 +00:00
Thomas Adam
6cb74f4b7d
Merge branch 'obsd-master'
2016-05-12 18:01:10 +01:00
tim
fdd368a294
- Rework load_cfg() error handling a little.
...
- Add -q to source-file to suppress errors about nonexistent files.
Input and OK nicm@
2016-05-12 16:05:33 +00:00
Thomas Adam
96538b489b
Merge branch 'obsd-master'
2016-05-01 16:01:11 +01:00
nicm
4a6eca5bd7
Use the same code for half page scrolling as full, from Michal Mazurek.
2016-05-01 13:39:05 +00:00
Thomas Adam
fe4ef307b7
Merge branch 'obsd-master'
2016-05-01 14:01:12 +01:00
nicm
88bd5b15ff
tty_client_ready can not be internal to tty.c again.
2016-04-30 18:59:02 +00:00
Thomas Adam
55d472a9fe
Merge branch 'obsd-master'
2016-04-29 18:01:09 +01:00
Thomas Adam
ba9f32b464
Merge branch 'obsd-master'
2016-04-29 16:01:12 +01:00
nicm
0509be0740
Add option to include status text in the pane borders. If
...
pane-border-status is set to "top" or "bottom" (rather than "off"),
every pane has a permanent top or bottom border containing the text from
pane-border-format.
Based on a diff sent long ago by Jonathan Slenders, mostly rewritten and
simplified by me.
2016-04-29 15:00:48 +00:00
nicm
c5443da2d3
The backoff timer is causing no end of trouble with disconnected clients
...
stopping data in attached ones. So get rid of it and see how we get on
with just a high watermark on each pane.
2016-04-29 13:36:10 +00:00
nicm
5f2bfd9807
Make the grid_cell passed into screen_write_* const.
2016-04-29 13:21:33 +00:00
Thomas Adam
55fdaab365
Merge branch 'obsd-master'
2016-04-27 12:01:10 +01:00
nicm
1cedf78284
Add next/previous paragraph, from J Raynor.
2016-04-27 09:39:09 +00:00
Thomas Adam
ed598e9fe1
Merge branch 'obsd-master'
2016-03-18 08:01:18 +00:00
nicm
fa97b0a95b
Instead of reusing MouseUp at the finish of a drag, add a new key
...
MouseDragEnd. It can be useful to bind them separately in copy mode.
2016-03-18 07:28:27 +00:00
Thomas Adam
e304673c65
Merge branch 'obsd-master'
...
Conflicts:
utf8.c
2016-03-02 18:10:51 +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
26945d7956
Use system wcwidth() instead of carrying around UTF-8 width tables.
2016-03-01 12:02:08 +00:00
Thomas Adam
5fce21728e
Merge branch 'obsd-master'
2016-01-31 12:01:09 +00:00
nicm
fa64b89ad7
Whoops, need this for the previous reverse trim commit too.
2016-01-31 09:57:41 +00:00
Thomas Adam
8cf1504ba6
Merge branch 'obsd-master'
2016-01-29 12:01:16 +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
Thomas Adam
dc42c35f1f
Merge branch 'obsd-master'
2016-01-19 18:01:15 +00:00
nicm
b5b5221c13
Split out getting the current state from the target search so it can be
...
replaced if we already know the current.
2016-01-19 16:01:30 +00:00
nicm
995af0e2b7
I no longer use my SourceForge address so replace it.
2016-01-19 15:59:12 +00:00
Thomas Adam
5d21faa99c
Merge branch 'obsd-master'
2016-01-16 02:01:10 +00:00
nicm
c9815307eb
Add hooks for alerts (bell, silence, activity), from Thomas Adam.
2016-01-16 00:36:53 +00:00
Thomas Adam
506adf3764
Merge branch 'obsd-master'
2016-01-15 12:01:11 +00:00
nicm
68d797587e
A couple of missing printflike attributes, from Andrey Starodubtsev.
2016-01-15 11:31:47 +00:00
Thomas Adam
e0cae08c04
Merge branch 'obsd-master'
2015-12-17 00:01:08 +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
Thomas Adam
e5caf64815
Merge branch 'obsd-master'
2015-12-15 14:01:12 +00:00
nicm
ac9778395f
Some hooks API changes to fire a hook while waiting another cmdq and
...
infrastructure that will be needed soon.
2015-12-15 13:43:07 +00:00
Thomas Adam
1a33ea9671
Merge branch 'obsd-master'
2015-12-15 02:01:14 +00:00
Thomas Adam
6ab17e3e15
Merge branch 'obsd-master'
2015-12-15 00:01:08 +00:00
nicm
12da13c9d1
Make the marked pane a cmd_find_state.
2015-12-15 00:00:01 +00:00
nicm
d5999f8b5c
Use cmd_find_clear_state instead of an extra function doing the same.
2015-12-14 23:30:58 +00:00
Thomas Adam
bc6137f9e4
Merge branch 'obsd-master'
2015-12-14 01:30:15 +00:00
nicm
a3129fd4e8
Instead of combined flags for -c, -s, -t, split into different sets
...
using an enum and simplify the parsing code.
2015-12-14 00:31:54 +00:00
Thomas Adam
5caec3020d
Merge branch 'obsd-master'
2015-12-13 23:46:58 +00:00
nicm
ecfeee2e82
Use member names in cmd_entry definitions so I stop getting confused
...
about the order.
2015-12-13 21:53:57 +00:00
Thomas Adam
00da99f2c4
Merge branch 'obsd-master'
2015-12-13 20:01:09 +00:00
nicm
72948d9f1d
-c needs to be able for fail for display-message.
2015-12-13 18:31:47 +00:00
Thomas Adam
d37a580085
Merge branch 'obsd-master'
2015-12-13 18:01:11 +00:00
nicm
9f5aca62a9
Use struct cmd_find_state directly and remove cmd_state_flag, also
...
change so that winlink is set even if an index is too.
2015-12-13 17:55:14 +00:00
nicm
9b7697db62
Change cmd_find_target to use a state struct from the caller.
2015-12-13 16:44:35 +00:00
Thomas Adam
ae5ddfdc1a
Merge branch 'obsd-master'
2015-12-13 16:01:13 +00:00
nicm
ff599f4004
Remove the cmd_find_{session,window,pane,index} functions (which are
...
just wrappers around cmd_find_target) and just use cmd_find_target
directly.
2015-12-13 15:32:12 +00:00
nicm
4a4daf1303
Instead of every command resolving the target (-t or -s) itself, prepare
...
the state (client, session, winlink, pane) for it it before entering the
command. Each command provides some flags that tell the prepare step
what it is expecting.
This is a requirement for having hooks on commands (for example, if you
hook "select-window -t1:2", the hook command should to operate on window
1:2 not whatever it thinks is the current window), and should allow some
other target improvements.
The old cmd_find_* functions remain for the moment but that layer will
be dropped later.
Joint work with Thomas Adam.
2015-12-13 14:32:38 +00:00
Thomas Adam
845a664bb2
Merge branch 'obsd-master'
2015-12-12 20:01:15 +00:00
nicm
5ed17e84fa
Add key-table option to set the default key table for a session, allows
...
different key bindings for different sessions and a few other things.
2015-12-12 18:32:24 +00:00
nicm
39cf9c9d31
Allow prefix and prefix2 to be set to None to disable (useful if you
...
would rather bind the prefix in the root table).
2015-12-12 18:19:00 +00:00
Thomas Adam
2a6b215328
Merge branch 'obsd-master'
2015-12-11 18:01:11 +00:00
nicm
88bc8f3528
Style nits and line wrapping of function declarations.
2015-12-11 16:37:21 +00:00
Thomas Adam
2a3456cd3b
Merge branch 'obsd-master'
2015-12-11 16:01:16 +00:00
nicm
bd5918760e
We cannot do hooks_find and then hooks_remove because it might have come
...
from the parent (global) tree, instead make it remove by name like options.
While here, also tidy up a few bits of options and hooks handling (use
RB_FOREACH_SAFE, and a helper function for the free).
2015-12-11 15:46:57 +00:00
Thomas Adam
4909a70174
Merge branch 'obsd-master'
2015-12-11 13:24:45 +00:00
nicm
01831da5f5
Add cmdq as an argument to format_create and add a format for the
...
command name (will also be used for more later).
2015-12-11 12:27:36 +00:00
Thomas Adam
af8134a6ff
Merge branch 'obsd-master'
2015-12-08 10:01:16 +00:00
nicm
e0f26dcda3
Remove format_create_flags and just pass flags to format_create.
2015-12-08 08:34:18 +00:00
nicm
8f671d3eef
Spacing nits.
2015-12-08 08:14:04 +00:00
Thomas Adam
5862f59ed7
Conflicts:
...
Makefile
2015-12-08 07:11:09 +00:00
nicm
d2fb0efcd1
Add hooks infrastructure, basic commands (set-hook, show-hooks) and a
...
couple of not very useful client hooks. This will eventually let
commands be run at various points and on notifications. Joint work with
Thomas Adam.
2015-12-08 01:10:31 +00:00
Thomas Adam
bac8c72381
Merge branch 'obsd-master'
2015-12-07 10:01:09 +00:00
nicm
b9563340b7
Fix bell indicators across detach, reported by Torbjorn Lonnemark, diff
...
from Thomas Adam.
2015-12-07 09:47:41 +00:00
Thomas Adam
9fe8b28746
Merge branch 'obsd-master'
2015-11-27 15:41:28 +00:00
nicm
6a2ca34216
Do not set a limit on the length of commands when printing them.
2015-11-27 15:06:43 +00:00
Thomas Adam
890d8da2e3
Merge branch 'obsd-master'
...
Conflicts:
log.c
proc.c
tmux.c
2015-11-25 16:37:30 +00:00
nicm
62d3af17f9
Make environ_set va_args and use it to tidy up some calls. Also add a
...
missing word in manpage (from jmc).
2015-11-24 23:46:15 +00:00
nicm
3ff46b2e43
Shell command from -c doesn't have to be global, pass it as an argument.
2015-11-24 23:22:51 +00:00
nicm
c913fb99b6
Tidy the code that works out the socket path, and just use the full path
...
in the global socket_path rather than copying it.
2015-11-24 22:27:22 +00:00
nicm
1e2df2d464
Remove the -I part of show-messages which isn't really that useful; the
...
server start time can now be accessed with a new start_time format (use:
tmux display -p '#{t:start_time}')
2015-11-24 21:52:06 +00:00
nicm
9cccb8c115
Make the log stuff a bit tidier with some helper functions.
2015-11-24 21:19:46 +00:00
Thomas Adam
534f9e3ab1
Merge branch 'obsd-master'
2015-11-24 10:01:13 +00:00
nicm
b32ce34cf2
Don't allow options in table without scope set.
2015-11-24 09:34:55 +00:00
Thomas Adam
3f47ff6ecd
Merge branch 'obsd-master'
2015-11-24 00:01:16 +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
Thomas Adam
b642b3c8e3
Merge branch 'obsd-master'
2015-11-23 21:21:12 +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
Thomas Adam
78a00c845c
Merge branch 'obsd-master'
...
Conflicts:
tmux.h
2015-11-21 14:24:33 +00:00
nicm
fce56c56ef
Instead of separate tables for different types of options, give each
...
option a scope type (server, session, window) in one table.
2015-11-20 12:01:19 +00:00
nicm
374e273df5
Only assume pasting with at least two characters, reduces problems for
...
people who can type ^B c very fast, or who are using tmux inside
something else that buffers.
2015-11-19 22:46:46 +00:00
Thomas Adam
7fe8edc396
Merge branch 'obsd-master'
2015-11-18 16:01:23 +00:00
nicm
577c0e3e5a
Use __unused rather than rolling our own.
2015-11-18 14:27:44 +00:00
Thomas Adam
8fa822b521
Merge branch 'obsd-master'
2015-11-18 14:01:12 +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
Thomas Adam
1686a15fb6
Merge branch 'obsd-master'
2015-11-16 00:01:10 +00:00
nicm
661d0dfac9
Make key_code unsigned long long not uint64_t which is more portable for
...
printf formats, and move UTF8_SIZE define down to near the rest of the
UTF-8 bits.
2015-11-15 22:50:38 +00:00
Thomas Adam
f12d7f0d4b
Merge branch 'obsd-master'
2015-11-14 12:01:09 +00:00
nicm
205d15e82d
All these return values from utf8_* are confusing, use an enum.
2015-11-14 11:45:43 +00:00
Thomas Adam
7b4b78b419
Merge branch 'obsd-master'
2015-11-14 11:38:52 +00:00
Thomas Adam
7b749eff35
Merge branch 'obsd-master'
...
Conflicts:
server.c
tmux.c
2015-11-14 11:38:30 +00:00
nicm
64333e3ef8
Be more strict about invalid UTF-8.
2015-11-14 10:56:31 +00:00
nicm
c56b81a2ce
Push stdout and stderr to clients more aggressively, and add an event to
...
continue if the send fails.
2015-11-14 09:41:06 +00:00
Thomas Adam
3df4959f51
Merge branch 'obsd-master'
...
Conflicts:
Makefile
2015-11-13 10:42:45 +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
Thomas Adam
4f88344df3
Merge branch 'obsd-master'
2015-11-12 14:01:14 +00:00
nicm
a209ea3953
Add utf8_padcstr and use it to align columns in list-keys.
2015-11-12 12:43:36 +00:00
nicm
d6daf37df4
Tidy utf8.c a little: build table on first use, and make utf8_width take
...
a u_int rather than splitting and then combining again in utf8_split.
2015-11-12 12:19:57 +00:00
Thomas Adam
5f483499f3
Merge branch 'obsd-master'
2015-11-12 12:01:17 +00:00
nicm
c41673f3fa
If we know the terminal outside tmux is not UTF-8, replace UTF-8 in
...
error messages and whatnot with underscores the same as we do when we
draw UTF-8 characters as part of the screen.
2015-11-12 11:10:50 +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
69e0b8326a
Support UTF-8 key bindings by expanding the key type from int to
...
uint64_t and converting UTF-8 to Unicode on input and the reverse on
output. (This allows key bindings, there are still omissions - the
largest being that the various prompts do not accept UTF-8.)
2015-11-12 11:05:34 +00:00
Thomas Adam
c975de2e07
Merge branch 'obsd-master'
...
Conflicts:
server.c
2015-10-31 23:56:35 +00:00
nicm
abb4e9e2fa
The output log is only useful once and it means creating a file, so open
...
it once at startup instead of in every call to tty_open.
2015-10-31 13:12:03 +00:00
Thomas Adam
17f6c3be8e
Merge branch 'obsd-master'
2015-10-31 10:01:12 +00:00
nicm
01defc9f49
Because pledge(2) does not allow us to pass directory file descriptors
...
around, we can't use file descriptors for the working directory because
we will be unable to pass it to a privileged process to tell it where to
read or write files or spawn children. So move tmux back to using
strings for the current working directory. We try to check it exists
with access() when it is set but ultimately fall back to ~ if it fails
at time of use (or / if that fails too).
2015-10-31 08:13:58 +00:00
Thomas Adam
a5e4d3a2d8
Merge branch 'obsd-master'
2015-10-28 12:01:11 +00:00
nicm
bf9c933cae
Like options, move the environ struct into environ.c.
2015-10-28 09:51:55 +00:00
Thomas Adam
da1f6fc2c8
Merge branch 'obsd-master'
...
Conflicts:
Makefile
client.c
server-client.c
server.c
tmux.c
tmux.h
2015-10-27 23:27:26 +00:00
nicm
44657bf932
Move struct options into options.c.
2015-10-27 15:58:42 +00:00
nicm
07b0ea03c3
Break the common process set up, event loop and imsg dispatch code
...
between server and client out into a separate internal API. This will
make it easier to add another process.
2015-10-27 13:23:24 +00:00
Thomas Adam
ca29903c82
Merge branch 'obsd-master'
2015-10-26 00:01:10 +00:00
nicm
e65306d8e7
Extend the modifiers allowed before formats: as well as the existing
...
#{=10:...} length limit, add #{t:...} to convert a time_t format to a
string, #{b:...} for basename and #{d:...} for dirname. Remove all the
foo_string time formats as they can now be replaced by "t:", for example
#{window_activity_string} becomes #{t:window_activity}.
2015-10-25 22:29:17 +00:00
Thomas Adam
4acc8d0ff5
Merge branch 'obsd-master'
...
Conflicts:
cmd-find.c
2015-10-25 09:21:37 +00:00
nicm
14da999408
Format for scroll position, from Jorge Morante.
2015-10-23 16:02:21 +00:00
Thomas Adam
bbdc08780c
Merge branch 'obsd-master'
2015-10-18 22:01:08 +01:00
nicm
174a2ad731
Pass current directory as a string rather than a file descriptor because
...
pledge doesn't let us pass directory file descriptors.
2015-10-18 20:42:42 +00:00
Thomas Adam
20c3adca41
Merge branch 'obsd-master'
2015-09-25 18:01:09 +01:00