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
Nicholas Marriott
5ee84436c8
window_add_pane cannot fail, so remove the unused cause argument and don't
...
bother to check for a NULL return.
2009-07-22 21:34:36 +00:00
Nicholas Marriott
f7df0bac96
Tidy the target parsing code a bit and correct the behaviour so that as before
...
a string with no colon as a target window is first looked up as a window then
as a session, noted by Iain Morgan.
Also attempt to clarify the description of the target specification in the man
page.
2009-07-22 21:23:29 +00:00
Nicholas Marriott
dd4a3b24fc
tty_write is relatively short and the only function left in tty-write.c so move
...
it into tty.c.
2009-07-22 20:56:58 +00:00
Nicholas Marriott
ddad0be5f7
More tty code tidying: move the saved cursor/region position (from before the
...
screen was updated) out of struct screen and into struct tty_ctx.
2009-07-22 20:53:38 +00:00
Nicholas Marriott
bb4bab4c26
log_debug3 no longer exists, change the sole use in GRID_DEBUG to log_debug2.
2009-07-22 18:06:58 +00:00
Nicholas Marriott
2ec2837daa
enum tty_cmd is only used as an index into the array of command function
...
pointers, so remove it and use the function pointers directly to represent
themselves.
2009-07-22 18:02:23 +00:00
Nicholas Marriott
6a309c53a8
There are relatively few arguments to tty_cmd_* functions now, so tidy them up
...
by using a struct rather than hiding everything with varargs.
2009-07-22 16:45:31 +00:00
Nicholas Marriott
5bd72ec629
tty_cmd_raw is only used once, for raw UTF-8 output, so rename it to
...
tty_cmd_utf8character and eliminate the size argument.
2009-07-22 15:55:32 +00:00
Nicholas Marriott
e43b6a2dd2
Adjust field width to fit longest key when listing.
2009-07-21 22:41:00 +00:00
Nicholas Marriott
3eb6080de3
Remove leftover debug logging of password.
2009-07-21 21:20:07 +00:00
Nicholas Marriott
76a9d98562
Make some functions which return unused values void (mostly found by lint) and
...
tweak a redundant expression in window_pane_set_mode.
2009-07-21 19:54:22 +00:00
Nicholas Marriott
6945e86fd7
Nix a few unused attributes on arguments which are no longer unused.
2009-07-21 18:52:03 +00:00
Nicholas Marriott
044ebf1952
Remove a couple of unused functions and fix a type ("FALLTHOUGH"), found by
...
lint.
2009-07-21 18:40:30 +00:00