diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2018-02-10 11:03:59 +0100 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2018-06-13 10:11:11 +0200 |
commit | d8e18c96a904667ce60366be22dbdf248006ff2e (patch) | |
tree | d4d71e26b159e59b15ef2b210453baae4be0b3c8 /src/nvim/mouse.c | |
parent | 315b7f8632076d882d498fc0bfab21a87ca75acb (diff) | |
download | rneovim-d8e18c96a904667ce60366be22dbdf248006ff2e.tar.gz rneovim-d8e18c96a904667ce60366be22dbdf248006ff2e.tar.bz2 rneovim-d8e18c96a904667ce60366be22dbdf248006ff2e.zip |
screen: use UTF-8 representation
Store text in ScreenLines as UTF-8, so it can be sent as-is to the UI
layer. `utfc_char2bytes(off,buf)` is removed, as `ScreenLines[off]` now
already contains this representation.
To recover the codepoints that the screen arrays previously contained, use
utfc_ptr2char (or utf_ptr2char to ignore composing chars).
NB: This commit does NOT change how screen.c processes incoming UTF-8 data
from buffers, cmdline, messages etc. Any algorithm that operates on UCS-4
(like arabic shaping, treatment of non-printable chars)
is left unchanged for now.
Diffstat (limited to 'src/nvim/mouse.c')
-rw-r--r-- | src/nvim/mouse.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/nvim/mouse.c b/src/nvim/mouse.c index 6f636f643a..96d20b6a32 100644 --- a/src/nvim/mouse.c +++ b/src/nvim/mouse.c @@ -108,12 +108,13 @@ retnomove: goto retnomove; // ugly goto... // Remember the character under the mouse, it might be a '-' or '+' in the - // fold column. + // fold column. NB: only works for ASCII chars! if (row >= 0 && row < Rows && col >= 0 && col <= Columns - && ScreenLines != NULL) - mouse_char = ScreenLines[LineOffset[row] + (unsigned)col]; - else + && ScreenLines != NULL) { + mouse_char = ScreenLines[LineOffset[row] + (unsigned)col][0]; + } else { mouse_char = ' '; + } old_curwin = curwin; old_cursor = curwin->w_cursor; |