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
nicm
28f23f18e9
Free the history when it is cleared, based on a diff from Carlo Cannas.
2015-09-25 15:53:07 +00:00
Thomas Adam
a3bce7a322
Merge branch 'obsd-master'
2015-09-17 00:01:08 +01:00
nicm
a4b4b29987
Rename cmd_q dead flag to a general flags bitmask (will be more flags later).
2015-09-16 22:24:54 +00:00
Thomas Adam
4afe26fa82
Merge branch 'obsd-master'
2015-09-14 14:01:09 +01:00
nicm
8da6de3e66
Style nit, int for flags not u_int.
2015-09-14 11:57:22 +00:00
Thomas Adam
74b958ecbe
Merge branch 'obsd-master'
...
Conflicts:
Makefile
2015-09-14 12:42:19 +01:00
nicm
af16ce6ad9
When the active pane changes, redraw panes if the style has
...
changed. From Cam Hutchison.
2015-09-14 11:34:50 +00:00
nicm
16efa84838
Make refresh-client force update of jobs, from Sina Siadat.
2015-09-14 10:25:52 +00:00
nicm
901c2eb20a
Add copy-mode -e to exit copy mode when scrolling off the bottom, useful
...
for quick view of history, from Cam Hutchison.
2015-09-13 13:31:40 +00:00
nicm
a3de5dbab1
Merge delete-buffer into cmd-set-buffer.c and change the paste buffer
...
API so it has one paste_free() rather than free_top and free_name
(everywhere that uses it already has the right pointer).
2015-09-11 14:41:50 +00:00
Nicholas Marriott
66c4ed98d6
Fix bad merge.
2015-09-10 14:59:16 +01:00
Thomas Adam
1fd756066c
Merge branch 'obsd-master'
2015-09-10 12:01:08 +01:00
nicm
cfabe30bec
Add session_last_attached time and format, from Sina Siadat.
2015-09-10 08:58:14 +00:00
Thomas Adam
76688d2040
Merge branch 'obsd-master'
...
Conflicts:
cfg.c
tmux.c
2015-09-06 20:47:50 +01:00
nicm
38e3baab2a
A one line helper function is a little silly.
2015-09-02 17:43:25 +00:00
nicm
8121127606
We no longer need the terminal service class, so don't bother asking for it.
2015-09-02 17:37:54 +00:00
nicm
69a2d46ee5
Remove dead_clients which is no longer used.
2015-09-01 11:13:39 +00:00
nicm
952ba84611
Work out config file when needed not at startup.
2015-09-01 10:10:59 +00:00
nicm
83157c02d6
Move initial conf load into cfg.c.
2015-09-01 10:01:56 +00:00
nicm
2a836bc306
All the cmd_*_entry declarations do not need to be in tmux.h.
2015-09-01 09:48:34 +00:00
nicm
6a539c00df
Path from $TMUX does not need to be global anymore.
2015-08-30 22:56:36 +00:00
nicm
c6e9160c67
Login shell can be a client flag, and move the exec code into client.c.
2015-08-30 22:40:25 +00:00
nicm
dd92b6e83d
Event base does not need to be global.
2015-08-30 22:19:07 +00:00
Thomas Adam
cb89f2f2a1
Merge branch 'obsd-master'
...
Conflicts:
Makefile
format.c
2015-08-30 21:44:01 +01:00
nicm
5047670693
Remove some old prototypes and unused functions.
2015-08-29 23:55:55 +00:00
nicm
52bbac506c
struct args_entry can go into arguments.c.
2015-08-29 23:19:52 +00:00
nicm
373ef850e0
paste_send_pane can be merged into cmd-paste-buffer.c now.
2015-08-29 09:36:46 +00:00
nicm
b569585000
Move struct paste_buffer out of tmux.h.
2015-08-29 09:25:00 +00:00
nicm
b5aaefc727
Move alerts onto events rather than checking every loop.
2015-08-29 08:30:54 +00:00
nicm
b7861f34ba
Better take on reducing the name timer. Again check for name changes in
...
the main loop after events that may have changed the pane, but do so at
most once every 500 millis. If the pane changed too soon, use a timer to
ensure that a check happens later.
2015-08-29 00:29:15 +00:00
nicm
55b8d74561
Revert previous; we do need a timer, until I have a better idea. We
...
can't do the name check every loop, because that is too expensive, and
we can't make sure it only happens infrequently because we have no idea
when the next change will happen.
2015-08-28 16:10:46 +00:00
nicm
e2100c5f5f
We now only checking for name changes when the active pane has changed,
...
but that can only happen when we have already been woken up by a read
event, so there is no need for a timer, we can just check the changed
flag on the end of that read event (we already loop over the windows to
check for bells etc anyway).
2015-08-28 15:51:48 +00:00
Thomas Adam
486421ceff
Merge branch 'obsd-master'
2015-08-28 16:01:09 +01:00
nicm
f6a0f8730e
Per-session timers for locking, and remove the global one-second timer.
2015-08-28 13:12:20 +00:00
Thomas Adam
84eabb2658
Merge branch 'obsd-master'
2015-08-28 14:01:11 +01:00
nicm
57cc4d45d5
Make session_update_activity more useful and use it in more places.
2015-08-28 13:01:03 +00:00
nicm
6419f66523
Give clock mode its own timer.
2015-08-28 12:25:42 +00:00
nicm
75d10058a4
Run status update on a per-client timer at status-interval.
2015-08-28 12:16:28 +00:00
nicm
b6618b631b
Move format job cleanup onto its own timer.
2015-08-28 11:38:27 +00:00
Thomas Adam
031d7ce840
Merge branch 'obsd-master'
2015-08-28 10:01:08 +01: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
Thomas Adam
73b4d098ce
Merge branch 'obsd-master'
2015-07-29 14:01:09 +01:00
nicm
5ec3621101
status_out and associated data structures are no longer used.
2015-07-29 11:56:02 +00:00
Thomas Adam
a568aaa0c0
Merge branch 'obsd-master'
2015-07-28 18:01:08 +01:00
nicm
b254115acd
Tidy up the way terminals are described and move some structs out of tmux.h.
2015-07-28 15:18:10 +00:00
Thomas Adam
18a64ad52d
Merge branch 'obsd-master'
2015-07-20 18:01:10 +01:00
nicm
92af3766ec
Add an option (history-file) for a file to save/restore command prompt
...
history, from Olof-Joachim Frahm.
2015-07-20 15:50:04 +00:00
Thomas Adam
07aef38591
Merge branch 'obsd-master'
2015-07-13 18:01:09 +01:00
nicm
e45d624df2
Fix line endings.
2015-07-13 15:51:31 +00:00
nicm
c7374c31c4
Initialize cwd fd to -1 so that we don't close fd 0 if the client is
...
destroyed before it is changed. Also allow ttyname() to fail. Fixes
problems when running out of file descriptors reported by Bruno Sutic.
2015-07-13 15:49:31 +00:00
Thomas Adam
21a2ccc5f1
Merge branch 'obsd-master'
2015-06-17 20:01:12 +01:00
Thomas Adam
a584e11d6b
Merge branch 'obsd-master'
2015-06-17 18:01:07 +01:00
nicm
0ff335961e
Move the shuffle code from new-window -a into a function and add a -a
...
flag for move-window too. From Thomas Adam.
2015-06-17 16:50:28 +00:00
nicm
021cdbe1c0
Use an explicit job state instead of avoid closing our side of the
...
socketpair and setting it to -1 to mark when the other side is
closed. This avoids closing it while the libevent bufferevent still has
it (it could try to add it to the polled set which some mechanisms don't
like). Fixes part a problem reported by Bruno Sutic.
2015-06-17 16:44:49 +00:00
Thomas Adam
9fdc3a069a
Merge branch 'obsd-master'
2015-06-15 14:01:09 +01: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
Thomas Adam
37005d04a9
Merge branch 'obsd-master'
2015-06-14 12:01:10 +01:00
nicm
29c29e7717
Add a format for client PID (client_pid) and server PID (pid). Diff for
...
client_pid from Thomas Adam.
2015-06-14 10:07:44 +00:00
Thomas Adam
7acc4addb5
Merge branch 'obsd-master'
...
Conflicts:
client.c
tmux.1
tmux.c
2015-06-07 23:42:25 +01:00
nicm
c4e811e519
Add -E flag when attaching or switching client to bypass
...
update-environment, from Steven Lu.
2015-06-07 21:39:39 +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
641a9cd3f5
Similarly, for sessions use a callback to free rather than checking
...
every loop.
2015-06-05 18:18:32 +00:00
nicm
10e90ae01f
Change deref to the more sensible unref, and add a couple I missed before.
2015-06-05 18:06:30 +00:00
nicm
8c93b768e4
Instead of putting dead clients on a list and checking it every loop,
...
use event_once to queue a callback to deal with them. Also dead clients
with references would never actually be freed because the wrap-up
functions (the callback for stdin, or status_prompt_clear) would never
be called. So call them in server_client_lost.
2015-06-05 18:01:12 +00:00
nicm
6b2129696f
Move the nested check from client to server and compare the client tty
...
name to all the pane pty names instead of comparing socket paths. This
means that "new -d" will work without unsetting $TMUX.
2015-06-04 23:27:51 +00:00
Thomas Adam
02e348c069
Merge branch 'obsd-master'
2015-06-04 12:59:41 +01:00
nicm
a863834574
Add support for a single "marked pane". There is one marked pane in the
...
server at a time; it may be toggled or cleared with select-pane -m and
-M (the border is highlighted). A new target '~' or '{marked}' specifies
the marked pane to commands and it is the default target for the
swap-pane and join-pane -s flag (this makes them much simpler to use -
mark the source pane and then change to the target pane to run swapp or
joinp).
2015-06-04 11:43:51 +00:00
Thomas Adam
beffdf6575
Merge branch 'obsd-master'
2015-05-27 16:01:22 +01:00
nicm
379400cfa6
Move the jobs output cache into the formats code so that #() work more
...
generally (for example, again working in set-titles-string).
2015-05-27 13:28:04 +00:00
Thomas Adam
00471dc783
Merge branch 'obsd-master'
2015-05-13 09:44:11 +01:00
nicm
3f4ee98162
To replace c0-*, add a high watermark to the pty event, and also backoff
...
when the any of the ttys the pane is going to write to has buffered
enough data.
2015-05-12 22:40:38 +00:00
nicm
e958db09a7
Add bell-action "other" to pass through bells in all windows except the
...
current, suggested by Jan ONDREJ.
2015-05-12 15:27:46 +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
Thomas Adam
504b97b6a4
Merge branch 'obsd-master'
...
Conflicts:
tmux.h
2015-05-09 12:52:38 +01:00
nicm
92faa2eaeb
Put the tty structs together, and tabify.
2015-05-08 16:48:12 +00:00
nicm
592cb73a69
grid_marker_cell is no longer used.
2015-05-08 16:44:03 +00:00
nicm
74b2c40b1b
mode_key_entry can go into mode-key.c; also a few spaces->tabs.
2015-05-08 16:33:29 +00:00
nicm
a538141a72
window_choose_mode_item can move into window-choose.c.
2015-05-08 16:23:34 +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
1282bb81fe
array.h can be local to window-choose.c now.
2015-05-07 08:08:54 +00:00
nicm
0b39e6427f
Remove ARRAY_* from history and expand completion to complete a) layout
...
names and b) targets beginning with -t or -s.
2015-05-06 23:56:46 +00:00
Thomas Adam
f10d3675f8
Merge branch 'obsd-master'
2015-05-06 10:03:52 +01:00
nicm
31b1ab4852
Add a format window_linked which is 1 if a window has been linked
...
multiple times, also remove the default space in window_flags and use a
conditional to add it in window-status-format (this means additional
flags can be added in the option without extra spaces). From Thomas Adam
with tweaks by me.
2015-05-06 08:35:39 +00:00
Thomas Adam
dc2adc6bc1
Merge branch 'obsd-master'
2015-04-28 14:57:15 +01:00
nicm
771744426e
Add select-layout -o to undo the last layout change (apply the previously
...
set layout).
2015-04-28 10:43:13 +00:00
Thomas Adam
94a8ef1cae
Merge branch 'obsd-master'
...
Conflicts:
Makefile
tmux.1
2015-04-27 21:21:55 +01:00
nicm
95195f5258
Rewrite of the target resolution internals to be simpler and more
...
consistent but with much less duplication, but keeping the same internal
API. Also adds more readable aliases for some of the special tokens used
in targets (eg "{start}" instead of "^"). Some behaviours may have
changed, for example prefix matches now happen before fnmatch.
2015-04-27 16:25:57 +00:00
Thomas Adam
72e9ebf2ec
Merge branch 'obsd-master'
2015-04-25 20:45:02 +00:00
nicm
07dfdb974d
Make message log a TAILQ.
2015-04-25 18:33:59 +00:00
nicm
6dbd63ba4f
Move the functions to convert ids from strings into session.c and window.c.
2015-04-25 18:09:28 +00:00
Thomas Adam
56e1132db4
Merge branch 'obsd-master'
2015-04-25 10:02:46 +00:00
nicm
aeedb464a6
Convert clients list into a TAILQ.
2015-04-24 23:17:11 +00:00
nicm
583b4ab72b
Set working directory for run-shell and if-shell.
2015-04-24 22:19:36 +00:00
nicm
9a453dd354
Make session_has return a flag, returning the first winlink found is a
...
recipe for errors.
2015-04-22 15:32:33 +00:00
nicm
8d66f4fba4
Change the windows array into an RB tree and fix some places where we
...
were only looking at the first winlink for a window in a session.
2015-04-22 15:30:11 +00:00
nicm
89e80cabd5
window_index is only used in one place (window_destroy) so inline it there.
2015-04-22 15:05:03 +00:00
Thomas Adam
0a88377086
Merge branch 'obsd-master'
2015-04-22 10:05:54 +01:00
nicm
69f292a90e
Always format real layout even when zoomed.
2015-04-21 22:38:49 +00:00
nicm
bded743706
Support for multiple key tables to commands to be bound to sequences of
...
keys. The default key bindings become the "prefix" table and -n the
"root" table. Keys may be bound in new tables with bind -T and
switch-client -T used to specify the table in which the next key should
be looked up. Based on a diff from Keith Amling.
2015-04-20 15:34:56 +00:00
Thomas Adam
b25dc423b0
Merge branch 'obsd-master'
2015-04-20 15:44:27 +01:00
nicm
bf635e7741
Rewrite of tmux mouse support which was a mess. Instead of having
...
options for "mouse-this" and "mouse-that", mouse events may be bound as
keys and there is one option "mouse" that turns on mouse support
entirely (set -g mouse on).
See the new MOUSE SUPPORT section of the man page for description of the
key names and new flags (-t= to specify the pane or window under mouse
as a target, and send-keys -M to pass through a mouse event).
The default builtin bindings for the mouse are:
bind -n MouseDown1Pane select-pane -t=; send-keys -M
bind -n MouseDown1Status select-window -t=
bind -n MouseDrag1Pane copy-mode -M
bind -n MouseDrag1Border resize-pane -M
To get the effect of turning mode-mouse off, do:
unbind -n MouseDrag1Pane
unbind -temacs-copy MouseDrag1Pane
The old mouse options are now gone, set-option -q may be used to
suppress warnings if mixing configuration files.
2015-04-19 21:34:21 +00:00
nicm
ee123c2489
Support setting the default window and pane background colours (window
...
and active pane via window-style and window-active-style options, an
individual pane by a new select-pane -P flag). From J Raynor.
2015-04-19 21:05:27 +00:00
Thomas Adam
833fe5bdee
Merge branch 'obsd-master'
...
Conflicts:
cmd-pipe-pane.c
2015-02-06 19:07:43 +00:00
nicm
313f2263f8
status_replace can now become local to status.c and it no longer needs
...
the jobsflag argument. While here there is no need to repeat work that
format_defaults already does.
2015-02-06 17:21:08 +00:00
nicm
03758a50dc
Add format_expand_time and use it instead of status_replace where
...
command execution is not needed.
2015-02-06 17:11:39 +00:00
nicm
4946f74253
Wrap all the individual format_* calls in a single format_defaults
...
functions.
2015-02-05 10:29:43 +00:00
nicm
e5d9ceff18
There is no need to save the guard state because the function checks it
...
again anyway.
2015-02-05 10:26:29 +00:00
nicm
c9642ee213
Remove two unused arguments from status_replace.
2015-02-01 23:43:23 +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
Thomas Adam
5f8138faf5
Merge branch 'obsd-master'
...
Conflicts:
format.c
2014-12-19 19:22:19 +00:00
nicm
7a0c94b28a
Add pane_dead_status for exit status of dead panes.
2014-12-09 19:23:35 +00:00
Thomas Adam
ccbe2545d9
Merge branch 'obsd-master'
2014-12-03 08:41:08 +00:00
nicm
575fd1e322
Permit option values to be used in formats.
2014-12-02 23:19:45 +00:00
nicm
c403bfc894
Remove dead code, from Thomas Adam.
2014-11-30 08:03:29 +00:00
Thomas Adam
3e8efcc555
Merge branch 'obsd-master'
2014-11-19 09:22:03 +00:00
nicm
e0929262db
Label windows which are smaller than expected with a reason.
2014-11-14 02:19:47 +00:00
Thomas Adam
fc05bf255a
Merge branch 'obsd-master'
2014-11-09 00:15:51 +00:00
Nicholas Marriott
747cab4281
No need for $Id$ now.
2014-11-08 12:27:43 +00:00
nicm
e4bf1e5128
Add V for select line with vi(1) keys. From Juho Pohjala.
2014-11-06 09:17:25 +00:00
Thomas Adam
35ffd093d7
Merge branch 'obsd-master'
...
Conflicts:
Makefile
cmd-link-window.c
cmd-unlink-window.c
2014-10-29 12:51:21 +00:00
nicm
b496b1fe11
Move cfg_causes local into cfg.c and remove struct causelist.
2014-10-27 22:23:47 +00:00
nicm
68cb1c0e6b
Merge unlink-window into kill-window.
2014-10-22 23:11:41 +00:00
nicm
a02c2e55c0
Only redraw pane when it has actually changed.
2014-10-21 22:22:04 +00:00
Thomas Adam
562af864bd
Merge branch 'obsd-master'
...
Conflicts:
Makefile
cmd-list-commands.c
cmd-suspend-client.c
job.c
tmux.h
xmalloc.c
2014-10-21 07:11:44 +01:00
nicm
0a1a88d63c
Better format for printf format attributes.
2014-10-20 23:57:13 +00:00
nicm
4c42381410
Move template defines back into .c files.
2014-10-20 23:35:28 +00:00
nicm
900f6fc17e
Tidy up some includes.
2014-10-20 23:27:14 +00:00
nicm
45dfc5a074
Instead of setting up the default keys by building the key struct
...
directly with a helper function in the cmd_entry, include a table of
bind-key commands and pass them through the command parser and a
temporary cmd_q.
As well as being smaller, this will allow default bindings to be command
sequences which will probably be needed soon.
2014-10-20 22:29:25 +00:00
nicm
a27ba6e380
Add xreallocarray and remove nmemb argument from xrealloc.
2014-10-08 17:35:58 +00:00
Thomas Adam
2874a431c0
Merge branch 'obsd-master'
2014-09-25 11:29:54 +01:00
nicm
733cea8847
Wake up any clients waiting with the wait-for command when the server
...
exits.
2014-09-01 21:58:41 +00:00
nicm
4e956d545a
Various minor style and spacing nits.
2014-09-01 21:50:18 +00:00
nicm
29d20a55b6
Fix two copy mode problems:
...
1. In vi mode the selection doesn't include the last character if you
moved the cursor up or left.
2. In emacs mode the selection includes the last character if you moved
the cursor to the left.
From Balazs Kezes.
2014-08-11 22:18:16 +00:00
nicm
f518a077b1
Add flags to selectp to enable and disable input to a pane, from Anish
...
Athalye.
2014-08-11 22:14:30 +00:00
Thomas Adam
a131b82e95
Merge branch 'obsd-master'
...
Conflicts:
client.c
2014-08-09 20:31:36 +01: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
2056a9ef9e
Drop explicit support for F13-F20 and change to match the xterm terminfo
...
entry:
F13-F24 are S-F1 to S-F12
F25-F36 are C-F1 to C-F12
F37-F48 are C-S-F1 to C-S-F12
F49-F60 are M-F1 to M-F12
and F61-F63 are M-S-F1 to M-S-F3
This should be no difference for applications inside tmux, but means
that any key binding for F13 will need to be replaced by S-F1 and so on.
2014-07-21 10:25:48 +00:00
Thomas Adam
814e40522c
Merge branch 'obsd-master'
2014-06-20 12:59:43 +01: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
53cbae544f
Now that cmdlists are reference counted, there is no need for two-step
...
deletion via the dead_key_bindings tree. From Keith Amling.
2014-05-14 06:21:19 +00:00
Thomas Adam
bae95844d7
Merge branch 'obsd-master'
...
Conflicts:
format.c
window.c
2014-05-13 21:58:48 +01:00
nicm
b3e8d440ed
If multiple arguments are given to new-session, new-window,
...
split-window, respawn-window or respawn-pane, pass them directly to
execvp() to help avoid quoting problems. One argument still goes to "sh
-c" like before. Requested by many over the years. Patch from J Raynor.
2014-05-13 08:08:32 +00:00
nicm
b1a06ef22e
Add a copy mode key binding to copy to a named buffer. From J Raynor.
2014-05-13 07:54:20 +00:00
nicm
3dbacbb62b
Add support for named buffers. If you don't name a buffer, things work
...
much as before - buffers are automatically named "buffer0000",
"buffer0001" and so on and ordered as a stack. Buffers can be named
explicitly when creating ("loadb -b foo" etc) or renamed ("setb -b
buffer0000 -n foo"). If buffers are named explicitly, they are not
deleted when buffer-limit is reached. Diff from J Raynor.
2014-05-13 07:34:35 +00:00
nicm
f4ffaf5a7f
Just use char ** for argv like normal people, not char *const *.
2014-05-09 09:11:24 +00:00
nicm
94ccc6aeaa
Instead of forcing mouse scroll to 1 in choose mode, scale it down
...
instead. Means modifier keys still increase the line count, just not as
much. Based on a diff from Marcel Partap.
2014-05-08 07:54:47 +00:00
nicm
540f0b3e45
Both the two previous ways of navigating panes by direction have
...
irritating flaws:
a) The old way of always using the top or left if the choice is
ambiguous is annoying when the layout is unbalanced.
b) The new way of remembering the last used pane is annoying if the
layout is balanced and the leftmost is obvious to the user (because
clearly if we go right from the top-left in a tiled set of four we want
to end up in top-right, even if we were last using the bottom-right).
So instead, use a combination of both: if there is only one possible
pane alongside the current pane, move to it, otherwise choose the most
recently used of the choice.
2014-05-08 06:03:30 +00:00
Thomas Adam
3f54c9292f
Merge branch 'obsd-master'
2014-04-24 12:59:00 +01:00
nicm
bec6c807cd
There is no longer a need for a paste_stack struct or for global_buffers
...
to be global. Move to paste.c.
2014-04-24 09:14:43 +00:00
Thomas Adam
953c3ef47a
Merge branch 'obsd-master'
...
Conflicts:
Makefile
tmux.1
window.c
2014-04-23 11:26:11 +01:00
nicm
806520f025
Add some UTF-8 utility functions and use them to prevent the width limit
...
on formats from splitting UTF-8 characters improperly.
2014-04-17 15:37:55 +00:00
nicm
3e27be353d
Set PATH explicitly, either from client or session
...
environment. Previously it came from the session environment. From J
Raynor.
2014-04-17 13:02:59 +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
2e98c9057d
Correct the dance to fix the active pane in join-pane by pulling the
...
(right) code from break-pane and window_remove_pane into a helper
function.
2014-04-17 09:13:13 +00:00
nicm
2740490e27
Remove the "info" message mechanism, this was only used for about five
...
mostly useless and annoying messages. Change those commands to silence
on success like all the others. Still accept the -q command line flag
and "quiet" server option for now.
2014-04-17 07:55:43 +00:00
nicm
992ef70fb6
Remove the monitor-content option and associated bits and bobs. It's
...
never worked very well. If there is a big demand for it to return, will
consider better ways to do it.
2014-04-17 07:36:45 +00:00
nicm
871b83cbab
Remove a leftover prototype and fix some spacing.
2014-04-16 21:16:19 +00:00
nicm
14a96df9ee
Remove the choose-list command to prepare for some later choose-* work.
2014-04-16 21:02:41 +00:00
Thomas Adam
0c99c7dbff
Merge branch 'obsd-master'
...
Conflicts:
Makefile
tty-keys.c
2014-04-05 12:36:14 +01:00
nicm
acef311fe3
Work out mouse scroll wheel effect when the mouse is first detected and
...
store it in struct mouse_event, reduce the scroll size the 3 but allow
shift to reduce it to 1 and meta and ctrl to multiply by 3 if the
terminal supports them, also support wheel in choose mode. From Marcel
Partap.
2014-04-03 08:20:29 +00:00
nicm
252a7373d6
Support UTF-8 with choose-buffer, from Kosuke ASAMI. Also make
...
buffer_sample bigger to let it trim at window right edge.
2014-04-02 18:12:18 +00:00
deraadt
d9960b2d4d
missed commit matching log.c
2014-04-01 05:50:30 +00:00
nicm
7bdb675469
GRID_DEBUG is no longer needed.
2014-03-31 21:42:27 +00:00
nicm
f155316be7
Remove unused log functions.
2014-03-31 21:42:05 +00:00
nicm
46593e7aa2
Add names for mouse button bits rather than using magic numbers, from
...
Marcel Partap.
2014-03-31 21:40:21 +00:00
nicm
fcdae6925a
Use hex constants rather than shifts for mouse events and flags, pointed
...
out by Marcel Partap.
2014-03-31 21:39:59 +00:00
nicm
0e4d1d8493
Add setb -a to append and a copy mode append command, from J Raynor with
...
minor changes.
2014-03-31 21:39:31 +00:00
nicm
b11de5adc7
Make session_attached a count and add session_many_attached flag.
2014-03-31 21:37:55 +00:00
nicm
9368914ee7
Add start-of-list, end-of-list, top-line and bottom-line in choice mode,
...
from madmaverick9 at roxxmail dot eu, similar diff a few days later from
Marcel Partap.
2014-03-31 21:36:43 +00:00
nicm
175f215187
Having three *clock* files is ridiculous, remove clock.c.
2014-03-31 21:34:08 +00:00
Nicholas Marriott
b1a87b2ee4
Remove log_debug2 as well and simplify log.c.
2014-03-07 16:05:29 +00:00
Nicholas Marriott
c5a30513ed
GRID_DEBUG is no longer needed.
2014-03-07 15:51:27 +00:00
Nicholas Marriott
ebe7bd7c8b
Remove unused log functions.
2014-03-07 15:49:09 +00:00
Nicholas Marriott
23e944c91d
Add names for mouse button bits rather than using magic numbers, from Marcel
...
Partap.
2014-03-06 12:00:30 +00:00
Nicholas Marriott
f15fcb6a1d
Use hex constants rather than shifts for mouse events and flags, pointed out by
...
Marcel Partap.
2014-03-06 11:53:46 +00:00
Nicholas Marriott
8c0edcbfa3
Add setb -a to append and a copy mode append command, from J Raynor with minor
...
changes.
2014-03-06 11:50:07 +00:00
Nicholas Marriott
b7f6356053
Make session_attached a count and add session_many_attached flag.
2014-03-06 11:25:27 +00:00
Nicholas Marriott
9134e4de1e
Add start-of-list, end-of-list, top-line and bottom-line in choice mode, from
...
madmaverick9 at roxxmail dot eu, similar diff a few days earlier from Marcel
Partap.
2014-02-26 22:22:07 +00:00
Nicholas Marriott
582c2671dd
Having three *clock* files is ridiculous, remove clock.c.
2014-02-26 21:59:33 +00:00
Nicholas Marriott
4273c1b80e
Use utempter to update utmp if it's around for configure, from madmaverick9 at
...
roxxmail dot eu.
2014-02-24 23:07:22 +00:00
nicm
f1828921df
Change terminal-overrides to a server option (now that we have them), it
...
doesn't make much sense as a session option.
2014-02-23 00:53:06 +00:00
Thomas Adam
d50e47fc4a
Merge branch 'obsd-master'
...
Conflicts:
Makefile
cmd-server-info.c
cmd-start-server.c
2014-01-31 21:39:56 +00:00
nicm
9f02feb9d0
Break up and simplify screen_redraw_screen.
2014-01-31 14:19:24 +00:00
nicm
945339b443
Allow replacing each of the many sets of separate foo-{fg,bg,attr}
...
options with a single foo-style option. For example:
set -g status-fg yellow
set -g status-bg red
set -g status-attr blink
Becomes:
set -g status-style fg=yellow,bg=red,blink
The -a flag to set can be used to add to rather than replace a style. So:
set -g status-bg red
Becomes:
set -ag status-style bg=red
Currently this is fully backwards compatible (all *-{fg,bg,attr} options
remain) but the plan is to deprecate them over time.
From Tiago Cunha.
2014-01-28 23:07:09 +00:00
nicm
c930fd5ff6
Remember the last active pane in the top-bottom or left-right cell so
...
that it can be restored when moving back to that cell with selectp
-L/-R/etc. From Suraj N Kurapati.
2014-01-28 22:19:17 +00:00
nicm
1a0d3cd5d3
Allow attach-session -t to accept a window and pane to select them on
...
attach. Based on a diff from J Raynor.
2014-01-09 14:20:55 +00:00
Thomas Adam
3e498cdb49
Merge branch 'obsd-master'
2013-11-14 07:51:26 +00:00
nicm
7fa55b0419
Key to swap to other end of selection (bound to o with vi keys), from J
...
Raynor.
2013-10-23 11:31:03 +00:00
nicm
bf35441608
Do not run any command line command from the client which starts the
...
server until after the configuration file completes. This prevents it
racing against run-shell or if-shell in .tmux.conf that run in the
background.
2013-10-20 17:28:43 +00:00
nicm
d0566a474a
Remove the KERN_PROC_CWD the proc_current_path format (which is the only
...
thing that uses it now).
2013-10-10 12:39:24 +00:00
nicm
c1ccefc62d
We accidentally haven't been using $TMUX to work out the session for a
...
while and in fact it is less useful that using the client ttyname. So
don't bother and don't pass it from the client. If we need it in future
it is in c->environ.
2013-10-10 12:29:35 +00:00
nicm
282c5f9644
Alter how tmux handles the working directory to internally use file
...
descriptors rather than strings.
- Each session still has a current working directory.
- New sessions still get their working directory from the client that
created them or its attached session if any.
- New windows are created by default in the session working directory.
- The -c flag to new, neww, splitw allows the working directory to be
overridden.
- The -c flag to attach let's the session working directory be changed.
- The default-path option has been removed.
To get the equivalent to default-path '.', do:
bind c neww -c $PWD
To get the equivalent of default-path '~', do:
bind c neww -c ~
This also changes the client identify protocol to be a set of messages rather
than one as well as some other changes that should make it easier to make
backwards-compatible protocol changes in future.
2013-10-10 12:26:34 +00:00
nicm
10c38436aa
Similarly for MSG_COMMAND - allow full imsg limit not arbitrary 2048.
2013-10-10 12:13:56 +00:00
nicm
6c093010e0
Remove CMD_SENDENVIRON.
2013-10-10 12:09:34 +00:00
nicm
4c9f41f1ad
Pass flags into cmdq_guard as an argument since sometimes cmdq->cmd can
...
be NULL. Avoids crash when a command in a command client can't be
parsed.
2013-10-10 11:45:28 +00:00
Nicholas Marriott
e9b09faab2
We accidentally haven't been using $TMUX to work out the session for a while
...
and in fact it is less useful that using the client ttyname. So don't bother
and don't pass it from the client. If we need it in future it is in c->environ.
2013-10-06 22:38:33 +01:00
Nicholas Marriott
4538c269d0
Alter how tmux handles the working directory to internally use file descriptors
...
rather than strings.
- Each session still has a current working directory.
- New sessions still get their working directory from the client that created
them or its attached session if any.
- New windows are created by default in the session working directory.
- The -c flag to new, neww, splitw allows the working directory to be
overridden.
- The -c flag to attach let's the session working directory be changed.
- The default-path option has been removed.
To get the equivalent to default-path '.', do:
bind c neww -c $PWD
To get the equivalent of default-path '', do:
bind c neww -c '#{pane_current_path}'
The equivalent of default-path '~' is left as an exercise for the reader.
This also changes the client identify protocol to be a set of messages rather
than one as well as some other changes that should make it easier to make
backwards-compatible protocol changes in future.
2013-10-06 21:02:23 +01:00
Nicholas Marriott
fa1375c09f
Similarly for MSG_COMMAND - allow full imsg limit not arbitrary 2048.
2013-10-06 00:48:24 +01:00
Nicholas Marriott
f141e9b37a
Instead of fixed size buffers for some messages, send only the string length.
2013-10-06 00:28:35 +01:00
Nicholas Marriott
3fba377ddd
retcode -> retval for exit message.
2013-10-06 00:18:00 +01:00
Nicholas Marriott
01a4752503
Merge IDENTIFY_* flags with CLIENT_* flags.
2013-10-06 00:10:40 +01:00
Nicholas Marriott
d66cbf20f7
Bump protocol version and add new message types.
2013-10-06 00:06:01 +01:00
Nicholas Marriott
7e4314eccb
Remove CMD_SENDENVIRON.
2013-10-06 00:02:52 +01:00
Nicholas Marriott
9389cfbec9
Support -c for new-session, based on code from J Raynor.
2013-10-01 23:48:03 +01:00
Nicholas Marriott
06d101657f
No space in lsw -a targets.
2013-08-28 12:59:13 +01:00
Nicholas Marriott
b2fe9bff3f
Merge branch 'master' of ssh://git.code.sf.net/p/tmux/tmux-code
2013-08-21 18:03:07 +01:00
Nicholas Marriott
a36da3a878
Remove the barely-used and unnecessary command check() function.
2013-08-21 18:01:40 +01:00
Thomas
c103f2fbcb
Clear window->flags when clearing winlinks
...
When clearing WINLINK_ALERTFLAGS for all sessions, we must also, for that
window, clear the window->flags as well, otherwise sessions may well still
see flags for winlinks long since cleared.
This therfore introduces WINDOW_ALERTFLAGS to help with this.
2013-08-20 13:03:53 +01:00
Nicholas Marriott
23519fc0b4
Add automatic-rename-format option allowing automatic rename to use something
...
other than pane_current_command.
2013-08-19 22:16:11 +01:00
Nicholas Marriott
1c271852fc
Pass flags into cmdq_guard as an argument since sometimes cmdq->cmd can be
...
NULL. Avoids crash when a command in a command client can't be parsed.
2013-08-01 23:35:03 +01:00
Nicholas Marriott
e8567098a4
Add support for Cgywin, apparently it is enough just to open the tty again in
...
the server and fd passing is not necessary. Needs some ifdefs unfortunately but
no way around that and some of them can go next time we're willing to do a
protocol bump. Patch from J Raynor jxraynor at gmail dot com.
2013-07-12 22:21:42 +01:00
Thomas Adam
bdea2f9eda
Merge branch 'obsd-master'
2013-07-06 11:18:49 +01:00
Nicholas Marriott
f884fff869
Implement s, S, C mode switch commands in vi(1) mode, from Ben Boeckel.
2013-07-05 14:38:23 +00:00
Nicholas Marriott
c7a121cfc0
Focus events can cause trouble if left on and they can't be turned off
...
during idle periods (like the other states are) because we'd miss
events. So add a server option to control them. Defaults to off.
2013-06-28 20:55:16 +01:00
Nicholas Marriott
828145456c
Don't set TMUX_CONF in tmux.h.
2013-06-25 09:48:09 +01:00
Nicholas Marriott
3977dba761
Focus events can cause trouble if left on and they can't be turned off
...
during idle periods (like the other states are) because we'd miss
events. So add a server option to control them. Defaults to off.
2013-06-23 13:10:46 +00:00
Thomas Adam
06b5805479
Merge branch 'obsd-master'
2013-06-13 18:12:49 +01:00
Nicholas Marriott
13441e8cb8
The actual terminfo entries we ended up with for cursor changes are Cs,
...
Ce, Ss and Se (not Cc, Ce, Cs, Csr). So use and document these instead
of the ones we were using earlier.
2013-06-02 07:52:15 +00:00
Thomas Adam
399d7380a5
Merge branch 'obsd-master'
2013-05-31 21:44:42 +01:00
Nicholas Marriott
a0cf65db77
Instead of eating 1024 bytes or so for the arguments of each command,
...
save memory by using an RB tree. From Tiago Cunha.
2013-05-31 12:19:34 +00:00
Thomas Adam
76cb088d16
Merge branch 'obsd-master'
...
Conflicts:
tmux.h
2013-05-25 11:48:12 +01:00
Nicholas Marriott
e323101ede
Rename global configuration define.
2013-04-24 10:01:32 +00:00
Nicholas Marriott
ce52e45d44
Merge branch 'master' of ssh://git.code.sf.net/p/tmux/tmux-code
2013-04-24 11:00:32 +01:00
Nicholas Marriott
4f3c31a6b6
Use sysconfdir for the location of global tmux.conf (but default it to /etc),
...
based on changes from Dagobert Michelsen.
2013-04-24 10:57:03 +01:00
Thomas Adam
cd60e57b6a
Merge branch 'obsd-master'
...
Sync from OpenBSD.
2013-04-23 08:26:04 +01:00
Nicholas Marriott
3d2b7d5bce
When using choose-tree -u, start with the current window
...
highlighted. From Thomas Adam.
2013-04-22 22:17:29 +00:00
Thomas Adam
b58bca9a72
Merge branch 'obsd-master'
...
Conflicts:
tmux.c
2013-04-13 17:05:49 +01:00
Nicholas Marriott
982354765b
Remove tmux's (already minimal) 88 colour support. Such terminals are
...
few and unnecessary.
2013-03-27 11:17:12 +00:00
Nicholas Marriott
43fb9835fa
Add -P and -F to new-session.
2013-03-25 11:44:00 +00:00
Nicholas Marriott
6fee3e9e4b
Rename session idx to session id throughout and add $ prefix to targets
...
to use it, extended from a diff from George Nachman.
2013-03-25 10:11:45 +00:00
Nicholas Marriott
410a3abbef
Add a wait-for command which blocks a client on a named channel until it
...
is woken up again (with wait-for -S). From Thiago Padilha.
2013-03-25 10:09:05 +00:00
Nicholas Marriott
14fad6a5cc
Add -A flag to new-session to make it behave like attach-session if the
...
session exists. If -A is used, -D behaves like -d to attach-session.
2013-03-24 09:58:40 +00:00
Nicholas Marriott
20636d956d
Add a command queue to standardize and simplify commands that call other
...
commands and allow a command to block execution of subsequent
commands. This allows run-shell and if-shell to be synchronous which has
been much requested.
Each client has a default command queue and commands are consumed one at
a time from it. A command may suspend execution from the queue by
returning CMD_RETURN_WAIT and then resume it by calling cmd_continue() -
for example run-shell does this from the callback that is fired after
the job is freed.
When the command queue becomes empty, command clients are automatically
exited (unless attaching). A callback is also fired - this is used for
nested commands in, for example, if-shell which can block execution of
the client's cmdq until a new cmdq becomes empty.
Also merge all the old error/info/print functions together and lose the
old curclient/cmdclient distinction - a cmdq is bound to one client (or
none if in the configuration file), this is a command client if
c->session is NULL otherwise an attached client.
2013-03-24 09:54:10 +00:00
Nicholas Marriott
a60687f9ba
Handle focus events from the terminal, from Aaron Jensen.
2013-03-24 09:28:59 +00:00
Nicholas Marriott
7f191c7951
Add -P and -F to new-session.
2013-03-22 17:01:15 +00:00
Nicholas Marriott
eaaeb28cda
Add session_set_current helper function, extracted from a diff from
...
Aaron Jensen.
2013-03-22 16:00:26 +00:00
Nicholas Marriott
8478895eeb
Add -e flag to capture-pane to include embedded ANSI SGR escape
...
sequences, from George Nachman.
2013-03-22 15:51:54 +00:00
Nicholas Marriott
db66d85176
Fix double space in sessions template.
2013-03-22 10:38:13 +00:00
Nicholas Marriott
f0efa576e0
Add resize-pane -x and -y for absolute pane size (much requested).
2013-03-22 10:37:39 +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
3665be7c44
Tidy by splitting default key tables into two.
2013-03-21 16:50:22 +00:00
Nicholas Marriott
c982279950
Fix constness of cmd_template_replace, window_choose_add_item and
...
window_choose_add_window.
2013-03-21 16:19:25 +00:00
Nicholas Marriott
180faf73af
Allow choose commands to be used outside tmux, so long as at least one
...
client is attached.
2013-03-21 16:09:59 +00:00
Nicholas Marriott
6ddb06d372
Extend jobs to support writing and use that for copy-pipe instead of popen,
...
from Chris Johnsen.
2013-03-21 14:24:33 +00:00
Nicholas Marriott
c5ad47ee7c
Only send end guard if begin was sent, from George Nachman.
2013-03-13 07:31:36 +00:00
Nicholas Marriott
c41d92d27a
Add time and a command count to control mode guards, based on code from George
...
Nachman.
2013-03-11 09:35:44 +00:00
Nicholas Marriott
f47a063841
Rename session idx to session id throughout and add $ prefix to targets to use
...
it, extended from a diff from George Nachman.
2013-03-07 10:07:22 +00:00
Nicholas Marriott
7fd4d49d56
Add a wait-for command which blocks a client on a named channel until it is
...
wokrn up again (with wait-for -S). From Thiago Padilha.
2013-03-06 09:57:26 +00:00
Nicholas Marriott
aaeee34c32
Preserve trailing spaces with capture-pane -J, from George Nachman.
2013-03-04 11:03:03 +00:00
Nicholas Marriott
f339cfd315
Add -A flag to new-session to make it behave like attach-session if the session
...
exists. If -A is used, -D behaves like -d to attach-session.
2013-02-24 00:43:28 +00:00
Nicholas Marriott
c5239c5984
Add resize-pane -Z to temporary zoom the active pane to occupy the full window
...
or unzoom (restored to the normal layout) if it already zoomed, bound to C-b z
by default. The pane is unzoomed on pretty much any excuse whatsoever.
We considered making this a new layout but the requirements are quite different
from layouts so decided it is better as a special case. Each current layout
cell is saved, a temporary one-cell layout generated and all except the active
pane set to NULL.
Prompted by suggestions and scripts from several. Thanks to Aaron Jensen and
Thiago Padilha for testing an earlier version.
2013-02-24 00:25:03 +00:00
Nicholas Marriott
3964309c67
Add a command queue to standardize and simplify commands that call other
...
commands and allow a command to block execution of subsequent commands. This
allows run-shell and if-shell to be synchronous which has been much requested.
Each client has a default command queue and commands are consumed one at a time
from it. A command may suspend execution from the queue by returning
CMD_RETURN_WAIT and then resume it by calling cmd_continue() - for example
run-shell does this from the callback that is fired after the job is freed.
When the command queue becomes empty, command clients are automatically exited
(unless attaching). A callback is also fired - this is used for nested commands
in, for example, if-shell which can block execution of the client's cmdq until
a new cmdq becomes empty.
Also merge all the old error/info/print functions together and lose the old
curclient/cmdclient distinction - a cmdq is bound to one client (or none if in
the configuration file), this is a command client if c->session is NULL
otherwise an attached client.
2013-02-23 22:25:58 +00:00
Nicholas Marriott
ee0f8adfac
Handle focus events from the terminal, from Aaron Jensen.
2013-02-23 10:01:34 +00:00
Nicholas Marriott
3a2e9d805a
Fix error reporting for client commands by adding a flag to cmd_find_client to
...
tell it whether or not to show errors, sometimes it's needed and sometimes not.
2013-02-22 23:04:53 +00:00
Nicholas Marriott
1994ae4640
Missing PANE_RESIZE define.
2013-02-22 21:47:34 +00:00
Nicholas Marriott
4c9f9438ff
Add support for focus notifications when tmux pane changes, based on work by
...
Aaron Jensen.
2013-02-22 07:23:11 +00:00
Nicholas Marriott
8c50f625b0
Add session_set_current helper function, extracted from a diff from Aaron
...
Jensen.
2013-02-21 16:54:13 +00:00
Nicholas Marriott
b8b5631d9d
Add -C and -J to capture pane to escape control sequences and to join wrapped
...
line, based on a diff from George Nachman.
2013-02-21 09:35:01 +00:00
Nicholas Marriott
afd5e978cf
Need to set clients in context before changing their reference count.
2013-02-20 10:25:15 +00:00
Nicholas Marriott
c3859d1df1
Add copy-pipe mode command to copy selection and also pipe to a command.
2013-02-19 17:49:53 +00:00
Nicholas Marriott
4d1d4d6e8e
Add -e flag to capture-pane to include embedded ANSI SGR escape sequences, from
...
George Nachman.
2013-02-19 09:55:02 +00:00
Nicholas Marriott
293e331d69
Add functions to allocate and free command contexts rather than doing it all on
...
the stack.
2013-02-18 23:20:21 +00:00
Nicholas Marriott
44452823b7
Fix double space in sessions template.
2013-02-18 17:12:58 +00:00
Nicholas Marriott
e4bb87032e
Add resize-pane -x and -y for absolute pane size.
2013-02-18 17:00:35 +00:00
Nicholas Marriott
e5eee7de0c
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-02-18 14:52:27 +00:00
Nicholas Marriott
cf2c0237f4
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-02-17 10:43:35 +00:00
Nicholas Marriott
10db7ec51b
Include the \033 in the key tree and adjust key matching for this change.
2013-02-16 13:21:14 +00:00
Nicholas Marriott
82355d2f2d
Tidy by splitting default key tables into two.
2013-02-15 02:16:41 +00:00
Nicholas Marriott
68e370574a
Fix constness of window_choose_add_item and _window.
2013-02-13 10:25:37 +00:00
Nicholas Marriott
544c80d715
Fix constness of cmd_template_replace.
2013-02-13 10:19:43 +00:00
Nicholas Marriott
102cb77435
Add -v to set and setw to show only option value.
2013-02-12 20:12:10 +00:00
Nicholas Marriott
99cc0015f8
Rework reflow code so it does not do so much allocation which should be faster
...
with large histories.
2013-02-10 18:15:30 +00:00
Nicholas Marriott
f1ce95915c
Allow choose commands to be used outside tmux, so long as at least one client
...
is attached.
2013-02-10 17:52:51 +00:00
Nicholas Marriott
aadc87f5a7
Remove free callback for window_choose_data objects.
2013-02-10 17:36:58 +00:00
Nicholas Marriott
4d382ae8e6
Miscellaneous tidying of choose API, including:
...
- rename client and session to start_client and start_session in
window_choose_data struct. also add TREE_OTHER define and reorder the
struct
- rename window_choose_ctx to window_choose_data_run
- don't pass a cmd_ctx into window_choose_create (will let it use a
different client later). instead take type, session, client
- add window_choose_data_free and use it to dispose of wcd rather than
each cmd-*.c doing it individually
- change so ref counting is done by wcd_add and wcd_free rather than
callers. this means 1 ref for each item but what of it :-)
- also add a ref to tree_session - not sure if this is needed?
- all the callbacks except choose-client and find-window are the same so
remove them and add window_choose_default_callback
- reorder/rename some other bits and pieces for tidyness
2013-02-10 17:32:58 +00:00
Thomas Adam
64da762c15
Merge branch 'obsd-master'
2013-02-07 12:08:55 +00:00
Nicholas Marriott
8903c1f167
Automatically reflow wrapped lines when a pane is resized, requested by
...
many over the years and finally implemented by Richard Woodbury.
2013-02-05 11:08:59 +00:00
Thomas Adam
a3f4eb7b24
Merge branch 'obsd-master'
...
Conflicts:
Makefile
grid-utf8.c
2013-01-30 15:27:19 +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
Thomas Adam
de194016ec
Merge branch 'obsd-master'
2013-01-17 01:38:21 +00:00
Nicholas Marriott
e33ba57c13
Remove the layout undo/redo code which never really worked.
2013-01-17 00:11:22 +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
bc2e4a36df
If timing between keys is less than (by default) 1 millisecond, assume
...
the text is being pasted. assume-paste-time option changes the value (0
disables). Based on a diff from Marcin Kulik.
2013-01-15 22:55:29 +00:00
Thomas Adam
675c6b3773
Merge branch 'obsd-master'
...
Sync from OpenBSD.
2012-12-31 18:50:37 +00:00
Nicholas Marriott
a2c8af97e9
Add missing function prototype.
2012-12-24 12:33:05 +00:00
Thomas Adam
fb83914bd7
Merge branch 'obsd-master'
...
Sync from OpenBSD.
2012-12-08 20:29:37 +00:00
Nicholas Marriott
8264e92b37
Fix return value of load_cfg, from Thomas Adam.
2012-11-27 22:59:34 +00:00
Thomas Adam
739a76634c
Merge branch 'obsd-master'
...
Sync from OpenBSD.
2012-11-27 22:24:00 +00:00
Nicholas Marriott
47c097cb51
Support middle-click paste, based on a diff from Ailin Nemui.
2012-11-27 20:22:12 +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
Thomas Adam
39631edb98
Merge branch 'obsd-master'
...
Sync from OpenBSD.
2012-11-27 18:12:04 +00:00
Nicholas Marriott
9b8998aeec
Correctly aggregate together errors from nested config files (with
...
source-file). Fix by Thomas Adam, reported by Sam Livingstone-Gray
2012-11-27 16:12:29 +00:00
Thomas Adam
1bc910a963
Merge branch 'obsd-master'
...
Sync from OpenBSD.
2012-11-22 22:19:04 +00:00
Nicholas Marriott
260419f48e
Put helper function back, will be needed in a bit.
2012-11-22 14:41:11 +00:00
Thomas Adam
c04aa90207
Merge branch 'obsd-master'
...
Sync from OpenBSD.
* obsd-master:
Add halfpage commands to mode command string table (missed by accident), from Thomas Adam.
Clarify some points about config files, notably that they are only read at server start. From Thomas Adam.
Use a utility function for common code to show errors in config file, from Thomas Adam.
2012-11-22 13:24:14 +00:00
Nicholas Marriott
827b311c81
Use a utility function for common code to show errors in config file,
...
from Thomas Adam.
2012-11-19 10:38:06 +00:00
Thomas Adam
be10e8eee6
Merge branch 'obsd-master'
...
Sync from OpenBSD.
2012-11-08 21:27:40 +00:00
Nicholas Marriott
c68efec6c0
Show last client activity time in default choose-client list.
2012-11-05 13:13:04 +00:00
Thomas Adam
47fbf87185
Merge branch 'obsd-master'
...
Sync from OpenBSD.
2012-10-26 20:28:58 +01:00
Nicholas Marriott
d210d99cce
Make mouse event structure clearer by defining events (up, click, drag)
...
and simplifying how buttons and wheels are represented, from Ailin
Nemui. Should be no functional changes.
2012-10-26 14:35:42 +00:00
Thomas Adam
619ffe1f4f
Merge branch 'obsd-master'
...
Sync from OpenBSD.
* obsd-master:
Allow session tree (C-b s) to expand and collapse sessions with left/right/space keys. From Thomas Adam.
Remove some out of date text from man page, from Thomas Adam.
2012-10-02 10:47:16 +01:00
Nicholas Marriott
9107b0c69a
Allow session tree (C-b s) to expand and collapse sessions with
...
left/right/space keys. From Thomas Adam.
2012-10-02 08:16:28 +00:00
Thomas Adam
48750022c0
Merge branch 'obsd-master'
...
Sync from OpenBSD.
2012-09-25 17:05:36 +01:00
Nicholas Marriott
17bbf90393
Add notification for input from a pane, from George Nachman.
2012-09-25 07:41:22 +00:00
Nicholas Marriott
149f5bac05
Merge branch 'master' of ssh://tmux.git.sourceforge.net/gitroot/tmux/tmux
...
Conflicts:
cmd.c
format.c
osdep-openbsd.c
2012-09-25 08:07:39 +01:00
Thomas Adam
e342304134
Merge branch 'obsd-master'
...
Conflicts:
cmd.c
format.c
osdep-openbsd.c
tmux.h
2012-09-24 17:55:06 +01:00
Nicholas Marriott
84612a8196
Add control_write_buffer, from George Nachman.
2012-09-24 13:39:10 +00:00
Nicholas Marriott
5d60bc7f7c
Use pgrp of pty fd not pid of immediate child when recovering current working
...
directory (like current process). From Marcel Partap.
2012-09-24 14:05:38 +01:00
Nicholas Marriott
42272dfbd5
Use pgrp of pty fd not pid of immediate child when recovering current
...
working directory (like current process). From Marcel Partap.
2012-09-24 13:05:10 +00:00
Nicholas Marriott
c914fcfacb
When choosing a pane found by find-window, switch to that pane rather
...
than just the window. Also use a helper function for the inner loop.
2012-09-04 22:37:31 +01:00
Nicholas Marriott
28fd3a3835
add cmd-choose-list to allow arbitrary options to be selected. From
...
Thomas Adam.
2012-09-04 22:37:29 +01:00
Nicholas Marriott
41a448193f
Send notifications to control clients. Also don't redraw client when
...
suspended.
2012-09-04 22:36:47 +01:00
Nicholas Marriott
9e7bbc7281
When choosing a pane found by find-window, switch to that pane rather
...
than just the window. Also use a helper function for the inner loop.
2012-09-03 12:20:17 +00:00
Nicholas Marriott
7263fa36eb
add cmd-choose-list to allow arbitrary options to be selected. From
...
Thomas Adam.
2012-09-03 09:57:57 +00:00