Upstream changes since 0.7:
* Remove the right number of characters from the buffer when escape then
a cursor key (or other key prefixed by \033) is pressed. Reported by
Stuart Henderson.
* rotate-window command. -U flag (default) for up, -D flag for down.
* Change scroll/pane redraws to only redraw the single pane affected rather
than the entire window.
* If redrawing the region would mean redrawing > half the pane, just schedule
to redraw the entire window. Also add a flag to skip updating the window any
further if it is scheduled to be redrawn. This has the effect of batching
multiple redraws together.
* Basic horizontal splitting and layout management. Still some redraw and other
issues - particularly, don't mix with manual pane resizing, be careful when
viewing from multiple clients and don't expect shell windows to redraw very
well after the layout is changed; generally cycling the layout a few times
will fix most problems. Getting this in for testing while I think about how
to deal with manual mode.
Split window as normal and cycle the layouts with C-b space. Some of the
layouts will work better when swap-pane comes along.
* AIX port, thanks to cmihai for access to a box. Only tested on 6.1 with xlc
10.1 (make sure CC is set). Needs GNU make and probably ncurses (didn't try
plain curses). Also won't build with DEBUG, so comment the FDEBUG=1 line in
GNUmakefile.
* Draw a vertical line on the right when the window size is less than the
terminal size. This is partly to shake out any horizontal limit bugs on the
way to horizontal splitting/pane tiling. Currently a bit slow since it has to
do a lot of redrawing but hopefully that will improve as I get some better
ideas for how to do it.
* Fix remaining problems with copy and paste and UTF-8.
* Better UTF-8 support, including combined characters. Unicode data is now
stored as UTF-8 in a separate array, the code does a lookup into this every
time it gets to a UTF-8 cell. Zero width characters are just appended onto
the UTF-8 data for the previous cell. This also means that almost no bytes
extra are wasted non-Unicode data (yay).
Still some oddities, such as copy mode skips over wide characters in a
strange way, and the code could do with some tidying.
* Key repeating is now a property of the key binding not of the command.
Repeat is turned on when the key is bound with the -r flag to bind-key.
next/previous-window no longer repeat by default as it turned out to annoy
me.
* Clear using ED when redrawing the screen. I foolishly assumed using spaces
would be equivalent and terminals would pick up on this, but apparently not.
This fixes copy and paste in xterm/rxvt.
* Sockets in /tmp are now created in a subdirectory named, tmux-UID, eg
tmux-1000. The default socket is thus /tmp/tmux-UID/default. To start a
separate server, the new -L command line option should be used: this creates
a socket in the same directory with a different name ("-L main" will create
socket called "main"). -S should only be used to place the socket outside
/tmp. This makes sockets a little more secure and a bit more convenient to
use multiple servers.
* New session flag "set-remain-on-exit" to set remain-on-exit flag for new
windows created in that session (like "remain-by-default" used to do). Not
perfectly happy about this, but until I can think of a good way to introduce
it generically (maybe a set of options in the session) this will do. Fixes
SF request 2527847.
* Support for 88 colour terminals.
* break-pane command to create a new window using an existing pane.
* Make escape key timer work properly so escape+key can be used without
lightning fast key presses.
* Redo mode keys slightly more cleanly and apply them to command prompt
editing. vi or emacs mode is controlled by the session option status-keys.
* Looking up argv[0] is expensive, so just use p_comm for the window name which
is good enough. Also increase name update time to 500 ms.
* Only use ri when actually at the top of the screen; just move the cursor up
otherwise.
* FreeBSD's console wraps lines at $COLUMNS - 1 rather than $COLUMNS (the
cursor can never be beyond $COLUMNS - 1) and does not appear to support
changing this behaviour, or any of the obvious possibilities (turning off
right margin wrapping, insert mode). This is irritating, most notably because
it impossible to write to the very bottom-right of the screen without
scrolling. To work around this, if built on FreeBSD and run with a "cons"
$TERM, the bottom-right cell on the screen is omitted.
* Emulate scroll regions (slowly) to support the few terminals which don't have
it (some of which don't really have any excuse).
* No longer redraw the status line every status-interval unless it has actually
changed.