X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fpor-file-reader.c;h=372d7682136f746110e4cc05d19c04ac30265824;hb=9ade26c8349b4434008c46cf09bc7473ec743972;hp=b729770a91c7c294b99b0cbe5172245bdef128b0;hpb=9389f9870643a519cf69b84a9388a0a40315d903;p=pspp-builds.git diff --git a/src/data/por-file-reader.c b/src/data/por-file-reader.c index b729770a..372d7682 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 Free Software Foundation, Inc. + Copyright (C) 1997-9, 2000, 2006, 2009, 2010, 2011 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 @@ -15,7 +15,8 @@ along with this program. If not, see . */ #include -#include "por-file-reader.h" + +#include "data/por-file-reader.h" #include #include @@ -26,25 +27,25 @@ #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "minmax.h" -#include "xalloc.h" +#include "data/casereader-provider.h" +#include "data/casereader.h" +#include "data/dictionary.h" +#include "data/file-handle-def.h" +#include "data/file-name.h" +#include "data/format.h" +#include "data/missing-values.h" +#include "data/short-names.h" +#include "data/value-labels.h" +#include "data/variable.h" +#include "libpspp/compiler.h" +#include "libpspp/message.h" +#include "libpspp/misc.h" +#include "libpspp/pool.h" +#include "libpspp/str.h" + +#include "gl/intprops.h" +#include "gl/minmax.h" +#include "gl/xalloc.h" #include "gettext.h" #define _(msgid) gettext (msgid) @@ -104,8 +105,11 @@ error (struct pfm_reader *r, const char *msg, ...) m.category = MSG_C_GENERAL; m.severity = MSG_S_ERROR; - m.where.file_name = NULL; - m.where.line_number = 0; + m.file_name = NULL; + m.first_line = 0; + m.last_line = 0; + m.first_column = 0; + m.last_column = 0; m.text = ds_cstr (&text); msg_emit (&m); @@ -133,8 +137,11 @@ warning (struct pfm_reader *r, const char *msg, ...) m.category = MSG_C_GENERAL; m.severity = MSG_S_WARNING; - m.where.file_name = NULL; - m.where.line_number = 0; + m.file_name = NULL; + m.first_line = 0; + m.last_line = 0; + m.first_column = 0; + m.last_column = 0; m.text = ds_cstr (&text); msg_emit (&m); @@ -153,7 +160,7 @@ close_reader (struct pfm_reader *r) { if (fn_close (fh_get_file_name (r->fh), r->file) == EOF) { - msg (ME, _("Error closing portable file \"%s\": %s."), + msg (ME, _("Error closing portable file `%s': %s."), fh_get_file_name (r->fh), strerror (errno)); r->ok = false; } @@ -272,7 +279,7 @@ pfm_open_reader (struct file_handle *fh, struct dictionary **dict, r->file = fn_open (fh_get_file_name (r->fh), "rb"); if (r->file == NULL) { - msg (ME, _("An error occurred while opening \"%s\" for reading " + msg (ME, _("An error occurred while opening `%s' for reading " "as a portable file: %s."), fh_get_file_name (r->fh), strerror (errno)); goto error; @@ -677,7 +684,8 @@ read_variables (struct pfm_reader *r, struct dictionary *dict) for (j = 0; j < 6; j++) fmt[j] = read_int (r); - if (!var_is_valid_name (name, false) || *name == '#' || *name == '$') + if (!dict_id_is_valid (dict, name, false) + || *name == '#' || *name == '$') error (r, _("Invalid variable name `%s' in position %d."), name, i); str_uppercase (name); @@ -687,17 +695,15 @@ read_variables (struct pfm_reader *r, struct dictionary *dict) v = dict_create_var (dict, name, width); if (v == NULL) { - int i; - for (i = 1; i < 100000; i++) + unsigned long int i; + for (i = 1; ; i++) { - char try_name[VAR_NAME_LEN + 1]; - sprintf (try_name, "%.*s_%d", VAR_NAME_LEN - 6, name, i); + char try_name[8 + 1 + INT_STRLEN_BOUND (i) + 1]; + sprintf (try_name, "%s_%lu", name, i); v = dict_create_var (dict, try_name, width); if (v != NULL) break; } - if (v == NULL) - error (r, _("Duplicate variable name %s in position %d."), name, i); warning (r, _("Duplicate variable name %s in position %d renamed " "to %s."), name, i, var_get_name (v)); } @@ -739,7 +745,7 @@ read_variables (struct pfm_reader *r, struct dictionary *dict) { char label[256]; read_string (r, label); - var_set_label (v, label); + var_set_label (v, label, NULL, false); /* XXX */ } } @@ -829,7 +835,7 @@ read_documents (struct pfm_reader *r, struct dictionary *dict) { char line[256]; read_string (r, line); - dict_add_document_line (dict, line); + dict_add_document_line (dict, line, false); } }