#include "libpspp/pool.h"
#include "libpspp/str.h"
+#include "gl/c-strcase.h"
#include "gl/xalloc.h"
#include "gl/xsize.h"
int fc, lc;
size_t i;
- if ( !parse_column_range (lexer, 1, &fc, &lc, NULL) )
+ if (!parse_column_range (lexer, 1, &fc, &lc, NULL))
return false;
/* Divide columns evenly. */
if (!parse_abstract_format_specifier (lexer, type, &f.w, &f.d))
return false;
- if (!strcasecmp (type, "T"))
+ if (!c_strcasecmp (type, "T"))
f.type = PRS_TYPE_T;
- else if (!strcasecmp (type, "X"))
+ else if (!c_strcasecmp (type, "X"))
{
f.type = PRS_TYPE_X;
f.w = count;
}
}
-bool
+static bool
parse_column__ (int value, int base, int *column)
{
assert (base == 0 || base == 1);
{
if (lex_is_integer (lexer))
{
- if (lex_integer (lexer) <= *record)
+ long n = lex_integer (lexer);
+ if (n <= *record || n > INT_MAX)
{
msg (SE, _("The record number specified, %ld, is at or "
"before the previous record, %d. Data "
"fields must be listed in order of "
"increasing record number."),
- lex_integer (lexer), *record);
+ n, *record);
return false;
}
- *record = lex_integer (lexer);
+ *record = n;
lex_get (lexer);
}
else