Nicholas Marriott
3a89d1ef7f
copy mode uses the real screen as backing and if it is updated while copying,
...
strange things can happen. So, freeze reading from the pty while in copy mode.
2010-02-19 00:03:21 +00:00
Nicholas Marriott
44ded35d5d
Add "N" key to search the opposite way from the last search (reverse of "n"),
...
from Micah Cowan.
2010-02-11 20:39:40 +00:00
Nicholas Marriott
4651180503
Use the array.h code for the causes list.
2010-02-06 23:22:27 +00:00
Nicholas Marriott
bb53c20c18
Support attaching a client read-only with a new -r flag to the attach-session
...
command.
2010-02-06 22:55:31 +00:00
Nicholas Marriott
3ef3802629
Rectangle copy support, from Robin Lee Powell.
2010-02-06 17:35:01 +00:00
Nicholas Marriott
8aba77b7be
Instead of bailing out on the first configuration file error, carry on,
...
collecting all the errors, then start with the active window in more mode
displaying them.
2010-02-06 17:15:33 +00:00
Nicholas Marriott
5e6a7c85cc
vi-style B, W and E keys in copy mode to navigate between words treating only
...
spaces as word separators. Also add . to the list of word separators for
standard word navigation.
From Micah Cowan, tweaked slightly by me.
2010-02-04 20:00:26 +00:00
Nicholas Marriott
06ce9da32a
Add scroll-up/scroll-down for choose/more mode, from Micah Cowan.
2010-02-01 22:15:51 +00:00
Nicholas Marriott
3e2cc2d2c4
Alter next-word to have vi-like movement behaviour, and add next-word-end with
...
the existing emacs behaviour. From Micah Cowan.
2010-01-27 20:18:52 +00:00
Nicholas Marriott
1e5a94fdb5
Top/bottom of history mode keys, diff from Micah Cowan, tweaked by me.
2010-01-25 21:33:39 +00:00
Nicholas Marriott
6a45fab608
New command, join-pane, to split and move an existing pane into the space (like
...
splitw then movep, or the reverse of breakp).
2010-01-07 20:52:18 +00:00
Nicholas Marriott
7e4f8b45b6
Options to set the colour of the pane borders, with different colours for the
...
active pane.
2010-01-03 12:51:05 +00:00
Nicholas Marriott
19ea306606
Allow keys to be replaced and reorder the table so that terminfo-defined keys
...
(or terminal-overrides) take precedence over internally defined.
2009-12-17 17:39:56 +00:00
Nicholas Marriott
30962cb200
New server option, escape-time, to set the timeout used to detect if escapes
...
are alone or part of a function key or meta sequence.
2009-12-14 10:43:41 +00:00
Nicholas Marriott
a4c9a80dac
Add "server options" which are server-wide and not bound to a session or
...
window. Set and displayed with "set -s" and "show -s".
Currently the only option is "quiet" (like command-line -q, allowing it to be
set from .tmux.conf), but others will come along.
2009-12-10 09:16:52 +00:00
Nicholas Marriott
6311bd119e
Permit panes to be referred to as "top", "bottom", "top-left" etc, if the right
...
pane can be identified.
2009-12-08 07:49:31 +00:00
Nicholas Marriott
15a64b805e
Massive spaces->tabs and trailing whitespace cleanup, hopefully for the last
...
time now I've configured emacs to make them displayed in really annoying
colours...
2009-12-03 22:50:09 +00:00
Nicholas Marriott
6c9862662f
Eliminate duplicate code and ease the passage for server-wide options by adding
...
a -w flag to set-option and show-options and making setw and showw aliases to
set -w and show -w.
Note: setw and showw are still there, but now aliases for set -w and show -w.
2009-12-03 17:44:02 +00:00
Nicholas Marriott
0926a23014
New command, capture-pane, which copies the entire pane contents to a paste
...
buffer. From Jonathan Alvarado.
2009-12-01 18:42:38 +00:00
Nicholas Marriott
29a5931c6a
Handle partial xterm function key sequences.
2009-11-30 16:44:03 +00:00
Nicholas Marriott
106ee8f30a
This doesn't need to be u_int.
2009-11-26 23:13:47 +00:00
Nicholas Marriott
8cb410c63c
Tidy up various bits of the paste code, make the data buffer char * and add
...
comments.
2009-11-26 22:28:24 +00:00
Nicholas Marriott
4ca857e0e9
Remove a couple of unused arguments where possible, and add /* ARGSUSED */ to
...
the rest to reduce lint output.
2009-11-26 21:37:13 +00:00
Nicholas Marriott
094bca5ac3
Output the right keys for application and number keypad modes (they were the
...
wrong way round).
2009-11-25 12:24:31 +00:00
Nicholas Marriott
33b337f618
Change status line drawing to create the window list in a separate screen and
...
then copy it into the status line screen. This allows UTF-8 in window names and
fixes some problems with #[] in window-status-format.
2009-11-19 19:47:28 +00:00
Nicholas Marriott
543fb99bc6
Two new options, window-status-format and window-status-current-format, which
...
allow the format of each window in the status line window list to be controlled
using similar # sequences as status-left/right.
This diff also moves part of the way towards UTF-8 support in window names but
it isn't quite there yet.
2009-11-19 16:22:10 +00:00
Nicholas Marriott
ac5b7d518e
Don't interpret #() for display-message, it usually doesn't make sense and may
...
leak commands.
2009-11-19 10:22:06 +00:00
Nicholas Marriott
a78cc98c8b
Cleanup by moving various (mostly horrible) little bits handling UTF-8 grid
...
data into functions in a new file, grid-utf8.c, and use sizeof intead of
UTF8_DATA.
Also nuke trailing whitespace from tmux.1, reminded by jmc.
2009-11-18 17:02:17 +00:00
Nicholas Marriott
8db145da1e
Add a per-client log of status line messages displayed while that client
...
exists. A new message-limit session option sets the maximum number of entries
and a command, show-messages, shows the log (bound to ~ by default).
This (and prompt history) might be better as a single global log but until
there are global options it is easier for them to be per client.
2009-11-18 13:16:33 +00:00
Nicholas Marriott
10e05f9867
Tweak a comment and add some spacing.
2009-11-13 19:58:32 +00:00
Nicholas Marriott
76ef8770cd
Get rid of the ugly CMD_CHFLAG macro and use a const string (eg "dDU") in the
...
command entry structs and a couple of functions to check/set the flags.
2009-11-13 19:53:28 +00:00
Nicholas Marriott
8e47966225
Destroy panes immediately rather than checking them all every loop.
2009-11-13 17:33:07 +00:00
Nicholas Marriott
5d397462e4
Zap unused functions, prompted by deraadt.
2009-11-13 07:00:54 +00:00
Nicholas Marriott
2756437f4b
Only need to chmod +x or -x the socket when a client is created, lost or
...
attached, rather than every event loop.
2009-11-11 08:00:42 +00:00
Nicholas Marriott
b92fcf23fd
Whoops, this is needed for last commit as well.
2009-11-10 17:41:35 +00:00
Nicholas Marriott
80e0158112
Switch the tty key tree over to an (unbalanced) ternary tree which allows
...
partial matches to be done (they wait for further data or a timer to expire,
like a naked escape).
Mouse and xterm-style keys still expect to be atomic.
2009-11-05 19:29:41 +00:00
Nicholas Marriott
a790e16fa2
Key flags are only used for initialisation so they are not needed in the main
...
tty_key struct.
2009-11-05 10:44:36 +00:00
Nicholas Marriott
38e13942ac
Now all timers are events, there is no longer any need to wake up every 50 ms -
...
only wake up when an event happens.
2009-11-05 08:48:15 +00:00
Nicholas Marriott
b58bf49e91
Switch tty key input over to happen on a read event. This is a bit more
...
complicated because of escape input, but in that case instead of processing a
key immediately, schedule a timer and reprocess the bufer when it expires.
This currently assumes that keys will be atomic (ie that if eg F1 is pressed
the entire sequence is present in the buffer). This is usually but not always
true, a change in the tree format so it can differentiate potential (partial)
key sequences will happens soon and will allow this to be fixed.
2009-11-05 08:45:08 +00:00
Nicholas Marriott
80444436f3
Convert the key repeat timer to an event.
2009-11-05 00:05:00 +00:00
Nicholas Marriott
44d6a2c435
Change window name change to use a timer event rather than a gettimeofday()
...
check every loop.
2009-11-04 23:54:57 +00:00
Nicholas Marriott
946ed97273
Move status timer check into the global once-per-second timer, this could maybe
...
be done better but one every second is better than once every 50 ms.
2009-11-04 23:42:51 +00:00
Nicholas Marriott
b1264a7416
Use timeout events for the identify and message timers.
2009-11-04 23:29:42 +00:00
Nicholas Marriott
b3c4956efe
Don't reenlist the client imsg event every loop, instead have a small function
...
to it and call it after the event triggers or after a imsg is added.
2009-11-04 23:12:43 +00:00
Nicholas Marriott
5bebbd81d7
Bye-bye buffer*.c.
2009-11-04 22:44:53 +00:00
Nicholas Marriott
a02c7e804c
Convert the window pane (pty master side) fd over to use a bufferevent.
...
The evbuffer API is very similar to the existing tmux buffer API so this was
remarkably painless. Not many possible ways to do it, I suppose.
2009-11-04 22:43:11 +00:00
Nicholas Marriott
91ad830c88
Switch window pane pipe redirect fd over to a bufferevent.
2009-11-04 22:02:38 +00:00
Nicholas Marriott
7342615c7d
Switch tty fds over to a bufferevent.
2009-11-04 21:47:42 +00:00
Nicholas Marriott
4d6091379b
Switch jobs over to use a bufferevent.
2009-11-04 21:04:43 +00:00
Nicholas Marriott
abf3a5d50e
Initial changes to move tmux to libevent.
...
This moves the client-side loops are pretty much fully over to event-based only
(tmux.c and client.c) but server-side (server.c and friends) treats libevent as
a sort of clever poll, waking up after every event to run various things.
Moving the server stuff over to bufferevents and timers and so on will come
later.
2009-11-04 20:50:11 +00:00