Fix bad parsing of 'colorcolumn'. (Dominique Pelle)
This commit is contained in:
10
src/option.c
10
src/option.c
@ -6956,7 +6956,7 @@ check_colorcolumn(wp)
|
|||||||
int i;
|
int i;
|
||||||
int j = 0;
|
int j = 0;
|
||||||
|
|
||||||
for (s = wp->w_p_cc; *s != NUL && count < 255; ++s)
|
for (s = wp->w_p_cc; *s != NUL && count < 255;)
|
||||||
{
|
{
|
||||||
if (*s == '-' || *s == '+')
|
if (*s == '-' || *s == '+')
|
||||||
{
|
{
|
||||||
@ -6967,21 +6967,23 @@ check_colorcolumn(wp)
|
|||||||
return e_invarg;
|
return e_invarg;
|
||||||
col = col * getdigits(&s);
|
col = col * getdigits(&s);
|
||||||
if (wp->w_buffer->b_p_tw == 0)
|
if (wp->w_buffer->b_p_tw == 0)
|
||||||
continue; /* 'textwidth' not set, skip this item */
|
goto skip; /* 'textwidth' not set, skip this item */
|
||||||
col += wp->w_buffer->b_p_tw;
|
col += wp->w_buffer->b_p_tw;
|
||||||
if (col < 0)
|
if (col < 0)
|
||||||
continue;
|
goto skip;
|
||||||
}
|
}
|
||||||
else if (VIM_ISDIGIT(*s))
|
else if (VIM_ISDIGIT(*s))
|
||||||
col = getdigits(&s);
|
col = getdigits(&s);
|
||||||
else
|
else
|
||||||
return e_invarg;
|
return e_invarg;
|
||||||
color_cols[count++] = col - 1; /* 1-based to 0-based */
|
color_cols[count++] = col - 1; /* 1-based to 0-based */
|
||||||
|
skip:
|
||||||
if (*s == NUL)
|
if (*s == NUL)
|
||||||
break;
|
break;
|
||||||
if (*s != ',')
|
if (*s != ',')
|
||||||
return e_invarg;
|
return e_invarg;
|
||||||
|
if (*++s == NUL)
|
||||||
|
return e_invarg; /* illegal trailing comma as in "set cc=80," */
|
||||||
}
|
}
|
||||||
|
|
||||||
vim_free(wp->w_p_cc_cols);
|
vim_free(wp->w_p_cc_cols);
|
||||||
|
|||||||
Reference in New Issue
Block a user