aboutsummaryrefslogtreecommitdiff
path: root/tmux.h
Commit message (Collapse)AuthorAge
...
* Sync OpenBSD patchset 527:Tiago Cunha2009-11-13
| | | | | | Only need to chmod +x or -x the socket when a client is created, lost or attached, rather than every event loop.
* Sync OpenBSD patchset 523:Tiago Cunha2009-11-10
| | | | | Whoops, this is needed for last commit as well.
* Sync OpenBSD patchset 513:Tiago Cunha2009-11-08
| | | | | | | | | 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.
* Sync OpenBSD patchset 511:Tiago Cunha2009-11-08
| | | | | | Key flags are only used for initialisation so they are not needed in the main tty_key struct.
* Sync OpenBSD patchset 509:Tiago Cunha2009-11-08
| | | | | | Now all timers are events, there is no longer any need to wake up every 50 ms - only wake up when an event happens.
* Sync OpenBSD patchset 508:Tiago Cunha2009-11-08
| | | | | | | | | | | | 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.
* Sync OpenBSD patchset 507:Tiago Cunha2009-11-08
| | | | | Convert the key repeat timer to an event.
* Sync OpenBSD patchset 506:Tiago Cunha2009-11-08
| | | | | | Change window name change to use a timer event rather than a gettimeofday() check every loop.
* Sync OpenBSD patchset 505:Tiago Cunha2009-11-08
| | | | | | 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.
* Sync OpenBSD patchset 504:Tiago Cunha2009-11-08
| | | | | Use timeout events for the identify and message timers.
* Sync OpenBSD patchset 503:Tiago Cunha2009-11-08
| | | | | | 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.
* Sync OpenBSD patchset 499:Tiago Cunha2009-11-08
| | | | | Bye-bye buffer*.c.
* Sync OpenBSD patchset 498:Tiago Cunha2009-11-08
| | | | | | | | 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.
* Sync OpenBSD patchset 496:Tiago Cunha2009-11-08
| | | | | Switch window pane pipe redirect fd over to a bufferevent.
* Sync OpenBSD patchset 495:Tiago Cunha2009-11-08
| | | | | Switch tty fds over to a bufferevent.
* Sync OpenBSD patchset 493:Tiago Cunha2009-11-08
| | | | | Switch jobs over to use a bufferevent.
* Sync OpenBSD patchset 491:Tiago Cunha2009-11-08
| | | | | | | | | | | | 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.
* Sync OpenBSD patchset 485:Tiago Cunha2009-11-04
| | | | | | | | | | 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.
* Sync OpenBSD patchset 484:Tiago Cunha2009-11-04
| | | | | | | 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.
* Sync OpenBSD patchset 483:Tiago Cunha2009-11-04
| | | | | | | | | | 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.
* Sync OpenBSD patchset 482:Tiago Cunha2009-11-04
| | | | | | tv member of struct paste_buffer is updated but not otherwise used, so remove it.
* Sync OpenBSD patchset 480:Tiago Cunha2009-11-04
| | | | | | | 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.
* Sync OpenBSD patchset 475:Tiago Cunha2009-11-02
| | | | | | | | | 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 #().
* Sync OpenBSD patchset 472:Tiago Cunha2009-11-02
| | | | | | | | | | | If any client currently displaying a window pane has more than 1 KB of output buffered, don't accept any further data from the process running in the pane. This makes tmux much more responsive when flooded with output, although other buffers can still have an impact when running remotely. Prompted by a query from Ranganathan Sankaralingam.
* Sync OpenBSD patchset 468:Tiago Cunha2009-10-28
| | | | | Move the poll registration functions into the server-*.c files.
* Sync OpenBSD patchset 459:Tiago Cunha2009-10-28
| | | | | | | Rewrite xterm-keys code (both input and output) so that works (doesn't always output the same modifiers, accepts all the possible input keys) and is more understandable.
* Sync OpenBSD patchset 458:Tiago Cunha2009-10-28
| | | | | | | Support the (mostly new) function key+modifier caps (kIC-kIC7). Most of these will be caught (soon) by the xterm keys code in xterm itself but some other descriptions such as rxvt define them as well.
* Sync OpenBSD patchset 450:Tiago Cunha2009-10-28
| | | | | Rename keypad keys to something more useful.
* Sync OpenBSD patchset 446:Tiago Cunha2009-10-28
| | | | | | | | | | | | | | | Remove the -d flag to tmux and just use op/AX to detect default colours. 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.
* Sync OpenBSD patchset 438:Tiago Cunha2009-10-23
| | | | | | | | | | | Split the server code handling clients, jobs and windows off into separate 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.
* Sync OpenBSD patchset 433:Tiago Cunha2009-10-23
| | | | | | Client tidying: get rid of client_ctx struct in favour of two variables in client.c, and move the functions in client-fn.c into other files.
* Sync OpenBSD patchset 431:Tiago Cunha2009-10-23
| | | | | Remove unused function.
* Sync OpenBSD patchset 421:Tiago Cunha2009-10-23
| | | | | | | | | | | | | | | Try to reduce the UTF-8 mess. Get rid of passing around u_char[4]s and define a struct utf8_data which has character data, size (sequence length) and width. Move UTF-8 character collection into two functions utf8_open/utf8_append in utf8.c which fill in this struct and use these functions from input.c and the various functions in screen-write.c. Space for rather more data than is necessary for one UTF-8 sequence is in the utf8_data struct because screen_write_copy is still nasty and needs to reinject the character (after combining) into screen_write_cell.
* Sync OpenBSD patchset 420:Tiago Cunha2009-10-23
| | | | | | | | | | | | | UTF-8 combined character fixes. Thai can have treble combinations (1 x width=1 then 2 x width=0) so bump the UTF-8 cell data size to 9 and alter the code to allow this. Also break off the combining code into a separate function, handle any further combining beyond the buffer size by replacing the character with _s, and when redrawing the UTF-8 character don't assume the first part has just been printed, redraw the entire line.
* Sync OpenBSD patchset 418:Tiago Cunha2009-10-23
| | | | | Nuke stray blank line.
* Sync OpenBSD patchset 414:Tiago Cunha2009-10-23
| | | | | | | | Instead of having a complicated check to see if the cursor is in the last position to avoid an explicit wrap, actually move it there. Some UTF-8 fixes to come.
* Sync OpenBSD patchset 409:Tiago Cunha2009-10-15
| | | | | | | | Move lines into the history when scrolling even if the scroll region is not the entire screen. Allows ircII users to see history, prompted by naddy.
* Sync OpenBSD patchset 407:Tiago Cunha2009-10-15
| | | | | | Add mode keys to move the cursor to the top, middle and bottom of the screen. H/M/L in vi mode and M-R/M-r in emacs (bottom of screen not bound in emacs).
* Sync OpenBSD patchset 401:Tiago Cunha2009-10-15
| | | | | | | | | | | | | | When drawing lines that have wrapped naturally, don't force a newline but permit them to wrap naturally again. This allows terminals that use this to guess where lines start and end for eg mouse selecting (like xterm) to work correctly. This was another long-standing issue raised by several people over the last while. Thanks to martynas@ for much testing. This was not trivial to get right so bringing it in for wider testing and adn to fix any further glitches in-tree.
* Sync OpenBSD patchset 400:Tiago Cunha2009-10-15
| | | | | | | | | | When backspace is received at the beginning of a line and the previous line was wrapped, move the cursor back up to the end of the previous line. Another one of the forgotten persons requested this quite a while ago (I need to start noting names on todo items...) when it was quite hard to implement. Now it is easy and I don't see it can do any harm, so hey presto...
* Sync OpenBSD patchset 395:Tiago Cunha2009-10-15
| | | | | | | Use relative cursor movement instead of absolute when possible and when supported by the terminal to reduce the size of the output data (generally about 10-20%).
* Sync OpenBSD patchset 393:Tiago Cunha2009-10-15
| | | | | Similarly add a tty_cursor_pane function to tidy up most of the calls.
* Sync OpenBSD patchset 392:Tiago Cunha2009-10-15
| | | | | _absolute is redundant, just use tty_region.
* Sync OpenBSD patchset 391:Tiago Cunha2009-10-15
| | | | | | Cleanup: use two functions for region setting, one for absolute and one inside pane.
* Sync OpenBSD patchset 387:Tiago Cunha2009-10-12
| | | | | | | | | | | | | Add a pipe-pane command to allow a pane to be piped to a shell command, for example: pipe-pane 'cat >~/out' No arguments stops outputing and closes the pipe; the -o flag toggles a pipe and on and off (useful for key bindings). Suggested by espie@.
* Sync OpenBSD patchset 382:Tiago Cunha2009-10-12
| | | | | | Collect status from dead jobs and don't invoke the callback until both all input (the socket is closed) and status is available.
* Sync OpenBSD patchset 381:Tiago Cunha2009-10-12
| | | | | | | | | Clean up by introducing a wrapper struct for mouse clicks rather than passing three u_chars around. As a side-effect this fixes incorrectly rejecting high cursor positions (because it was comparing them as signed char), reported by Tom Doherty.
* Sync OpenBSD patchset 379:Tiago Cunha2009-10-12
| | | | | | Put all jobs on a global all_jobs list and use that in server.c instead of running through all the clients.
* Sync OpenBSD patchset 377:Tiago Cunha2009-10-12
| | | | | Split list-panes off from list-windows.
* Sync OpenBSD patchset 374:Tiago Cunha2009-10-11
| | | | | | | | | | | | | | | | | | | Rather than running status-left, status-right and window title #() with popen immediately every redraw, queue them up and run them in the background, starting each once every status-interval. The actual status line uses the output from the last run. This brings several advantages: - tmux itself may be called from inside #() without causing the server to hang; - likewise, sleep or similar doesn't cause the server to block; - commands aren't run excessively often when redrawing; - commands shared by status-left and status-right, or used multiple times, will only be run once. run-shell and if-shell still use system()/popen() but will be changed over to use this too later.