/* PSPP - a program for statistical analysis.
- Copyright (C) 1997-9, 2000, 2006, 2009-2011, 2013 Free Software Foundation, Inc.
+ Copyright (C) 1997-9, 2000, 2006, 2009-2011, 2013, 2014, 2016 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
struct lst_cmd
{
- int first;
- int last;
- int step;
- struct variable **v_variables;
+ long first;
+ long last;
+ long step;
+ const struct variable **v_variables;
size_t n_variables;
enum numbering numbering;
};
casereader_destroy (group);
- table_item_submit (table_item_create (t, "Data List"));
+ table_item_submit (table_item_create (t, "Data List", NULL));
}
ok = casegrouper_destroy (grouper);
ok = proc_commit (ds) && ok;
if (lex_match_id (lexer, "VARIABLES") )
{
lex_match (lexer, T_EQUALS);
- if (! parse_variables (lexer, dict, &cmd.v_variables, &cmd.n_variables, 0 ))
+ if (! parse_variables_const (lexer, dict, &cmd.v_variables, &cmd.n_variables, 0 ))
{
msg (SE, _("No variables specified."));
return CMD_FAILURE;
else if (lex_match_id (lexer, "CASES"))
{
lex_match (lexer, T_EQUALS);
- lex_force_match_id (lexer, "FROM");
-
- if (lex_force_int (lexer))
+ if (lex_match_id (lexer, "FROM") && lex_force_int (lexer))
{
- cmd.first = lex_integer (lexer);
+ cmd.first = lex_integer (lexer);
lex_get (lexer);
}
- lex_force_match (lexer, T_TO);
-
- if (lex_force_int (lexer))
+ if ((lex_match (lexer, T_TO) && lex_force_int (lexer))
+ || lex_is_integer (lexer))
{
cmd.last = lex_integer (lexer);
lex_get (lexer);
}
- lex_force_match (lexer, T_BY);
-
- if (lex_force_int (lexer))
+ if (lex_match (lexer, T_BY) && lex_force_int (lexer))
{
cmd.step = lex_integer (lexer);
lex_get (lexer);
}
}
- else if (! parse_variables (lexer, dict, &cmd.v_variables, &cmd.n_variables, 0 ))
+ else if (! parse_variables_const (lexer, dict, &cmd.v_variables, &cmd.n_variables, 0 ))
{
return CMD_FAILURE;
}
if (cmd.first < 1)
{
- msg (SW, _("The first case (%ld) to list is less than 1. The value is "
- "being reset to 1."), cmd.first);
+ msg (SW, _("The first case (%ld) to list is numbered less than 1. "
+ "The value is being reset to 1."), cmd.first);
cmd.first = 1;
}
if (cmd.last < 1)
{
- msg (SW, _("The last case (%ld) to list is less than 1. The value is "
- "being reset to 1."), cmd.last);
+ msg (SW, _("The last case (%ld) to list is numbered less than 1. "
+ "The value is being reset to 1."), cmd.last);
cmd.last = 1;
}