Redo VFM interface. Get rid of compaction_necessary, compaction_nval,
[pspp-builds.git] / src / dfm.c
index 0b231208b8a686b8eb9b8dc4f64e317efeed2f26..cec6234f982b94fa33f429c5c01208d54230a520 100644 (file)
--- a/src/dfm.c
+++ b/src/dfm.c
    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
    02111-1307, USA. */
 
-/* AIX requires this to be the first thing in the file.  */
 #include <config.h>
-#if __GNUC__
-#define alloca __builtin_alloca
-#else
-#if HAVE_ALLOCA_H
-#include <alloca.h>
-#else
-#ifdef _AIX
-#pragma alloca
-#else
-#ifndef alloca                 /* predefined by HP cc +Olibcalls */
-char *alloca ();
-#endif
-#endif
-#endif
-#endif
-
 #include <assert.h>
+#include "dfm.h"
 #include <ctype.h>
 #include <errno.h>
 #include <stdlib.h>
@@ -485,6 +469,8 @@ eof:
 char *
 dfm_get_record (struct file_handle *h, int *len)
 {
+  assert (h != NULL);
+
   if (h->class == NULL)
     {
       if (!open_file_r (h))
@@ -664,9 +650,8 @@ cmd_begin_data (void)
   /* FIXME: figure out the *exact* conditions, not these really
      lenient conditions. */
   if (vfm_source == NULL
-      || vfm_source == &vfm_memory_stream
-      || vfm_source == &vfm_disk_stream
-      || vfm_source == &sort_stream)
+      || case_source_is_class (vfm_source, &storage_source_class)
+      || case_source_is_class (vfm_source, &sort_source_class))
     {
       msg (SE, _("This command is not valid here since the current "
           "input program does not access the inline file."));
@@ -683,7 +668,7 @@ cmd_begin_data (void)
   /* We don't actually read from the inline file.  The input procedure
      is what reads from it. */
   getl_prompt = GETL_PRPT_DATA;
-  procedure (NULL, NULL, NULL);
+  procedure (NULL, NULL);
 
   ext = inline_file->ext;