Mercurial > vim
diff src/mouse.c @ 29451:057c26b5c33a v9.0.0067
patch 9.0.0067: cannot show virtual text
Commit: https://github.com/vim/vim/commit/7f9969c559b51446632ac7e8f76cde07e7d0078d
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Jul 25 18:13:54 2022 +0100
patch 9.0.0067: cannot show virtual text
Problem: Cannot show virtual text.
Solution: Initial changes for virtual text support, using text properties.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 25 Jul 2022 19:15:06 +0200 |
parents | 34e93e046526 |
children | eb07470d0395 |
line wrap: on
line diff
--- a/src/mouse.c +++ b/src/mouse.c @@ -3101,18 +3101,20 @@ mouse_find_win(int *rowp, int *colp, mou int vcol2col(win_T *wp, linenr_T lnum, int vcol) { - // try to advance to the specified column - int count = 0; - char_u *ptr; - char_u *line; + char_u *line; + chartabsize_T cts; - line = ptr = ml_get_buf(wp->w_buffer, lnum, FALSE); - while (count < vcol && *ptr != NUL) + // try to advance to the specified column + line = ml_get_buf(wp->w_buffer, lnum, FALSE); + init_chartabsize_arg(&cts, wp, lnum, 0, line, line); + while (cts.cts_vcol < vcol && *cts.cts_ptr != NUL) { - count += win_lbr_chartabsize(wp, line, ptr, count, NULL); - MB_PTR_ADV(ptr); + cts.cts_vcol += win_lbr_chartabsize(&cts, NULL); + MB_PTR_ADV(cts.cts_ptr); } - return (int)(ptr - line); + clear_chartabsize_arg(&cts); + + return (int)(cts.cts_ptr - line); } #endif