| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
| |
Revert screen-write.c r1.54 and fix the bug properly. After wrapping a
line in a pane, the cursor needs to move to the next line unless it
scrolled.
|
|
|
|
|
|
| |
Store context off before moving the cursor when wrapping, to fix long
standing bug drawing over the status line.
|
|
|
|
|
|
|
|
|
| |
Support "bracketed paste" mode. This adds a -p flag to paste-buffer - if
this is used and the application has requested bracketed pastes, then
tmux surrounds the pasted text by \033[200~ and \033[201~. Applications
like vim can (apparently) use this to avoid, for example, indenting the
text. From Ailin Nemui.
|
|
|
|
|
|
| |
Add a -R flag to send-keys to reset the terminal. Written ages ago and
Suggested by someone, I forget who.
|
|
|
|
|
|
| |
Support for \e[3J to clear the history. Also send the corresponding
terminfo code (E3) before locking.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Support setting the xterm clipboard when copying from copy mode using
the xterm escape sequence for the purpose (if xterm is configured to
allow it).
Written by and much discussed Ailin Nemui, guidance on
xterm/termcap/terminfo from Thomas Dickey.
|
|
|
|
|
|
|
|
|
|
| |
|Date: 2011/04/17 20:21:19
|Author: nicm
|Branch: HEAD
|Tag: (none)
|Log:
|Fix character position check, from Tiago Resende.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Support passing through escape sequences to the underlying terminal by
using DCS with a "tmux;" prefix. Escape characters in the sequences must
be doubled. For example:
$ printf '\033Ptmux;\033\033]12;red\007\033\\'
Will pass \033]12;red\007 to the terminal (and change the cursor colour
in xterm). From Kevin Goodsell.
|
|
|
|
|
|
| |
When clearing the entire screen, clear lines that are used into the
history like xterm does. Requested ages ago by someone I've forgotten.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Support for UTF-8 mouse input (\033[1005h). This was added in xterm 262
and supports larger terminals than the older way.
If the new mouse-utf8 option is on, UTF-8 mouse input is enabled for all
UTF-8 terminals. The option defaults to on if LANG etc are set in the
same manner as the utf8 option.
With help and based on code from hsim at gmx.li.
|
|
|
|
|
|
| |
Support all four of the xterm mouse modes. Based on a diff from hsim at
gmx.li.
|
|
|
|
|
|
|
| |
we weren't overlapping.
Fixes "disappearing wide characters" glitch.
|
| |
|
|
|
|
|
|
|
| |
Massive spaces->tabs and trailing whitespace cleanup, hopefully for the last
time now I've configured emacs to make them displayed in really annoying
colours...
|
|
|
|
|
|
| |
Remove a couple of unused arguments where possible, and add /* ARGSUSED */ to
the rest to reduce lint output.
|
|
|
|
|
|
|
|
|
| |
Cleanup by moving various (mostly horrible) little bits handling UTF-8 grid
data into functions in a new file, grid-utf8.c, and use sizeof intead of
UTF8_DATA.
Also nuke trailing whitespace from tmux.1, reminded by jmc.
|
|
|
|
|
| |
A screen can be one cell wide; don't crash if that is the case.
|
|
|
|
|
|
|
|
|
|
| |
Add an explicit zero-length check for UTF-8 input data, prompted by a report
from parfait via deraadt.
While here, add a statement to set the width when filling with _s if not enough
space (width should never be high enough at the moment anyway), and wrap some
long lines.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Move the check for whether to force a line wrapper lower down into the tty code
where it has access to the tty width, which is what should have been checked.
|
|
|
|
|
|
|
|
| |
Always move the cursor position on !xenl terminals, since there is no invisible
last cursor position.
Also nuke an unused variable.
|
|
|
|
|
|
| |
Don't print wide characters at screen width - 1. Matches uterm behaviour and
is probably a better idea anyway.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
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...
|
|
|
|
|
| |
Wrap a couple of long lines.
|
|
|
|
|
|
| |
Permit attributes to be turned off in #[] by prefixing with "no", for example
"noblink".
|
|
|
|
|
|
|
|
|
|
| |
Stick line length to what is actually used (removing an optimization that
allowed it to be bigger), and use clear line/EOL sequences rather than spaces
in copy/scroll mode.
This fixes xterm copy/paste from tmux which treats trailing spaces differently
from clearing a line with the escape sequences. Reported by martynas@.
|
|
|
|
|
|
| |
Permit options such as status-bg to be configured using the entire 256 colour
palette by setting "colour0" to "colour255".
|
|
|
|
|
|
| |
Permit embedded colour and attributes in status-left and status-right using new
#[] special characters, for example #[fg=red,bg=blue,blink].
|
|
|
|
|
|
| |
Ugh, committed the wrong version of this change and got both solutions rather
than just the second. Remove unused assignment.
|
|
|
|
|
|
|
|
| |
A few trivial optimisations: no need to check for zero size if calling
buffer_ensure in buffer.c; expand grid lines by a greater increase than one
each time; and don't read UTF-8 data unless it actually needs to be checked
when overwriting a cell.
|
|
|
|
|
|
|
|
|
| |
It was originally intended that scroll mode would show content that was
currently off-screen due to resize, but somewhere along the way this got
lost. Restore this behaviour to scroll mode by fixing screen_write_copy to read
up to the saved line length rather than the current screen width. Copy mode
remains unaltered for now.
|
|
|
|
|
|
|
| |
Add a flags member to the grid_line struct and use it to differentiate lines
wrapped at the screen edge from those terminated by a newline. Then use this
when copying to combine wrapped lines together into one.
|
|
|
|
|
| |
Plug some memory leaks.
|
|
|
|
|
| |
Draw UTF-8 characters under the selection correctly.
|
|
|
|
|
|
| |
More tty code tidying: move the saved cursor/region position (from before the
screen was updated) out of struct screen and into struct tty_ctx.
|
|
|
|
|
|
|
| |
enum tty_cmd is only used as an index into the array of command function
pointers, so remove it and use the function pointers directly to represent
themselves.
|
|
|
|
|
|
| |
There are relatively few arguments to tty_cmd_* functions now, so tidy them up
by using a struct rather than hiding everything with varargs.
|
|
|
|
|
|
| |
tty_cmd_raw is only used once, for raw UTF-8 output, so rename it to
tty_cmd_utf8character and eliminate the size argument.
|
| |
|
|
|
|
|
|
| |
the scroll region top if starting from below it and cud stop at the bottom if
starting from above). Fixes another vttest test.
|
|
|
|
|
|
| |
lines that should be inserted/deleted but not moved. Fixes problems with mutt
reported by Brian Lewis, thanks.
|
|
|
|
|
| |
functions (currently don't fully work, this is to make fix easier).
|
|
|
|
|
|
|
|
|
|
|
| |
of characters which may be inserted or deleted is the screen width, not one
less (and similarly for lines and height); and if characters or lines are
deleted by moving the ones that follow, the space at the end needs to be
cleared.
This appears to solve long-standing redraw issues most visible when using the
force-width option then scrolling in view(1) or unwrapping lines in emacs.
|
| |
|
| |
|