projects
/
pspp-builds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge commit 'origin/stable'
[pspp-builds.git]
/
src
/
language
/
data-io
/
list.q
diff --git
a/src/language/data-io/list.q
b/src/language/data-io/list.q
index 1df9411163a5d81b82dc0da670aa702601ac4fa4..28820a8504b5fdfc15c8ede3338439ab0f1b4d7a 100644
(file)
--- a/
src/language/data-io/list.q
+++ b/
src/language/data-io/list.q
@@
-1,5
+1,5
@@
/* PSPP - a program for statistical analysis.
/* PSPP - a program for statistical analysis.
- Copyright (C) 1997-9, 2000, 2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-9, 2000, 2006
, 2009
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
@@
-16,24
+16,25
@@
#include <config.h>
#include <config.h>
+#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include "intprops.h"
#include <stdio.h>
#include <stdlib.h>
#include "intprops.h"
-#include "size_max.h"
+#include "xmalloca.h"
+
#include <data/casegrouper.h>
#include <data/casereader.h>
#include <data/dictionary.h>
#include <data/data-out.h>
#include <data/format.h>
#include <data/procedure.h>
#include <data/casegrouper.h>
#include <data/casereader.h>
#include <data/dictionary.h>
#include <data/data-out.h>
#include <data/format.h>
#include <data/procedure.h>
+#include <data/short-names.h>
#include <data/variable.h>
#include <language/command.h>
#include <language/dictionary/split-file.h>
#include <language/lexer/lexer.h>
#include <data/variable.h>
#include <language/command.h>
#include <language/dictionary/split-file.h>
#include <language/lexer/lexer.h>
-#include <libpspp/alloc.h>
#include <libpspp/compiler.h>
#include <libpspp/compiler.h>
-#include <libpspp/magic.h>
#include <libpspp/message.h>
#include <libpspp/message.h>
#include <libpspp/misc.h>
#include <libpspp/message.h>
#include <libpspp/message.h>
#include <libpspp/misc.h>
@@
-43,6
+44,7
@@
#include <output/table.h>
#include "minmax.h"
#include <output/table.h>
#include "minmax.h"
+#include "xalloc.h"
#include "gettext.h"
#define _(msgid) gettext (msgid)
#include "gettext.h"
#define _(msgid) gettext (msgid)
@@
-81,7
+83,7
@@
static unsigned n_chars_width (struct outp_driver *d);
static void write_line (struct outp_driver *d, const char *s);
/* Other functions. */
static void write_line (struct outp_driver *d, const char *s);
/* Other functions. */
-static void list_case (struct ccase *, casenumber case_idx,
+static void list_case (
const
struct ccase *, casenumber case_idx,
const struct dataset *);
static void determine_layout (void);
static void clean_up (void);
const struct dataset *);
static void determine_layout (void);
static void clean_up (void);
@@
-141,15
+143,15
@@
cmd_list (struct lexer *lexer, struct dataset *ds)
return CMD_FAILURE;
/* Fill in defaults. */
return CMD_FAILURE;
/* Fill in defaults. */
- if (cmd.step ==
NOT_LONG
)
+ if (cmd.step ==
LONG_MIN
)
cmd.step = 1;
cmd.step = 1;
- if (cmd.first ==
NOT_LONG
)
+ if (cmd.first ==
LONG_MIN
)
cmd.first = 1;
cmd.first = 1;
- if (cmd.last ==
NOT_LONG
)
+ if (cmd.last ==
LONG_MIN
)
cmd.last = LONG_MAX;
if (!cmd.sbc_variables)
dict_get_vars (dict, &cmd.v_variables, &cmd.n_variables,
cmd.last = LONG_MAX;
if (!cmd.sbc_variables)
dict_get_vars (dict, &cmd.v_variables, &cmd.n_variables,
-
(1u << DC_SYSTEM) | (1u << DC_SCRATCH)
);
+
DC_SYSTEM | DC_SCRATCH
);
if (cmd.n_variables == 0)
{
msg (SE, _("No variables specified."));
if (cmd.n_variables == 0)
{
msg (SE, _("No variables specified."));
@@
-234,15
+236,15
@@
cmd_list (struct lexer *lexer, struct dataset *ds)
casegrouper_get_next_group (grouper, &group);
casereader_destroy (group))
{
casegrouper_get_next_group (grouper, &group);
casereader_destroy (group))
{
- struct ccase c;
+ struct ccase
*
c;
write_all_headers (group, ds);
write_all_headers (group, ds);
- for (;
casereader_read (group, &c); case_destroy (&
c))
+ for (;
(c = casereader_read (group)) != NULL; case_unref (
c))
{
case_idx++;
if (case_idx >= cmd.first && case_idx <= cmd.last
&& (case_idx - cmd.first) % cmd.step == 0)
{
case_idx++;
if (case_idx >= cmd.first && case_idx <= cmd.last
&& (case_idx - cmd.first) % cmd.step == 0)
- list_case (
&
c, case_idx, ds);
+ list_case (c, case_idx, ds);
}
}
ok = casegrouper_destroy (grouper);
}
}
ok = casegrouper_destroy (grouper);
@@
-263,12
+265,13
@@
static void
write_all_headers (struct casereader *input, const struct dataset *ds)
{
struct outp_driver *d;
write_all_headers (struct casereader *input, const struct dataset *ds)
{
struct outp_driver *d;
- struct ccase c;
+ struct ccase
*
c;
- if (!casereader_peek (input, 0, &c))
+ c = casereader_peek (input, 0);
+ if (c == NULL)
return;
return;
- output_split_file_values (ds,
&
c);
- case_
destroy (&
c);
+ output_split_file_values (ds, c);
+ case_
unref (
c);
for (d = outp_drivers (NULL); d; d = outp_drivers (d))
{
for (d = outp_drivers (NULL); d; d = outp_drivers (d))
{
@@
-463,8
+466,8
@@
write_fallback_headers (struct outp_driver *d)
int line_number = 0;
const char *Line = _("Line");
int line_number = 0;
const char *Line = _("Line");
- char *leader =
local_alloc
(strlen (Line)
-
+ INT_STRLEN_BOUND (line_number) + 1 + 1);
+ char *leader =
xmalloca
(strlen (Line)
+ + INT_STRLEN_BOUND (line_number) + 1 + 1);
while (index < cmd.n_variables)
{
while (index < cmd.n_variables)
{
@@
-506,7
+509,7
@@
write_fallback_headers (struct outp_driver *d)
}
{
}
{
- char varname[
LONG
_NAME_LEN + 2];
+ char varname[
VAR
_NAME_LEN + 2];
snprintf (varname, sizeof varname,
" %s", var_get_name (cmd.v_variables[index]));
write_varname (d, varname, leader_width);
snprintf (varname, sizeof varname,
" %s", var_get_name (cmd.v_variables[index]));
write_varname (d, varname, leader_width);
@@
-518,7
+521,7
@@
write_fallback_headers (struct outp_driver *d)
d->cp_x = 0;
d->cp_y += d->font_height;
d->cp_x = 0;
d->cp_y += d->font_height;
-
local_free
(leader);
+
freea
(leader);
}
/* There are three possible layouts for the LIST procedure:
}
/* There are three possible layouts for the LIST procedure:
@@
-647,7
+650,8
@@
determine_layout (void)
/* Writes case C to output. */
static void
/* Writes case C to output. */
static void
-list_case (struct ccase *c, casenumber case_idx, const struct dataset *ds)
+list_case (const struct ccase *c, casenumber case_idx,
+ const struct dataset *ds)
{
struct dictionary *dict = dataset_dict (ds);
struct outp_driver *d;
{
struct dictionary *dict = dataset_dict (ds);
struct outp_driver *d;