Mercurial > vim
diff src/message.c @ 15502:bc17a9d37810 v8.1.0759
patch 8.1.0759: showing two characters for tab is limited
commit https://github.com/vim/vim/commit/83a52171ba00b2b9fd2d1d22a07e38fc9fc69c1e
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Jan 16 22:41:54 2019 +0100
patch 8.1.0759: showing two characters for tab is limited
Problem: Showing two characters for tab is limited.
Solution: Allow for a third character for "tab:" in 'listchars'. (Nathaniel
Braun, Ken Takata, closes #3810)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 16 Jan 2019 22:45:07 +0100 |
parents | 55ccc2d353bd |
children | dd725a8ab112 |
line wrap: on
line diff
--- a/src/message.c +++ b/src/message.c @@ -1771,6 +1771,7 @@ msg_prt_line(char_u *s, int list) int col = 0; int n_extra = 0; int c_extra = 0; + int c_final = 0; char_u *p_extra = NULL; /* init to make SASC shut up */ int n; int attr = 0; @@ -1801,7 +1802,9 @@ msg_prt_line(char_u *s, int list) if (n_extra > 0) { --n_extra; - if (c_extra) + if (n_extra == 0 && c_final) + c = c_final; + else if (c_extra) c = c_extra; else c = *p_extra++; @@ -1844,11 +1847,13 @@ msg_prt_line(char_u *s, int list) { c = ' '; c_extra = ' '; + c_final = NUL; } else { - c = lcs_tab1; + c = (n_extra == 0 && lcs_tab3) ? lcs_tab3 : lcs_tab1; c_extra = lcs_tab2; + c_final = lcs_tab3; attr = HL_ATTR(HLF_8); } } @@ -1861,6 +1866,7 @@ msg_prt_line(char_u *s, int list) { p_extra = (char_u *)""; c_extra = NUL; + c_final = NUL; n_extra = 1; c = lcs_eol; attr = HL_ATTR(HLF_AT); @@ -1871,6 +1877,7 @@ msg_prt_line(char_u *s, int list) n_extra = n - 1; p_extra = transchar_byte(c); c_extra = NUL; + c_final = NUL; c = *p_extra++; /* Use special coloring to be able to distinguish <hex> from * the same in plain text. */