X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fcontrol%2Frepeat.c;h=7341f0760bcf48960a01ca3f378cc18f666c9abe;hb=cd221d80fafb54e550398c6de105d4c1b7f02ba0;hp=c73d02827149290d9af9dd05dbf5992000e2600b;hpb=b56f017491ffecdbe19e39aca242ffb13ad17016;p=pspp diff --git a/src/language/control/repeat.c b/src/language/control/repeat.c index c73d028271..7341f0760b 100644 --- a/src/language/control/repeat.c +++ b/src/language/control/repeat.c @@ -371,23 +371,20 @@ parse_numbers (struct lexer *lexer, struct dummy_var *dv) 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); @@ -395,7 +392,7 @@ parse_numbers (struct lexer *lexer, struct dummy_var *dv) } lex_get (lexer); - for (i = a; i <= b; i++) + for (long i = a; i <= b; i++) add_replacement (dv, xasprintf ("%ld", i), &allocated); } else