summaryrefslogtreecommitdiffstats
path: root/server-client.c
AgeCommit message (Collapse)Author
2009-12-03Massive spaces->tabs and trailing whitespace cleanup, hopefully for the lastNicholas Marriott
time now I've configured emacs to make them displayed in really annoying colours...
2009-11-26Remove a couple of unused arguments where possible, and add /* ARGSUSED */ toNicholas Marriott
the rest to reduce lint output.
2009-11-19Two new options, window-status-format and window-status-current-format, whichNicholas Marriott
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-19Don't interpret #() for display-message, it usually doesn't make sense and mayNicholas Marriott
leak commands.
2009-11-18Add a per-client log of status line messages displayed while that clientNicholas Marriott
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-13Tidy up and fix some types, prompted by lint via deraadt.Nicholas Marriott
2009-11-11Only need to chmod +x or -x the socket when a client is created, lost orNicholas Marriott
attached, rather than every event loop.
2009-11-05Switch tty key input over to happen on a read event. This is a bit moreNicholas Marriott
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-05Convert the key repeat timer to an event.Nicholas Marriott
2009-11-04Move status timer check into the global once-per-second timer, this could maybeNicholas Marriott
be done better but one every second is better than once every 50 ms.
2009-11-04Use timeout events for the identify and message timers.Nicholas Marriott
2009-11-04Don't reenlist the client imsg event every loop, instead have a small functionNicholas Marriott
to it and call it after the event triggers or after a imsg is added.
2009-11-04Switch tty fds over to a bufferevent.Nicholas Marriott
2009-11-04Initial changes to move tmux to libevent.Nicholas Marriott
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-03Add an activity time for clients, like for sessions, and change session andNicholas Marriott
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.
2009-11-03Change session and client activity and creation time members to have moreNicholas Marriott
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.
2009-10-27Move the poll registration functions into the server-*.c files.Nicholas Marriott
2009-10-26tabs are better; ok nicmTheo Deraadt
2009-10-26Don't do anything in the client callback if the client has already died toNicholas Marriott
avoid a use-after-free (the callback is used twice, once for the client itself and once for the tty). Fixes crashes seen by Han Boetes.
2009-10-25Don't try to continue processing a client if the session has been destroyed.Nicholas Marriott
2009-10-25Remove the -d flag to tmux and just use op/AX to detect default colours.Nicholas Marriott
Irritatingly, although op can be used to tell if a terminal supports default colours, it can't be used to set them because in some terminfo descriptions it resets attributes as a side-effect (acts as sgr0) and in others it doesn't, so it is not possible to determine reliably what the terminal state will be afterwards. So if AX is missing and op is present, tmux just sends sgr0. Anyone using -d for a terminal who finds they actually needed it can replace it using terminal-overrides, but please let me know as it is probably an omission from terminfo.
2009-10-25+time.h.Nicholas Marriott
2009-10-22Redraw checks have to after handling input or pane redraw flags set by keyNicholas Marriott
presses will not be acted on.
2009-10-22The client buffers have to be checked after every event in order to catch theNicholas Marriott
escape timers and properly reset the cursor.
2009-10-22Split the server code handling clients, jobs and windows off into separateNicholas Marriott
files from server.c (merging server-msg.c into the client file) and rather than iterating over each set after poll(), allow a callback to be specified when the fd is added and just walk once over the returned pollfds calling each callback where needed. More to come, getting this in so it is tested.