X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Fsplit-file.c;h=c9e144f9050d5041876f06764690f4be1333696b;hb=d7b5d9144738a5a8989d45a01f4e458a78b68c0b;hp=29fc432ef0902b4be4bb104f02d68f7e7b6fd1b1;hpb=4944c86a9318bc5b5578ab145a95c116ffd2c9fd;p=pspp diff --git a/src/split-file.c b/src/split-file.c index 29fc432ef0..c9e144f905 100644 --- a/src/split-file.c +++ b/src/split-file.c @@ -14,13 +14,14 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. */ + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. */ #include #include #include "alloc.h" #include "command.h" +#include "dictionary.h" #include "error.h" #include "lexer.h" #include "str.h" @@ -29,27 +30,22 @@ int cmd_split_file (void) { - lex_match_id ("SPLIT"); - lex_match_id ("FILE"); - if (lex_match_id ("OFF")) - { - default_dict.n_splits = 0; - free (default_dict.splits); - default_dict.splits = NULL; - } + dict_set_split_vars (default_dict, NULL, 0); else { struct variable **v; - int n; + size_t n; + /* For now, ignore SEPARATE and LAYERED. */ + lex_match_id ("SEPARATE") || lex_match_id ("LAYERED"); + lex_match (T_BY); - if (!parse_variables (NULL, &v, &n, PV_NO_DUPLICATE)) + if (!parse_variables (default_dict, &v, &n, PV_NO_DUPLICATE)) return CMD_FAILURE; - default_dict.n_splits = n; - default_dict.splits = v = xrealloc (v, sizeof *v * (n + 1)); - v[n] = NULL; + dict_set_split_vars (default_dict, v, n); + free (v); } return lex_end_of_command ();