X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Flanguage%2Fdata-io%2Flist.q;h=ddc072a46b5ebaad10b5ed03dc6d0136d5c824f3;hb=5c210c96542db2a357cf1aa6b690ef2ea88a54b1;hp=60f51b523b0c0250abbe4ae43753880be464ff4b;hpb=dfd1972f7bcb550a4fc3b05dbe7e71d12334b0a7;p=pspp diff --git a/src/language/data-io/list.q b/src/language/data-io/list.q index 60f51b523b..ddc072a46b 100644 --- a/src/language/data-io/list.q +++ b/src/language/data-io/list.q @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 1997-9, 2000, 2006, 2009 Free Software Foundation, Inc. + Copyright (C) 1997-9, 2000, 2006, 2009-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 @@ -20,29 +20,28 @@ #include #include -#include "intprops.h" -#include "xmalloca.h" - -#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/casegrouper.h" +#include "data/casereader.h" +#include "data/dataset.h" +#include "data/dictionary.h" +#include "data/data-out.h" +#include "data/format.h" +#include "data/subcase.h" +#include "data/variable.h" +#include "language/command.h" +#include "language/dictionary/split-file.h" +#include "language/lexer/lexer.h" +#include "libpspp/compiler.h" +#include "libpspp/ll.h" +#include "libpspp/message.h" +#include "libpspp/misc.h" +#include "output/tab.h" +#include "output/table-item.h" + +#include "gl/intprops.h" +#include "gl/minmax.h" +#include "gl/xalloc.h" +#include "gl/xmalloca.h" #include "gettext.h" #define _(msgid) gettext (msgid) @@ -131,13 +130,6 @@ cmd_list (struct lexer *lexer, struct dataset *ds) struct ccase *ccase; struct table *t; - group = casereader_project (group, &sc); - if (cmd.numbering == LST_NUMBERED) - group = casereader_create_arithmetic_sequence (group, 1, 1); - group = casereader_select (group, cmd.first - 1, - (cmd.last != LONG_MAX ? cmd.last - : CASENUMBER_MAX), cmd.step); - ccase = casereader_peek (group, 0); if (ccase != NULL) { @@ -145,6 +137,13 @@ cmd_list (struct lexer *lexer, struct dataset *ds) case_unref (ccase); } + group = casereader_project (group, &sc); + if (cmd.numbering == LST_NUMBERED) + group = casereader_create_arithmetic_sequence (group, 1, 1); + group = casereader_select (group, cmd.first - 1, + (cmd.last != LONG_MAX ? cmd.last + : CASENUMBER_MAX), cmd.step); + if (cmd.numbering == LST_NUMBERED) { struct fmt_spec fmt; @@ -178,6 +177,7 @@ cmd_list (struct lexer *lexer, struct dataset *ds) ok = proc_commit (ds) && ok; subcase_destroy (&sc); + free (cmd.v_variables); return ok ? CMD_SUCCESS : CMD_CASCADING_FAILURE; }