enum segment_type type;
int n;
- n = segmenter_push (&segmenter, s.string, s.length, &type);
+ n = segmenter_push (&segmenter, s.string, s.length, true, &type);
assert (n >= 0);
if (type == SEG_DO_REPEAT_COMMAND)
int k;
k = segmenter_push (&segmenter, s.string + n, s.length - n,
- &type);
+ true, &type);
if (type != SEG_NEWLINE && type != SEG_DO_REPEAT_COMMAND)
break;
ds_put_byte (&input, '\n');
lex_get (lexer);
}
- if (ds_is_empty (&input))
- ds_put_byte (&input, '\n');
- ds_put_byte (&input, '\0');
n_values = count_values (dummies);
outputs = xmalloc (n_values * sizeof *outputs);
if (lex_next_token (lexer, 1) == T_TO)
{
- long int a, b;
- long int i;
-
if (!lex_is_integer (lexer))
{
msg (SE, _("Ranges may only have integer bounds."));
return false;
}
- a = lex_integer (lexer);
+ long a = lex_integer (lexer);
lex_get (lexer);
lex_get (lexer);
- if (!lex_force_int (lexer))
+ if (!lex_force_int_range (lexer, NULL, a, LONG_MAX))
return false;
- b = lex_integer (lexer);
+ long b = lex_integer (lexer);
if (b < a)
{
msg (SE, _("%ld TO %ld is an invalid range."), a, b);
}
lex_get (lexer);
- for (i = a; i <= b; i++)
+ for (long i = a; i <= b; i++)
add_replacement (dv, xasprintf ("%ld", i), &allocated);
}
else