/* PSPP - a program for statistical analysis.
- Copyright (C) 1997-9, 2000, 2006, 2009, 2010, 2011, 2013 Free Software Foundation, Inc.
+ Copyright (C) 1997-9, 2000, 2006, 2009, 2010, 2011, 2013, 2016 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
{
enum fmt_type type = var_get_print_format (v[0])->type;
double x, y;
- bool ok;
if (!parse_num_range (lexer, &x, &y, &type))
goto error;
- ok = (x == y
+ if (!(x == y
? mv_add_num (&mv, x)
- : mv_add_range (&mv, x, y));
- if (!ok)
- ok = false;
+ : mv_add_range (&mv, x, y)))
+ {
+ msg (SE, _("Too many numeric missing values. At most "
+ "three individual values or one value and "
+ "one range are allowed."));
+ ok = false;
+ }
lex_match (lexer, T_COMMA);
}
utf8_s, utf8_trunc_len);
if (!mv_add_str (&mv, CHAR_CAST (const uint8_t *, raw_s),
strlen (raw_s)))
- ok = false;
+ {
+ msg (SE,
+ _("Too many string missing values. "
+ "At most three individual values are allowed."));
+ ok = false;
+ }
free (raw_s);
lex_get (lexer);
* Mixing string and numeric variables.
MISSING VALUES str1 num1 ('123').
+
+* Too many values.
+MISSING VALUES num1 (1, 2, 3, 4).
+MISSING VALUES num1 (1 THRU 2, 3 THRU 4).
+MISSING VALUES num1 (1, 2 THRU 3, 4).
+MISSING VALUES str1 ('abc', 'def', 'ghi', 'jkl').
+
+* Bad range.
+MISSING VALUES num1 (2 THRU 1).
])
AT_CHECK([pspp -O format=csv missing-values.sps], [1], [dnl
missing-values.sps:5: error: MISSING VALUES: Missing values provided are too long to assign to variable of width 3.
missing-values.sps:11: error: MISSING VALUES: THRU is not a variable name.
missing-values.sps:14: error: MISSING VALUES: Cannot mix numeric variables (e.g. num1) and string variables (e.g. str1) within a single list.
+
+missing-values.sps:17: error: MISSING VALUES: Too many numeric missing values. At most three individual values or one value and one range are allowed.
+
+missing-values.sps:18: error: MISSING VALUES: Too many numeric missing values. At most three individual values or one value and one range are allowed.
+
+missing-values.sps:19: error: MISSING VALUES: Too many numeric missing values. At most three individual values or one value and one range are allowed.
+
+missing-values.sps:20: error: MISSING VALUES: Too many string missing values. At most three individual values are allowed.
+
+missing-values.sps:23: warning: MISSING VALUES: The high end of the range (1) is below the low end (2). The range will be treated as if reversed.
])
AT_CLEANUP