lexer: Use lex_is_string() more consistently.
[pspp] / src / language / data-io / data-list.c
index 3b091404f80f491edfe04418cf7c6b6830a16e72..80c9849b55b61c9812551278115756135d920813 100644 (file)
@@ -86,7 +86,7 @@ cmd_data_list (struct lexer *lexer, struct dataset *ds)
   bool ok;
 
   dict = in_input_program () ? dataset_dict (ds) : dict_create ();
-  parser = data_parser_create ();
+  parser = data_parser_create (dict);
   reader = NULL;
 
   table = -1;                /* Print table if nonzero, -1=undecided. */
@@ -196,7 +196,7 @@ cmd_data_list (struct lexer *lexer, struct dataset *ds)
 
                       if (lex_match_id (lexer, "TAB"))
                         delim = '\t';
-                      else if (lex_token (lexer) == T_STRING
+                      else if (lex_is_string (lexer)
                                && ds_length (lex_tokstr (lexer)) == 1)
                         {
                           delim = ds_first (lex_tokstr (lexer));
@@ -294,6 +294,7 @@ cmd_data_list (struct lexer *lexer, struct dataset *ds)
     data_parser_make_active_file (parser, ds, reader, dict);
 
   fh_unref (fh);
+  ds_destroy (&encoding);
 
   return CMD_SUCCESS;
 
@@ -302,6 +303,7 @@ cmd_data_list (struct lexer *lexer, struct dataset *ds)
   if (!in_input_program ())
     dict_destroy (dict);
   fh_unref (fh);
+  ds_destroy (&encoding);
   return CMD_CASCADING_FAILURE;
 }
 \f