(cmd_data_list): Don't allow END subcommand to be used with DATA LIST
authorBen Pfaff <blp@gnu.org>
Sun, 23 Sep 2007 16:49:37 +0000 (16:49 +0000)
committerBen Pfaff <blp@gnu.org>
Sun, 23 Sep 2007 16:49:37 +0000 (16:49 +0000)
FREE or LIST.

doc/data-io.texi
src/language/data-io/ChangeLog
src/language/data-io/data-list.c

index cb11c7cfc1008306f87a408b93201ba1f7f1d8e1..3439ca3a8a0631c8dc0f777ee3e0e38f0029367d 100644 (file)
@@ -339,7 +339,6 @@ DATA LIST FREE
         [(@{TAB,'c'@}, @dots{})]
         [@{NOTABLE,TABLE@}]
         [FILE='file-name']
-        [END=end_var]
         [SKIP=record_cnt]
         /var_spec@dots{}
 
@@ -369,7 +368,7 @@ of quoting is allowed.
 The NOTABLE and TABLE subcommands are as in @cmd{DATA LIST FIXED} above.
 NOTABLE is the default.
 
-The FILE, END, and SKIP subcommands are as in @cmd{DATA LIST FIXED} above.
+The FILE and SKIP subcommands are as in @cmd{DATA LIST FIXED} above.
 
 The variables to be parsed are given as a single list of variable names.
 This list must be introduced by a single slash (@samp{/}).  The set of
@@ -392,7 +391,6 @@ DATA LIST LIST
         [(@{TAB,'c'@}, @dots{})]
         [@{NOTABLE,TABLE@}]
         [FILE='file-name']
-        [END=end_var]
         [SKIP=record_count]
         /var_spec@dots{}
 
index ec8873acbe7789d5fc19bdb7800e20cfe13c24c4..ae8bb79fee5276f3a73ec730e6d8a1cf02b0efbb 100644 (file)
@@ -4,6 +4,8 @@
 
        * data-list.c (data_list_trns_proc): Properly set retval when END
        subcommand is in use.
+       (cmd_data_list): Don't allow END subcommand to be used with DATA
+       LIST FREE or LIST.
 
 2007-09-12  Ben Pfaff  <blp@gnu.org>
 
index 4e2f083bee9077f2f69c990624fc6694b8ed0749..75db52af6548f61baa214f9250856778565fb53b 100644 (file)
@@ -249,6 +249,12 @@ cmd_data_list (struct lexer *lexer, struct dataset *ds)
   if (dls->type == -1)
     dls->type = DLS_FIXED;
 
+  if (dls->type != DLS_FIXED && dls->end != NULL)
+    {
+      msg (SE, _("The END keyword may be used only with DATA LIST FIXED."));
+      goto error;
+    }
+
   if (table == -1)
     table = dls->type != DLS_FREE;