mirror of
https://github.com/vim/vim.git
synced 2025-09-26 04:04:07 -04:00
patch 8.1.0105: all tab stops are the same
Problem: All tab stops are the same. Solution: Add the variable tabstop feature. (Christian Brabandt, closes #2711)
This commit is contained in:
@@ -812,7 +812,16 @@ vim_strnsize(char_u *s, int len)
|
||||
* Also see getvcol() below.
|
||||
*/
|
||||
|
||||
#define RET_WIN_BUF_CHARTABSIZE(wp, buf, p, col) \
|
||||
#ifdef FEAT_VARTABS
|
||||
# define RET_WIN_BUF_CHARTABSIZE(wp, buf, p, col) \
|
||||
if (*(p) == TAB && (!(wp)->w_p_list || lcs_tab1)) \
|
||||
{ \
|
||||
return tabstop_padding(col, (buf)->b_p_ts, (buf)->b_p_vts_array); \
|
||||
} \
|
||||
else \
|
||||
return ptr2cells(p);
|
||||
#else
|
||||
# define RET_WIN_BUF_CHARTABSIZE(wp, buf, p, col) \
|
||||
if (*(p) == TAB && (!(wp)->w_p_list || lcs_tab1)) \
|
||||
{ \
|
||||
int ts; \
|
||||
@@ -821,6 +830,7 @@ vim_strnsize(char_u *s, int len)
|
||||
} \
|
||||
else \
|
||||
return ptr2cells(p);
|
||||
#endif
|
||||
|
||||
int
|
||||
chartabsize(char_u *p, colnr_T col)
|
||||
@@ -1221,8 +1231,13 @@ win_nolbr_chartabsize(
|
||||
|
||||
if (*s == TAB && (!wp->w_p_list || lcs_tab1))
|
||||
{
|
||||
# ifdef FEAT_VARTABS
|
||||
return tabstop_padding(col, wp->w_buffer->b_p_ts,
|
||||
wp->w_buffer->b_p_vts_array);
|
||||
# else
|
||||
n = wp->w_buffer->b_p_ts;
|
||||
return (int)(n - (col % n));
|
||||
# endif
|
||||
}
|
||||
n = ptr2cells(s);
|
||||
/* Add one cell for a double-width character in the last column of the
|
||||
@@ -1282,6 +1297,9 @@ getvcol(
|
||||
char_u *line; /* start of the line */
|
||||
int incr;
|
||||
int head;
|
||||
#ifdef FEAT_VARTABS
|
||||
int *vts = wp->w_buffer->b_p_vts_array;
|
||||
#endif
|
||||
int ts = wp->w_buffer->b_p_ts;
|
||||
int c;
|
||||
|
||||
@@ -1332,7 +1350,11 @@ getvcol(
|
||||
}
|
||||
/* A tab gets expanded, depending on the current column */
|
||||
if (c == TAB)
|
||||
#ifdef FEAT_VARTABS
|
||||
incr = tabstop_padding(vcol, ts, vts);
|
||||
#else
|
||||
incr = ts - (vcol % ts);
|
||||
#endif
|
||||
else
|
||||
{
|
||||
#ifdef FEAT_MBYTE
|
||||
|
Reference in New Issue
Block a user