Nicholas Marriott
34bb735a65
Sort cases same as getopt argument, from martynas.
2009-09-01 09:00:54 +00:00
Nicholas Marriott
04319964b9
Add a new display-panes command, with two options (display-panes-colour and
...
display-panes-time), which displays a visual indication of the number of each
pane.
2009-08-31 20:46:19 +00:00
Stefan Sperling
8102ec3be5
squash typo
...
ok nicm@
2009-08-31 11:52:32 +00:00
Nicholas Marriott
71ede76c68
Don't call tty_free unless the client is a terminal, otherwise tty_init hasn't
...
been called and it may end up doing close(0). From Kalle Olavi Niemitalo.
2009-08-31 11:37:27 +00:00
Nicholas Marriott
2e5b3ab8bc
Initialise the arg2 pointer properly (also free it when freeing the
...
others). Fixes crashes with J in malloc_options reported by oga.
2009-08-26 18:09:52 +00:00
Nicholas Marriott
ddf97f8289
Make this work when the clock is in small characters as well. Doh.
2009-08-26 16:23:30 +00:00
Nicholas Marriott
1ba5ce9cb3
Fix clock mode in black and white terminals now that tty.c tries to fix
...
reverse.
2009-08-26 16:16:06 +00:00
Nicholas Marriott
f949107a32
Print -l and -p when showing command, pointed out by Tiago Cunha.
2009-08-25 14:53:22 +00:00
Nicholas Marriott
be16f79438
These should #include <ctype.h>.
2009-08-25 13:32:14 +00:00
Nicholas Marriott
7b847ced4a
Add a choose-client command and extend choose-{session,window} to accept a
...
template. After a choice is made, %% (or %1) in the template is replaced by the
name of the session, window or client suitable for -t and the result executed
as a command. So, for example, "choose-window "killw -t '%%'"" will kill the
selected window.
The defaults if no template is given are (as now) select-window for
choose-window, switch-client for choose-session, and detach-client for
choose-client (now bound to D).
2009-08-25 12:18:51 +00:00
Nicholas Marriott
4f1d81c4ce
gcc2 doesn't understand attributes on function pointers.
2009-08-24 08:03:11 +00:00
Nicholas Marriott
90400ae96a
Add some other obvious variables to update-environment (WINDOWID SSH_ASKPASS
...
SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION) so they are updated in the session
environment on new/attach.
2009-08-23 18:21:02 +00:00
Nicholas Marriott
a910b38a35
Some code tidying.
2009-08-23 17:37:48 +00:00
Nicholas Marriott
c7394ac4e0
When using source-file, run the commands in the context of the source-file
...
command rather than with no context. This makes things like attach work from a
file.
2009-08-23 17:29:51 +00:00
Nicholas Marriott
43cd40e87a
The cursession member in struct cmd_ctx is always either curclient->session or
...
NULL when curclient is also NULL, so just eliminate it.
2009-08-23 16:45:00 +00:00
Nicholas Marriott
1eb303e6d4
Check the return value of strunvis against -1 not NULL.
2009-08-23 11:40:05 +00:00
Nicholas Marriott
926b52b600
Emulate dch/dch1 if missing by redrawing the entire line.
2009-08-21 12:29:59 +00:00
Nicholas Marriott
915a1913e1
Move reading termios settings to before tty_open alters them, and expand the
...
comment.
2009-08-21 11:36:08 +00:00
Nicholas Marriott
65ac8e9f0c
Ugh, committed the wrong version of this change and got both solutions rather
...
than just the second. Remove unused assignment.
2009-08-21 08:12:05 +00:00
Nicholas Marriott
f817a338d0
When moving up or down in copy mode, save the cursor position and size of the
...
last line with content (width != 0) and use it to determine if the cursor
should be at the end of the line. Fixes problem of the cursor always jumping to
the end of the line when scrolling past a blank line.
2009-08-21 07:33:58 +00:00
Nicholas Marriott
0198bb6bf3
Fix grid_expand_line so it actually works when the required size is bigger than
...
2 * the current size.
2009-08-21 07:29:37 +00:00
Nicholas Marriott
1501b3fbbd
A few trivial optimisations: no need to check for zero size if calling
...
buffer_ensure in buffer.c; expand grid lines by a greater increase than one
each time; and don't read UTF-8 data unless it actually needs to be checked
when overwriting a cell.
2009-08-20 19:14:42 +00:00
Nicholas Marriott
234ad54b2c
Nuke unused variable.
2009-08-20 10:48:25 +00:00
Nicholas Marriott
bf121f7c60
Handle the device attributes (DA) escape sequence.
2009-08-19 17:00:31 +00:00
Jason McIntyre
c741f2f4a6
tweak previous;
2009-08-19 16:10:26 +00:00
Nicholas Marriott
55336657d4
Don't read beyond the edge of the screen when searching (dies with debug
...
enabled).
2009-08-19 14:46:56 +00:00
Nicholas Marriott
c41aa49059
Use cfsetispeed/cfsetospeed to set termios speed members.
2009-08-19 14:32:15 +00:00
Nicholas Marriott
3f4418d84d
Extend command-prompt with a -p option which is a comma-separated list of one
...
or more prompts to present in order.
The responses to the prompt are replaced in the template string: %% are
replaced in order, so the first prompt replaces the first %%, the second
replaces the second, and so on. In addition, %1 up to %9 are replaced with the
responses to the first the ninth prompts
The default template is "%1" so the response to the first prompt is processed
as a command.
Note that this changes the behaviour for %% so if there is only one prompt,
only the first %% will be replaced. Templates such as "neww -n '%%' 'ssh %%'"
should be changed to "neww -n '%1' 'ssh %1'".
From Tiago Cunha.
2009-08-19 10:39:50 +00:00
Nicholas Marriott
036de0c5e4
Instead of just checking for an empty buffer, which may not be the case if
...
there is unconsumed data, save the previous size and use it instead. This means
that activity monitoring should work in this (unlikely) event.
Also remove a debugging statement that no longer seems necessary.
2009-08-18 21:41:13 +00:00
Nicholas Marriott
c488e5e40d
Whoops, getting the comparison the right way round is usually recommended.
2009-08-18 21:37:04 +00:00
Nicholas Marriott
8b7be5861e
Move another expensive options test to after a cheaper timer check/update.
2009-08-18 21:18:20 +00:00
Nicholas Marriott
fa617467b1
options_get_number() is relatively expensive and a check for dead panes happens
...
a lot more often than actually finding one, so instead of getting the option
for every check, get it for every dead window found.
2009-08-18 21:14:24 +00:00
Nicholas Marriott
145ba777e8
Now that pane targets (-t) are supported, switch some commands to use them
...
where it makes sense: clock-mode, copy-mode, scroll-mode, send-keys,
send-prefix.
2009-08-18 16:21:04 +00:00
Nicholas Marriott
dc6271cd79
Tag a few missed printf-like functions and fix a missing "%s".
2009-08-18 14:48:42 +00:00
Nicholas Marriott
003a2e6479
Pass show-buffer output through vis(3) as well, and wrap it to the edge of the
...
terminal when used from the command line.
2009-08-18 13:08:43 +00:00
Nicholas Marriott
840fff5e5e
Change list-buffers to run the preview of the buffer through vis(1).
2009-08-18 12:26:37 +00:00
Nicholas Marriott
1c58b94141
Use the full screen width when printing output rather than one less.
2009-08-18 11:53:03 +00:00
Nicholas Marriott
406fc209ac
Nuke unnecessary assignment.
2009-08-18 09:51:51 +00:00
Nicholas Marriott
feaf91ab93
Add a "delete line" key when editing in the status line or the search up/down
...
prompt. C-u with emacs keys, d with vi.
2009-08-18 07:23:43 +00:00
Nicholas Marriott
c828c2f366
Add (naive) searching and goto line in copy mode. Searching is C-r and C-s with
...
emacs keys, / and ? with vi; n repeats the search again with either key
set. All searching wraps the top/bottom. Goto line is g for both emacs and vi.
The search prompts don't have full line editing, just simple append and delete
characters.
Also sort the mode keys list in tmux.1.
2009-08-18 07:08:26 +00:00
Nicholas Marriott
e7cd547457
Reset attributes as well as scroll region before poll(2) and add a big comment
...
explaining why.
2009-08-14 11:23:34 +00:00
Nicholas Marriott
5cf994856f
Send SGR0 when initialising the screen. Fixes problems on terminals with BCE
...
(like putty) if the background colours is non-default when tmux starts. May
also fix problems when resuming a suspended tmux.
2009-08-14 08:53:52 +00:00
Nicholas Marriott
09cbd0c695
Switch the prompt code to return an empty string when the user enters no
...
response and reserve NULL for an explicit cancel. Change all callbacks to treat
them the same so no functional change.
Also add cancel key bindings to emacs mode which were missing.
2009-08-13 23:44:18 +00:00
Nicholas Marriott
7a359c00ac
vi(1)-style half page scroll in copy and scroll modes. Move the vi full page
...
scroll key to C-b instead of C-u and use C-u/C-d for half page scrolling with
vi keys. In emacs mode, half page scrolling is bound to M-Up and M-Down.
Suggested by merdely (about a year ago :-)).
2009-08-13 22:32:18 +00:00
Nicholas Marriott
39154402e5
Scroll by two less than the number of lines in the screen, like emacs, rather
...
than by the entire screen, to make it easier to pull things out from under the
line indicator. Suggested by claudio.
2009-08-13 22:11:43 +00:00
Nicholas Marriott
375be90fd1
Disable mode-mouse (mouse in copy/choice mode) by default as it isn't very
...
useful at the moment and causes confusion.
2009-08-13 21:56:14 +00:00
Nicholas Marriott
3ad4de6c8c
Add a base-index session option to specify the first index checked when looking
...
for an index for a new window.
2009-08-13 20:11:58 +00:00
Nicholas Marriott
3026118c70
Allowing copy mode to scroll left and right is annoying, so limit it to the
...
real screen width. To indicate the cursor is at the end of the line rather than
the cell before, put a '$' in the last cell.
Also clear the selection when the terminal is resized to avoid tmux getting
confused.
2009-08-13 19:35:20 +00:00
Nicholas Marriott
e2ff51f93f
Rather than telling the client to exit in the function when creating a new
...
session detached, let the caller do it. Allows "tmux new -d \; attach" to work.
2009-08-13 19:16:14 +00:00
Nicholas Marriott
52793e7a3f
When creating a new session from the command-line where there is an external
...
terminal, copy the termios(4) special characters and use them for new windows
created in the new session. Suggested by Theo.
2009-08-13 19:03:59 +00:00