variable: Make property function return untranslated versions.
[pspp] / src / language / data-io / trim.c
index ac8bf272f8528f2ebc5878e0ce0c64d8e4a1c9e3..68a2b5ed9c1ef28c8963cccfcdac0b364bf1b04b 100644 (file)
@@ -75,27 +75,27 @@ parse_dict_rename (struct lexer *lexer, struct dictionary *dict)
   lex_match (lexer, T_EQUALS);
   if (lex_token (lexer) != T_LPAREN)
     {
-      struct variable *v;
-
-      v = parse_variable (lexer, dict);
+      struct variable *v = parse_variable (lexer, dict);
       if (v == NULL)
        return 0;
-      if (!lex_force_match (lexer, T_EQUALS)
-         || !lex_force_id (lexer))
-       return 0;
-      if (dict_lookup_var (dict, lex_tokcstr (lexer)) != NULL)
+      if (!lex_force_match (lexer, T_EQUALS))
+        return 0;
+
+      char *new_name = parse_DATA_LIST_var (lexer, dict);
+      if (dict_lookup_var (dict, new_name) != 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_tokcstr (lexer), lex_tokcstr (lexer));
+               var_get_name (v), new_name, new_name);
+          free (new_name);
          return 0;
        }
 
-      dict_rename_var (dict, v, lex_tokcstr (lexer));
-      lex_get (lexer);
+      dict_rename_var (dict, v, new_name);
+      free (new_name);
       return 1;
     }
 
@@ -111,10 +111,10 @@ parse_dict_rename (struct lexer *lexer, struct dictionary *dict)
        goto done;
       if (!lex_match (lexer, T_EQUALS))
        {
-         msg (SE, _("`=' expected after variable list."));
+          lex_error_expecting (lexer, "`='", NULL_SENTINEL);
          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)