| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
| |
done for UTF-8, limit to the maximum length correctly when printing, and always
print a space even if the left string is longer than the width available.
|
| |
|
| |
|
|
|
|
|
| |
as normal.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
characters in status-left and status-right (if on, they are treated as UTF-8;
otherwise passed through).
|
|
|
|
|
|
|
| |
status-left/status-right work properly. At the moment any top-bit-set
characters are assumed to be UTF-8: a status-utf8 option to configure this will
come shortly.
|
| |
|
|
|
|
|
| |
but meh.
|
|
|
|
|
| |
- Get UTF-8 check the right way round...
|
| |
|
|
|
|
|
|
|
| |
include extra characters.
- Handle combined characters properly when the previous character is not UTF-8.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
which may involve changing the cursor position; however, the old (before
redraw) cursor position is necessary for writing to the tty. So, save it before
doing the redraw then update the internal screen then update the tty.
Not sure I like this solution but it does the job for now.
|
|
|
|
|
| |
unnecessary (it always does the same thing).
|
|
|
|
|
|
|
| |
it and adjust for different panes. Also support mouse in window/session choice mode.
* Bring back the fancy window titles with session/window names: it is easy to work around problems with elinks (see FAQ).
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
still a couple of bugs (notably heap corruption somewhere causing segfault on exit).
|
| |
|
|
|
|
| |
crap into tty-term.c.
|
|
|
|
|
| |
(one character off the right of the screen), so there are several out-of-bounds issues. Add some additional checking.
|
| |
|
|
|
|
| |
Chisnall..
|
| |
|
|
|
|
| |
mode-fg/mode-bg options, force -g for global on set/show/setw/showw/
|
| |
|