X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fdata-io%2Ftrim.c;h=63041f25f10465dde398a80b863a9d46bf186340;hb=9ade26c8349b4434008c46cf09bc7473ec743972;hp=be637c403365be64ff788d3df6ae6fcc4b4ac698;hpb=691c25e36fd1ee722dd35419d6110e3876b99f9c;p=pspp-builds.git diff --git a/src/language/data-io/trim.c b/src/language/data-io/trim.c index be637c40..63041f25 100644 --- a/src/language/data-io/trim.c +++ b/src/language/data-io/trim.c @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 1997-9, 2000, 2006, 2007, 2008, 2010 Free Software Foundation, Inc. + Copyright (C) 1997-9, 2000, 2006, 2007, 2008, 2010, 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 @@ -16,17 +16,17 @@ #include -#include +#include "language/data-io/trim.h" #include -#include -#include -#include -#include -#include +#include "data/dictionary.h" +#include "data/variable.h" +#include "language/lexer/lexer.h" +#include "language/lexer/variable-parser.h" +#include "libpspp/message.h" -#include "xalloc.h" +#include "gl/xalloc.h" #include "gettext.h" #define _(msgid) gettext (msgid) @@ -81,20 +81,21 @@ parse_dict_rename (struct lexer *lexer, struct dictionary *dict) if (v == NULL) return 0; if (!lex_force_match (lexer, T_EQUALS) - || !lex_force_id (lexer)) + || !lex_force_id (lexer) + || !dict_id_is_valid (dict, lex_tokcstr (lexer), true)) return 0; - if (dict_lookup_var (dict, lex_tokid (lexer)) != NULL) + if (dict_lookup_var (dict, lex_tokcstr (lexer)) != NULL) { msg (SE, _("Cannot rename %s as %s because there already exists " "a variable named %s. To rename variables with " "overlapping names, use a single RENAME subcommand " "such as `/RENAME (A=B)(B=C)(C=A)', or equivalently, " "`/RENAME (A B C=B C A)'."), - var_get_name (v), lex_tokid (lexer), lex_tokid (lexer)); + var_get_name (v), lex_tokcstr (lexer), lex_tokcstr (lexer)); return 0; } - dict_rename_var (dict, v, lex_tokid (lexer)); + dict_rename_var (dict, v, lex_tokcstr (lexer)); lex_get (lexer); return 1; } @@ -114,7 +115,7 @@ parse_dict_rename (struct lexer *lexer, struct dictionary *dict) msg (SE, _("`=' expected after variable list.")); goto done; } - if (!parse_DATA_LIST_vars (lexer, &new_names, &nn, + if (!parse_DATA_LIST_vars (lexer, dict, &new_names, &nn, PV_APPEND | PV_NO_SCRATCH | PV_NO_DUPLICATE)) goto done; if (nn != nv)