| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
|
| |
Clear to the end of the screen from the right starting point when drawing
line-by-line (in panes or if ed not supported). Fixes problem spotted by Frank
Terbeck.
|
|
|
|
|
| |
Old xterm F1-F4 are \033O_P not \033[O_P.
|
|
|
|
|
| |
Unused variable. Aargh.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
key_string_lookup_key uses a static buffer, so copy its output into the working
buffer before calling the command print function which can also use it (eg
send-keys).
|
|
|
|
|
|
| |
Key flags are only used for initialisation so they are not needed in the main
tty_key struct.
|
|
|
|
|
| |
EVLOOP_ONCE takes care of the wakeup, so no need to call event_loopexit(NULL).
|
|
|
|
|
|
| |
Now all timers are events, there is no longer any need to wake up every 50 ms -
only wake up when an event happens.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Convert the key repeat timer to an event.
|
| |
|
|
|
|
|
|
| |
Change window name change to use a timer event rather than a gettimeofday()
check every loop.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Use timeout events for the identify and message timers.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
It would help if I read my own comments... make alt keys work again by sending
alt AND the key not alt instead of it.
|
|
|
|
|
| |
Move some common code into a function.
|
|
|
|
|
| |
Tell the client to exit on configuration file error.
|
|
|
|
|
| |
Bye-bye buffer*.c.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Call event_init() before loading the config file, since potentially it could
set up events.
|
|
|
|
|
| |
Switch window pane pipe redirect fd over to a bufferevent.
|
|
|
|
|
| |
Switch tty fds over to a bufferevent.
|
|
|
|
|
| |
Add back JOB_PERSIST checks that got lost.
|
|
|
|
|
| |
Switch jobs over to use a bufferevent.
|
|
|
|
|
| |
A couple of minor cosmetic changes.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Unused (but assigned to) variable, found by lint.
|
|
|
|
|
| |
Ignore the colour on space, /not/ the attributes.
|
|
|
|
|
|
| |
Fix the reverse emulation when a terminal doesn't have setab to use the correct
fg/bg (adjusted if spaces) and happen before attribute setting.
|
|
|
|
|
| |
malloc_options on DragonFlyBSD, and FreeBSD.
|
|
|
|
|
|
| |
Change declaration and use of malloc_options to be more standard, from Tim van
der Molen.
|
|
|
|
|
|
| |
Don't backoff based on suspended or deda clients as they are always likely to
have data backed up.
|
|
|
|
|
|
|
|
|
|
| |
Add an activity time for clients, like for sessions, and change session and
client lookup to pick the most recently used rather than the most recently
created - this is much more useful when used interactively and (because the
activity time is set at creation) should have no effect on source-file.
Based on a problem reported by Jan Johansson.
|
|
|
|
|
|
|
| |
If it isn't available explicitly, work out the current client in a similar way
to the current session - build a list of the possibilities then pick the
newest.
|
|
|
|
|
|
|
|
|
|
| |
Change session and client activity and creation time members to have more
meaningful names.
Also, remove the code to try and update the session activity time for the
command client when a command message is received as is pointless because it
des not have a session.
|
|
|
|
|
|
| |
tv member of struct paste_buffer is updated but not otherwise used, so remove
it.
|
|
|
|
|
| |
Fix vi page up mode key (from naddy), add missing half page keys, and sort.
|
|
|
|
|
|
|
| |
Double the escape timer (the time after a \033 is received before tmux gives up
waiting to see if it is part of a key sequence and passes it through) to 500
ms, the previous setting was too fast. Suggested by naddy.
|
|
|
|
|
|
|
|
|
|
| |
When matching the session names with -t, look for exact matches first before
trying partial matches.
Avoids problems where two ambiguous matches are present before an exact match
(eg foo1, foo2, foo would give an error on trying -tfoo), reported by Natacha
Port? natbsd at instinctive dot eu.
|
|
|
|
|
| |
Leftover unused variable :-/.
|
|
|
|
|
|
| |
There isn't much point in doing lstat before connect so instead just do connect
and handle ENOENT from it which is a little tidier.
|
|
|
|
|
| |
Reorder slightly to tidy code.
|
|
|
|
|
|
|
|
|
| |
Add a flag for jobs that shouldn't be freed after they've died and use it for
status jobs, then only kill those jobs when status-left, status-right or
set-titles-string is changed.
Fixes problems with changing options from inside #().
|