Jason McIntyre
6b69b93b53
clean up some macro abuse in the commands section;
2009-08-04 07:56:38 +00:00
Nicholas Marriott
189fb08e13
Split the comparison into a function to make this code smaller and more
...
understandable.
2009-08-03 17:12:07 +00:00
Nicholas Marriott
ac54dee9bb
Don't try to free old string values (and crash) when they are overridden unless
...
they were actually found in the source terminal description. Reported by jmc.
2009-08-03 15:30:16 +00:00
Jason McIntyre
9a391b3320
tweak previous;
2009-08-03 14:34:47 +00:00
Nicholas Marriott
1673735f02
Add a terminal-overrides session option allowing individual terminfo(5) entries
...
to be overridden. The 88col/256col checks are now moved into the default
setting and out of the code.
Also remove a couple of old workarounds for xterm and rxvt which are no longer
necessary (tmux can emulate them if missing).
2009-08-03 14:10:54 +00:00
Matthieu Herrb
e4bb08e1f5
Fix checking of setupterm(3) error codes. While there include the
...
name of the terminal type causing the error where relevant. ok nicm@.
2009-08-02 20:47:35 +00:00
Nicholas Marriott
5db47ed53a
Pass the ACS border characters through tty_get_acs so they appear correctly on
...
terminals which don't use the standard set.
2009-07-31 10:12:49 +00:00
Nicholas Marriott
95caeaa5dc
Don't leak when rollling buffers off when the paste buffer limit is reached.
2009-07-30 20:50:54 +00:00
Nicholas Marriott
97f105cde2
Plug some memory leaks.
2009-07-30 20:41:48 +00:00
Nicholas Marriott
61f3fc7e4d
Don't babysit people and let them try to load /dev/zero or (more useful)
...
/dev/null if they want.
2009-07-30 17:46:12 +00:00
Nicholas Marriott
8df3035831
Remove some dead code found by clang.
2009-07-30 17:29:12 +00:00
Jason McIntyre
6d86882ed4
tweak previous;
2009-07-30 16:59:24 +00:00
Nicholas Marriott
9f1dd4d0af
Similar changes for server_msg_dispatch: use a switch instead of a lookup table
...
and merge smaller functions inline.
2009-07-30 16:40:12 +00:00
Nicholas Marriott
5f13bb0c3a
There aren't many client message types or code to handle them so get rid of the
...
lookup table and use a switch, merge the tiny handler functions into it, and
move the whole lot to client.c.
Also change client_msg_dispatch to consume as many messages as possible and
move the call to it to the right place so it checks for signals afterwards.
Prompted by suggestions from eric@.
2009-07-30 16:32:12 +00:00
Nicholas Marriott
479d614884
Tell the server when the client gets SIGTERM so it can clean up the terminal
...
properly, rather than just exiting.
2009-07-30 16:16:19 +00:00
Nicholas Marriott
071494d8fa
Merge pane number into the target specification for pane commands. Instead of
...
using -p index, a target pane is now addressed with the normal -t window form
but suffixed with a period and a pane index, for example :0.2 or
mysess:mywin.1. An unadorned number such as -t 1 is tried as a pane index in
the current window, if that fails the same rules are followed as for a target
window and the current pane in that window used.
As a side-effect this now means that swap-pane can swap panes between different
windows.
Note that this changes the syntax of the break-pane, clear-history, kill-pane,
resize-pane, select-pane and swap-pane commands.
2009-07-30 13:45:56 +00:00
Jason McIntyre
a87228b4ff
new sentence, new line;
2009-07-30 13:31:22 +00:00
Nicholas Marriott
a419e73f7a
Add a mode-mouse option to prevent tmux taking over the mouse in choice or copy
...
modes.
2009-07-30 07:04:50 +00:00
Nicholas Marriott
2b331084b4
Add an additional heuristic to work out the current session when run from the
...
command line. The name of all slave ptys in the server is known, so if the
client was run on a tty, look for any sessions containing that tty and use the
most recently created.
This is more reliable than looking at $TMUX if windows have been moved or
linked between sessions.
2009-07-29 17:03:16 +00:00
Nicholas Marriott
c1d6d7ac6b
Rename struct hdrtype to msgtype which is a better name and can be used even
...
when struct hdr disappears.
2009-07-29 14:17:26 +00:00
Nicholas Marriott
d3c461097b
Taking account of the "s, 22 not 24 is the maximum length of #T in status-right
...
to prevent the date being cut off.
2009-07-29 05:36:53 +00:00
Nicholas Marriott
f596be9950
Final pieces of mode key rebinding: bind-key and unbind-key now accept a -t
...
argument to modify a table.
2009-07-28 17:05:10 +00:00
Nicholas Marriott
9e5d585ba4
Accept and print "Enter" and "Escape" for keys rather than C-m and C-[.
2009-07-28 09:18:01 +00:00
Nicholas Marriott
86785004ba
Next step towards customisable mode keys: build each default table of keys into
...
a named tree on start and use that for lookups. Also add command to string
translation tables and modify list-keys to show the the mode key bindings (new
-t argument).
2009-07-28 07:03:32 +00:00
Nicholas Marriott
2da4864483
If select-layout is not given an argument, repply the last layout used in the
...
window, if any.
2009-07-28 06:48:44 +00:00
Nicholas Marriott
309b76fb32
Remove an unused entry in the mode keys command enum and rename
...
MODEKEYCOPY_QUIT to _CANCEL to match the others.
2009-07-27 20:36:13 +00:00
Nicholas Marriott
d95274c5f2
Change mode key bindings from big switches into a set of tables. Rather than
...
lumping them all together, split editing keys from those used in choice/more
mode and those for copy/scroll mode.
Tidier and clearer, and the first step towards customisable mode keys.
2009-07-27 19:29:35 +00:00
Nicholas Marriott
13e29dd7b5
Get rid of empty mode_key_free function.
2009-07-27 18:51:46 +00:00
Nicholas Marriott
ad0aad21d5
Add a key to delete to end of line at the prompt (^K in emacs mode, C/D in vi).
...
From Kalle Olavi Niemitalo.
2009-07-27 12:11:11 +00:00
Nicholas Marriott
fc65da1eed
Draw UTF-8 characters under the selection correctly.
2009-07-27 11:33:21 +00:00
Nicholas Marriott
584eda8339
Change previous-word behavior to move to the beginning of the word (matches
...
emacs and vi). From Kalle Olavi Niemitalo.
2009-07-27 07:42:45 +00:00
Nicholas Marriott
639fbe0392
Detect backspace by looking at termios VERASE and translate it into \177 (which
...
matches screen's behaviour if not its termcap/terminfo entry). The terminfo kbs
cap is often wrong or missing so it can't be used, and just assuming \177 may
be wrong.
2009-07-26 21:42:08 +00:00
Nicholas Marriott
55d8c01c33
Calculate the space available for the prompt buffer and the cursor position
...
correctly, and make it work when the screen is not wide enough.
Noticed by Kalle Olavi Niemitalo.
2009-07-26 21:13:47 +00:00
Nicholas Marriott
6b3b852ebc
Go to the next if the current best process is replaced, don't keep comparing it
...
with itself. Also fix process name comparison.
2009-07-26 19:42:26 +00:00
Nicholas Marriott
34a82e7629
Make all messages sent between the client and server fixed size.
...
This is the first of two changes to make the protocol more resilient and less
sensitive to other changes in the code, particularly with commands. The client
now packs argv into a buffer and sends it to the server for parsing, rather
than doing it itself and sending the parsed command data.
As a side-effect this also removes a lot of now-unused command marshalling
code.
Mixing a server without this change and a client with or vice versa will cause
tmux to hang or crash, please ensure that tmux is entirely killed before
upgrading.
2009-07-26 12:58:44 +00:00
Nicholas Marriott
2bb89bc5bc
Set the active pane when respawning a window - fixes problems when respawning a
...
window with multiple panes.
2009-07-24 19:35:33 +00:00
Nicholas Marriott
133173850c
Use the full range of ACS line drawing characters to draw pane borders,
...
including intersections.
2009-07-24 19:14:38 +00:00
Nicholas Marriott
c6dac5c3c9
cmd_find_index should return -2 on error.
2009-07-24 18:46:40 +00:00
Nicholas Marriott
029599c02c
Simplify screen redrawing by drawing the border and background together rather
...
than border separately, and consolidating all the drawing characters into one
string.
2009-07-24 16:21:42 +00:00
Nicholas Marriott
1d1ea681f0
Accept lowercase c- and m- prefix as well as C- and M-.
2009-07-24 14:57:22 +00:00
Nicholas Marriott
5a1a106637
Permit commands to be bound to key presses without the prefix key first. The
...
new -n flag to bind-key and unbind-key sets or removes these bindings, and
list-key shows them in []s.
2009-07-24 14:52:47 +00:00
Stuart Henderson
ce4eb6559e
up-pane and down-pane no longer auto-repeat; update the description of
...
repeat-time accordingly. ok nicm@
if you prefer old behaviour;
bind -r Up up-pane
bind -r Down down-pane
2009-07-24 14:50:24 +00:00
Nicholas Marriott
4a04b498db
None of the server message functions return anything but 0, so make them all
...
void.
Also remove a leftover variable in client.c.
2009-07-23 21:19:11 +00:00
Nicholas Marriott
16e017d5a6
Tidy client message return slightly: convert flags into an enum, and merge
...
error string into struct client_ctx as well.
2009-07-23 20:24:27 +00:00
Nicholas Marriott
ba84ddcf8e
Redraw after starting selection to correctly remove any existing selection.
2009-07-23 17:03:47 +00:00
Nicholas Marriott
895171478f
Revert r1.5, I don't like it, new sessions should start off identically - with
...
the defaults.
2009-07-23 15:47:56 +00:00
Nicholas Marriott
e0d1954840
C-d is delete as well in emacs mode.
2009-07-23 13:44:02 +00:00
Nicholas Marriott
96a7cf1e6a
Both of cmdclient and curclient CAN be NULL - if the command is executed from
...
the configuration file. In this case, attach-session can't do much, and
new-session should just assume -d.
2009-07-23 12:33:48 +00:00
Nicholas Marriott
05b511f96a
If there is a current session, use its default path and working directory for
...
the initial window when creating a new session.
2009-07-22 22:47:43 +00:00
Nicholas Marriott
bb14c36a27
Pass a set of flags into client_init rather than just a start_server
...
variable. Only one flag now but more to come later.
2009-07-22 21:58:56 +00:00