X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fstats%2Ffactor.c;h=ed93271b90c5e7d71ddc0d946dea1164bd89d785;hb=5ce0aa4323a1caafd709713671bae889e8410057;hp=c34feb8d05ee7312e0f1e0cbf08be7c4002b0cd3;hpb=9743aa05898c191b3c2d3fead5ae0315beb44bb3;p=pspp diff --git a/src/language/stats/factor.c b/src/language/stats/factor.c index c34feb8d05..ed93271b90 100644 --- a/src/language/stats/factor.c +++ b/src/language/stats/factor.c @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 2009, 2010, 2011, 2012, 2014 Free Software Foundation, Inc. + Copyright (C) 2009, 2010, 2011, 2012, 2014, 2015 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 @@ -1051,7 +1051,28 @@ cmd_factor (struct lexer *lexer, struct dataset *ds) { lex_match (lexer, T_SLASH); - if (lex_match_id (lexer, "PLOT")) + if (lex_match_id (lexer, "ANALYSIS")) + { + struct const_var_set *vs; + const struct variable **vars; + size_t n_vars; + bool ok; + + lex_match (lexer, T_EQUALS); + + vs = const_var_set_create_from_array (factor.vars, factor.n_vars); + ok = parse_const_var_set_vars (lexer, vs, &vars, &n_vars, + PV_NO_DUPLICATE | PV_NUMERIC); + const_var_set_destroy (vs); + + if (!ok) + goto error; + + free (factor.vars); + factor.vars = vars; + factor.n_vars = n_vars; + } + else if (lex_match_id (lexer, "PLOT")) { lex_match (lexer, T_EQUALS); while (lex_token (lexer) != T_ENDCMD && lex_token (lexer) != T_SLASH)