Partial fix for PR 12859.
authorBen Pfaff <blp@gnu.org>
Tue, 3 May 2005 06:46:03 +0000 (06:46 +0000)
committerBen Pfaff <blp@gnu.org>
Tue, 3 May 2005 06:46:03 +0000 (06:46 +0000)
src/ChangeLog
src/data-list.c

index 66c76f1349aa1a52752dec6642b6687404b5e871..f5c79c77c3583467105713c8bb2c8f01dc9f508f 100644 (file)
@@ -1,3 +1,19 @@
+Mon May  2 23:45:01 2005  Ben Pfaff  <blp@gnu.org>
+
+       Code improvements.
+       
+       * data-list.c:  (parse_fixed) Use lex_end_of_command().
+       (parse_free) Ditto.
+       (cmd_repeating_data) Set cont_end.num in right situations.
+       (parse_repeating_data) Remove redundant test.
+
+Mon May  2 23:37:19 2005  Ben Pfaff  <blp@gnu.org>
+
+       Partial fix for PR 12859.
+       
+       * data-list.c: (cmd_data_list) Add transformation properly in
+       vfm_source == NULL case.
+
 Mon May  2 23:27:28 2005  Ben Pfaff  <blp@gnu.org>
 
        * lexer.c: (lex_error) Improve error messages.
index 3d730939b3e4a854af4da91bda81639685af530c..1e9deb8006f613c501b9a108e4db8bcdc31dce8c 100644 (file)
@@ -268,14 +268,9 @@ cmd_data_list (void)
 
   if (vfm_source != NULL)
     {
-      struct data_list_pgm *new_pgm;
-
       dls->h.proc = data_list_trns_proc;
       dls->h.free = data_list_trns_free;
-
-      new_pgm = xmalloc (sizeof *new_pgm);
-      memcpy (new_pgm, &dls, sizeof *new_pgm);
-      add_transformation (&new_pgm->h);
+      add_transformation (&dls->h);
     }
   else 
     vfm_source = create_case_source (&data_list_source_class, dls);
@@ -404,12 +399,7 @@ parse_fixed (struct data_list_pgm *dls)
     }
   else if (!dls->rec_cnt)
     dls->rec_cnt = dls->last->rec;
-  if (token != '.')
-    {
-      lex_error (_("expecting end of command"));
-      return 0;
-    }
-  return 1;
+  return lex_end_of_command () == CMD_SUCCESS;
 
 fail:
   for (i = 0; i < fx.name_cnt; i++)
@@ -897,9 +887,7 @@ parse_free (struct dls_var_spec **first, struct dls_var_spec **last)
       free (name);
     }
 
-  if (token != '.')
-    lex_error (_("expecting end of command"));
-  return 1;
+  return lex_end_of_command () == CMD_SUCCESS;
 }
 
 /* Displays a table giving information on free-format variable parsing
@@ -1602,7 +1590,7 @@ cmd_repeating_data (void)
   /* Calculate starts_end, cont_end if necessary. */
   if (rpd->starts_end.num == 0 && rpd->starts_end.var == NULL)
     rpd->starts_end.num = handle_get_record_width (fh);
-  if (rpd->cont_end.num == 0 && rpd->starts_end.var == NULL)
+  if (rpd->cont_end.num == 0 && rpd->cont_end.var == NULL)
     rpd->cont_end.num = handle_get_record_width (fh);
       
   /* Calculate length if possible. */
@@ -1739,7 +1727,7 @@ parse_repeating_data (struct dls_var_spec **first, struct dls_var_spec **last)
       else
        {
          msg (SE, _("SPSS-like or FORTRAN-like format "
-              "specification expected after variable names."));
+                     "specification expected after variable names."));
          goto fail;
        }
 
@@ -1747,11 +1735,6 @@ parse_repeating_data (struct dls_var_spec **first, struct dls_var_spec **last)
        free (fx.name[i]);
       free (fx.name);
     }
-  if (token != '.')
-    {
-      lex_error (_("expecting end of command"));
-      return 0;
-    }
   
   return 1;