| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
Draw UTF-8 characters under the selection correctly.
|
|
|
|
|
|
| |
tty_write is relatively short and the only function left in tty-write.c so
move it into tty.c.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
smcup to the first and rmcup to the last sequences output to the terminal. This
allows tmux to use the alternate screen (smcup/rmcup) when available.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
otherwise colour 8 isn't reset.
|
| |
|
| |
|
|
|
|
|
| |
duplicate. Found by lint.
|
| |
|
|
|
|
|
|
|
| |
normal eight-bit output is wrong, separate it into a different function. Fixes
spacing when mixing UTF-8 with some escape sequences, notably the way w3m does
it.
|
|
|
|
|
|
| |
first cursor test in vttest (in ports) to pass; it still shops a few more
problems though.
|
|
|
|
|
| |
to the cursor is cy not cy - 1, and the current cursor cell should be included.
|
|
|
|
| |
further.
|
|
|
|
| |
character and seeing how much the cursor moves. Currently tries to figure out if this works by some stupid checks on the terminal, these need to be rethought. Also might be better using a width 1 character rather than width 2.
|
|
|
|
| |
Should fix terminals which use this to detect line breaks.
|
| |
|
|
|
|
| |
region before cursor.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
the entire window.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
issues - particularly, don't mix with manual pane resizing and be careful when
viewing from multiple clients; 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.
|
| |
|
| |
|
|
|
|
|
| |
- Get UTF-8 check the right way round...
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Split grid into two arrays, one containing grid attributes/flags/colours (keeps
the name grid_cell for now) and a separate with the character data (called
text). The text is stored as a u_short but is treated as a uint64_t elsewhere;
eventually the grid will have two arrays.
I'm not happy with the naming so that might change.
Still need to decide where to go from here. I'm not sure whether to combine
the peek/set functions together, and also whether to continue to treat the
text as a uint64_t (and convert to/from Unicode) or make it a char array
(of size one when UTF-8 disabled, eight when enabled) and keep everything
as UTF-8.
Also since UTF-8 will eventually become an attribute of the grid itself it
might be nice to move all the padding crap into grid.c.
|
|
|
|
|
|
| |
would be equivalent and terminals would pick up on this, but apparently
not. This fixes copy and paste in xterm/rxvt.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
line be disabled.
|
| |
|
|
|
|
| |
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.
|
|
|
|
| |
support it.
|