X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fdata-in.c;h=14a24fffe26d367497e9262fd9daa1a0709a68c0;hb=46510f46c169c5d5d1f13bcb2e1ff2aa9fffe05f;hp=b6fa5167f008a8aaa471b3d3fe9762fed7301fb5;hpb=bdebbd4db2d6c539eadb145f726382fe338e4219;p=pspp diff --git a/src/data/data-in.c b/src/data/data-in.c index b6fa5167f0..14a24fffe2 100644 --- a/src/data/data-in.c +++ b/src/data/data-in.c @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 1997-9, 2000, 2006, 2009, 2010, 2011 Free Software Foundation, Inc. + Copyright (C) 1997-9, 2000, 2006, 2009, 2010, 2011, 2012 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 @@ -298,9 +298,9 @@ parse_number (struct data_in *i) ds_extend (&tmp, 64); /* Prefix character may precede sign. */ - if (!ss_is_empty (style->prefix)) + if (style->prefix.s[0] != '\0') { - ss_match_byte (&i->input, ss_first (style->prefix)); + ss_match_byte (&i->input, style->prefix.s[0]); ss_ltrim (&i->input, ss_cstr (CC_SPACES)); } @@ -317,9 +317,9 @@ parse_number (struct data_in *i) } /* Prefix character may follow sign. */ - if (!ss_is_empty (style->prefix)) + if (style->prefix.s[0] != '\0') { - ss_match_byte (&i->input, ss_first (style->prefix)); + ss_match_byte (&i->input, style->prefix.s[0]); ss_ltrim (&i->input, ss_cstr (CC_SPACES)); } @@ -366,8 +366,8 @@ parse_number (struct data_in *i) } /* Suffix character. */ - if (!ss_is_empty (style->suffix)) - ss_match_byte (&i->input, ss_first (style->suffix)); + if (style->suffix.s[0] != '\0') + ss_match_byte (&i->input, style->suffix.s[0]); if (!ss_is_empty (i->input)) { @@ -1123,7 +1123,7 @@ parse_date (struct data_in *i) double time = 0, date = 0; enum time_sign time_sign = SIGN_NO_TIME; - const char *template = fmt_date_template (i->format); + const char *template = fmt_date_template (i->format, 0); size_t template_width = strlen (template); char *error; @@ -1180,14 +1180,18 @@ parse_date (struct data_in *i) case '-': case '/': case '.': - case 'X': error = parse_date_delimiter (i); break; case ':': error = parse_time_delimiter (i); case ' ': - parse_spaces (i); - error = NULL; + if (i->format != FMT_MOYR) + { + parse_spaces (i); + error = NULL; + } + else + error = parse_date_delimiter (i); break; default: assert (count == 1);