From: Ben Pfaff Date: Sun, 3 Feb 2008 06:45:03 +0000 (+0000) Subject: In system files, allow missing values to be specified on long string X-Git-Tag: v0.6.0~139 X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8cc788667db16517f96ba15979da3e3b9638dd3b;p=pspp-builds.git In system files, allow missing values to be specified on long string variables, but warn about them because PSPP does not yet support them. Ignore extension records 20 and 21, which PSPP does not yet support. Patch #6347. --- diff --git a/src/data/ChangeLog b/src/data/ChangeLog index 558bb249..a14e6cde 100644 --- a/src/data/ChangeLog +++ b/src/data/ChangeLog @@ -1,3 +1,13 @@ +2008-02-02 Ben Pfaff + + Patch #6347. + + * sys-file-reader.c (read_variable_record): Allow missing values + to be specified on long string variables, but warn about them + because PSPP does not yet support them. + (read_extension_record): Ignore extension records 20 and 21, which + PSPP does not yet support. + 2008-02-01 Ben Pfaff Patch #6386. Thanks to John Darrington for review and for the diff --git a/src/data/sys-file-reader.c b/src/data/sys-file-reader.c index d71027d5..705fb015 100644 --- a/src/data/sys-file-reader.c +++ b/src/data/sys-file-reader.c @@ -549,11 +549,14 @@ read_variable_record (struct sfm_reader *r, struct dictionary *dict, for (i = 0; i < missing_value_code; i++) mv_add_num (&mv, read_float (r)); } - else if (var_get_width (var) <= MAX_SHORT_STRING) + else { if (missing_value_code < 1 || missing_value_code > 3) sys_error (r, _("String missing value indicator field is not " "0, 1, 2, or 3.")); + if (var_is_long_string (var)) + sys_warn (r, _("Ignoring missing values on long string variable " + "%s, which PSPP does not yet support."), name); for (i = 0; i < missing_value_code; i++) { char string[9]; @@ -561,10 +564,8 @@ read_variable_record (struct sfm_reader *r, struct dictionary *dict, mv_add_str (&mv, string); } } - else - sys_error (r, _("Long string variable %s may not have missing " - "values."), name); - var_set_missing_values (var, &mv); + if (!var_is_long_string (var)) + var_set_missing_values (var, &mv); } /* Set formats. */ @@ -752,6 +753,18 @@ read_extension_record (struct sfm_reader *r, struct dictionary *dict, SPSS 14. */ break; + case 20: + /* New in SPSS 16. Contains a single string that describes + the character encoding, e.g. "windows-1252". */ + break; + + case 21: + /* New in SPSS 16. Encodes value labels for long string + variables. */ + sys_warn (r, _("Ignoring value labels for long string variables, " + "which PSPP does not yet support.")); + break; + default: sys_warn (r, _("Unrecognized record type 7, subtype %d."), subtype); break;