summaryrefslogtreecommitdiff
path: root/usr.bin/tmux
AgeCommit message (Collapse)Author
2009-10-20UTF-8 combined character fixes.Nicholas Marriott
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.
2009-10-20Move the check for whether to force a line wrapper lower down into the tty codeNicholas Marriott
where it has access to the tty width, which is what should have been checked.
2009-10-20Nuke stray blank line.Nicholas Marriott
2009-10-19Stop updating the screen when not in output mode, stops copy mode gettingNicholas Marriott
confused.
2009-10-17Always move the cursor position on !xenl terminals, since there is no invisibleNicholas Marriott
last cursor position. Also nuke an unused variable.
2009-10-17Don't print wide characters at screen width - 1. Matches uterm behaviour andNicholas Marriott
is probably a better idea anyway.
2009-10-17Instead of having a complicated check to see if the cursor is in the lastNicholas Marriott
position to avoid an explicit wrap, actually move it there. Some UTF-8 fixes to come.
2009-10-16When checking whether the region will scroll and the cursor position is thusNicholas Marriott
unsuitable for using CUD/CUU, check the current cursor position not the target position.
2009-10-15The pane pty name isn't useful for anything so show the pane number instead.Nicholas Marriott
2009-10-14cmd_find_client shouldn't die when there is an empty slot in the clientsNicholas Marriott
array. DOH.
2009-10-14Don't allow cmd_lookup_client to test clients without a session.Nicholas Marriott
2009-10-13Move lines into the history when scrolling even if the scroll region is notNicholas Marriott
the entire screen. Allows ircII users to see history, prompted by naddy.
2009-10-13Handle DECCOLM by just emulating its side-effect of clearing the screen.Nicholas Marriott
2009-10-13Add mode keys to move the cursor to the top, middle and bottom of the screen.Nicholas Marriott
H/M/L in vi mode and M-R/M-r in emacs (bottom of screen not bound in emacs).
2009-10-13Do this in a better way - print messages when exiting with nonzero.Nicholas Marriott
Also remove the login shell information from server-info, only the client should care about it.
2009-10-13Don't print exit messages when used as a login shell, requested by martynas@ aNicholas Marriott
while back.
2009-10-13Don't try to use \n across scroll region when doing \r\n either.Nicholas Marriott
2009-10-13When a session is unattached, reset its activity timer to prevent it lockingNicholas Marriott
instantly when reattached.
2009-10-13Instead of using something sort of similar for both newline checks, useNicholas Marriott
something the same. Doesn't fix the bug I'm looking for though :-/.
2009-10-12When drawing lines that have wrapped naturally, don't force a newline butNicholas Marriott
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.
2009-10-12When backspace is received at the beginning of a line and the previous line wasNicholas Marriott
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...
2009-10-12Don't run through the column unchanged case if the row was unchanged but thereNicholas Marriott
were no suitable optimisations, instead make it an else to fall through to absolute addressing.
2009-10-12If the vertical cursor movement crosses the scroll region, CUU and CUDNicholas Marriott
shouldn't be used even if VPA isn't present - in that case CUP should be used.
2009-10-12Wrap a couple of long lines.Nicholas Marriott
2009-10-12Use absolute movement if right at the end of the line as it isn't a reliableNicholas Marriott
place to move from relatively.
2009-10-12Use relative cursor movement instead of absolute when possible and whenNicholas Marriott
supported by the terminal to reduce the size of the output data (generally about 10-20%).
2009-10-12Permit attributes to be turned off in #[] by prefixing with "no", for exampleNicholas Marriott
"noblink".
2009-10-12Similarly add a tty_cursor_pane function to tidy up most of the calls.Nicholas Marriott
2009-10-12_absolute is redundant, just use tty_region.Nicholas Marriott
2009-10-12Cleanup: use two functions for region setting, one for absolute and one insideNicholas Marriott
pane.
2009-10-11Like linefeed, don't set the scroll region for reverse index unless it will beNicholas Marriott
needed. While here, also tidy up a couple of long lines and remove an extraneous blank.
2009-10-11punctuation fix;Jason McIntyre
2009-10-11Set the current window pointer to NULL when killing a winlink that is to beNicholas Marriott
replaced with link-window -k. This prevents it being pushed onto the last window stack and causing a use-after-free. Only took me an hour to find this :-/...
2009-10-11Add a pipe-pane command to allow a pane to be piped to a shell command, forNicholas Marriott
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@.
2009-10-11Convert if-shell over to the background job framework as well.Nicholas Marriott
2009-10-11Remove a debugging leftover and add copyright.Nicholas Marriott
2009-10-11Switch run-shell over to queue the command in the background like #().Nicholas Marriott
2009-10-11There isn't much point in having a free function if it isn't used.Nicholas Marriott
Also allow a NULL tree.
2009-10-11Collect status from dead jobs and don't invoke the callback until bothNicholas Marriott
all input (the socket is closed) and status is available.
2009-10-11Clean up by introducing a wrapper struct for mouse clicks rather than passingNicholas Marriott
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.
2009-10-11Braek some bits out of server_fill_client() that aren't really related toNicholas Marriott
polling into their own function.
2009-10-10Put all jobs on a global all_jobs list and use that in server.c instead ofNicholas Marriott
running through all the clients.
2009-10-10-scroll mode which is dead.Nicholas Marriott
2009-10-10Split list-panes off from list-windows.Nicholas Marriott
2009-10-10Accept key and mouse input for keys in zombified windows if they are in a mode..Nicholas Marriott
2009-10-10When a window is zombified and automatic-rename is on, append [dead] to theNicholas Marriott
name.
2009-10-10Rather than running status-left, status-right and window title #() with popenNicholas Marriott
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.
2009-10-10New option, mouse-select-pane. If on, the mouse may be used to select theNicholas Marriott
current pane. Suggested by sthen@ and also by someone else ages ago who I have forgotten.
2009-10-10There is no point setting the scroll region up for line feeds unless scrollingNicholas Marriott
is actually going to happen, so don't.
2009-10-10Add "grouped sessions" which have independent name, options, current window andNicholas Marriott
so on but where the linked windows are synchronized (ie creating, killing windows and so on are mirrored between the sessions). A grouped session may be created by passing -t to new-session. Had this around for a while, tested by a couple of people.