X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fdata-in.c;h=3f1f9e7075643b5bd86eabc7a57f01738a475f0a;hb=047d4a8e14cdbb50258bf8c5634db24a88767f24;hp=5d4496cf9085de0d54509f224a89e0b0261935d1;hpb=6bf4567d7fcf5f0fa5805c4de24c13c2a7cfbbc9;p=pspp diff --git a/src/data/data-in.c b/src/data/data-in.c index 5d4496cf90..3f1f9e7075 100644 --- a/src/data/data-in.c +++ b/src/data/data-in.c @@ -76,7 +76,11 @@ static int hexit_value (int c); Stores the parsed representation in OUTPUT, which the caller must have initialized with the given WIDTH (0 for a numeric field, otherwise the string width). If FORMAT is FMT_A, then OUTPUT_ENCODING must specify the - correct encoding for OUTPUT (normally obtained via dict_get_encoding()). */ + correct encoding for OUTPUT (normally obtained via dict_get_encoding()). + + If successful NULL is the return value. Otherwise a string describing + the problem is returned. The caller must free this string. + */ char * data_in (struct substring input, const char *input_encoding, enum fmt_type format, @@ -919,7 +923,7 @@ parse_year (struct data_in *i, long *year, size_t max_digits) else *year += epoch_century + 100; } - if (*year >= 1582 || *year <= 19999) + if (*year >= 1582 && *year <= 19999) return NULL; return xasprintf (_("Year (%ld) must be between 1582 and 19999."), *year); @@ -1044,7 +1048,7 @@ parse_minute_second (struct data_in *i, double *time) *cp++ = ss_get_byte (&i->input); *cp = '\0'; - *time += strtod (buf, NULL); + *time += c_strtod (buf, NULL); return NULL; } @@ -1181,6 +1185,7 @@ parse_date (struct data_in *i) break; case ':': error = parse_time_delimiter (i); + break; case ' ': if (i->format != FMT_MOYR) {