projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge 'master' into 'psppsheet'.
[pspp]
/
src
/
language
/
dictionary
/
sys-file-info.c
diff --git
a/src/language/dictionary/sys-file-info.c
b/src/language/dictionary/sys-file-info.c
index 596329516cf7a4c8504349dbb6cc64c45e641e4a..441054e209b29b3dfdb7434038083dd6df11ce32 100644
(file)
--- a/
src/language/dictionary/sys-file-info.c
+++ b/
src/language/dictionary/sys-file-info.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
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
@@
-81,7
+81,7
@@
cmd_sysfile_info (struct lexer *lexer, struct dataset *ds UNUSED)
if (!h)
return CMD_FAILURE;
if (!h)
return CMD_FAILURE;
- reader = sfm_open_reader (h, &d, &info);
+ reader = sfm_open_reader (h,
NULL,
&d, &info);
if (!reader)
{
fh_unref (h);
if (!reader)
{
fh_unref (h);
@@
-163,6
+163,7
@@
cmd_sysfile_info (struct lexer *lexer, struct dataset *ds UNUSED)
dict_destroy (d);
fh_unref (h);
dict_destroy (d);
fh_unref (h);
+ sfm_read_info_destroy (&info);
return CMD_SUCCESS;
}
\f
return CMD_SUCCESS;
}
\f
@@
-376,12
+377,15
@@
static void
display_attributes (struct tab_table *t, const struct attrset *set, int flags,
int c, int r)
{
display_attributes (struct tab_table *t, const struct attrset *set, int flags,
int c, int r)
{
- struct attrset_iterator i;
- struct attribute *attr;
+ struct attribute **attrs;
+ size_t n_attrs;
+ size_t i;
- for (attr = attrset_first (set, &i); attr != NULL;
- attr = attrset_next (set, &i))
+ n_attrs = attrset_count (set);
+ attrs = attrset_sorted (set);
+ for (i = 0; i < n_attrs; i++)
{
{
+ const struct attribute *attr = attrs[i];
const char *name = attribute_get_name (attr);
size_t n_values;
size_t i;
const char *name = attribute_get_name (attr);
size_t n_values;
size_t i;
@@
-400,6
+404,7
@@
display_attributes (struct tab_table *t, const struct attrset *set, int flags,
r++;
}
}
r++;
}
}
+ free (attrs);
}
static void
}
static void