projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added display sort feature to PsppireDictView
[pspp]
/
src
/
data
/
por-file-reader.c
diff --git
a/src/data/por-file-reader.c
b/src/data/por-file-reader.c
index 3f8ee3c9fee47601c651850ba2ce6e3195028da0..0897d77aa2e30a4520f645c9fa9a647ed7fde652 100644
(file)
--- a/
src/data/por-file-reader.c
+++ b/
src/data/por-file-reader.c
@@
-1,5
+1,5
@@
/* PSPP - a program for statistical analysis.
/* 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
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 "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"
#include "libpspp/message.h"
#include "libpspp/misc.h"
#include "libpspp/pool.h"
@@
-105,10
+106,11
@@
error (struct pfm_reader *r, const char *msg, ...)
m.category = MSG_C_GENERAL;
m.severity = MSG_S_ERROR;
m.category = MSG_C_GENERAL;
m.severity = MSG_S_ERROR;
- m.where.file_name = NULL;
- m.where.line_number = 0;
- m.where.first_column = 0;
- m.where.last_column = 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);
m.text = ds_cstr (&text);
msg_emit (&m);
@@
-136,10
+138,11
@@
warning (struct pfm_reader *r, const char *msg, ...)
m.category = MSG_C_GENERAL;
m.severity = MSG_S_WARNING;
m.category = MSG_C_GENERAL;
m.severity = MSG_S_WARNING;
- m.where.file_name = NULL;
- m.where.line_number = 0;
- m.where.first_column = 0;
- m.where.last_column = 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);
m.text = ds_cstr (&text);
msg_emit (&m);
@@
-248,7
+251,7
@@
pfm_open_reader (struct file_handle *fh, struct dictionary **dict,
struct pool *volatile pool = NULL;
struct pfm_reader *volatile r = NULL;
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 ();
/* Create and initialize reader. */
pool = pool_create ();
@@
-537,7
+540,7
@@
read_version_data (struct pfm_reader *r, struct pfm_read_info *info)
{
static const char empty_string[] = "";
char *date, *time;
{
static const char empty_string[] = "";
char *date, *time;
- const char *product, *
author, *
subproduct;
+ const char *product, *subproduct;
int i;
/* Read file. */
int i;
/* Read file. */
@@
-546,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;
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. */
subproduct = match (r, '3') ? read_pool_string (r) : empty_string;
/* Validate file. */
@@
-650,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);
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'))
{
if (match (r, '6'))
{
@@
-682,7
+689,8
@@
read_variables (struct pfm_reader *r, struct dictionary *dict)
for (j = 0; j < 6; j++)
fmt[j] = read_int (r);
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);
error (r, _("Invalid variable name `%s' in position %d."), name, i);
str_uppercase (name);
@@
-742,7
+750,7
@@
read_variables (struct pfm_reader *r, struct dictionary *dict)
{
char label[256];
read_string (r, label);
{
char label[256];
read_string (r, label);
- var_set_label (v, label);
+ var_set_label (v, label);
/* XXX */
}
}
}
}
@@
-832,7
+840,7
@@
read_documents (struct pfm_reader *r, struct dictionary *dict)
{
char line[256];
read_string (r, line);
{
char line[256];
read_string (r, line);
- dict_add_document_line (dict, line);
+ dict_add_document_line (dict, line
, false
);
}
}
}
}