X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fpor-file-reader.c;h=0897d77aa2e30a4520f645c9fa9a647ed7fde652;hb=d6fb2728eb8a99e89165c45d8e5d4a482114d3a0;hp=372d7682136f746110e4cc05d19c04ac30265824;hpb=9ade26c8349b4434008c46cf09bc7473ec743972;p=pspp diff --git a/src/data/por-file-reader.c b/src/data/por-file-reader.c index 372d768213..0897d77aa2 100644 --- a/src/data/por-file-reader.c +++ b/src/data/por-file-reader.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, 2013, 2014 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 @@ -38,6 +38,7 @@ #include "data/value-labels.h" #include "data/variable.h" #include "libpspp/compiler.h" +#include "libpspp/i18n.h" #include "libpspp/message.h" #include "libpspp/misc.h" #include "libpspp/pool.h" @@ -250,7 +251,7 @@ pfm_open_reader (struct file_handle *fh, struct dictionary **dict, struct pool *volatile pool = NULL; struct pfm_reader *volatile r = NULL; - *dict = dict_create (); + *dict = dict_create (get_default_encoding ()); /* Create and initialize reader. */ pool = pool_create (); @@ -539,7 +540,7 @@ read_version_data (struct pfm_reader *r, struct pfm_read_info *info) { static const char empty_string[] = ""; char *date, *time; - const char *product, *author, *subproduct; + const char *product, *subproduct; int i; /* Read file. */ @@ -548,7 +549,11 @@ read_version_data (struct pfm_reader *r, struct pfm_read_info *info) date = read_pool_string (r); time = read_pool_string (r); product = match (r, '1') ? read_pool_string (r) : empty_string; - author = match (r, '2') ? read_pool_string (r) : empty_string; + if (match (r, '2')) + { + /* Skip "author" field. */ + read_pool_string (r); + } subproduct = match (r, '3') ? read_pool_string (r) : empty_string; /* Validate file. */ @@ -652,8 +657,8 @@ read_variables (struct pfm_reader *r, struct dictionary *dict) if (r->var_cnt <= 0) error (r, _("Invalid number of variables %d."), r->var_cnt); - /* Purpose of this value is unknown. It is typically 161. */ - read_int (r); + if (match (r, '5')) + read_int (r); if (match (r, '6')) { @@ -745,7 +750,7 @@ read_variables (struct pfm_reader *r, struct dictionary *dict) { char label[256]; read_string (r, label); - var_set_label (v, label, NULL, false); /* XXX */ + var_set_label (v, label); /* XXX */ } }