Problem: Divide by zero with huge tabstop value.
Solution: Reject tabstop value that overflows to zero.
int n = atoi((char *)cp);
// Catch negative values, overflow and ridiculous big values.
- if (n < 0 || n > TABSTOP_MAX)
+ if (n <= 0 || n > TABSTOP_MAX)
{
semsg(_(e_invalid_argument_str), cp);
vim_free(*array);
bwipeout!
endfunc
+func Test_retab_invalid_arg()
+ new
+ call setline(1, "\ttext")
+ retab 0
+ call assert_fails("retab -8", 'E487: Argument must be positive')
+ call assert_fails("retab 10000", 'E475:')
+ call assert_fails("retab 720575940379279360", 'E475:')
+ bwipe!
+endfunc
+
func Test_vartabs_breakindent()
CheckOption breakindent
new
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 4298,
/**/
4297,
/**/