02110-1301, USA. */
#include "config.h"
-#include <libpspp/message.h>
+
#include <ctype.h>
#include <errno.h>
#include <float.h>
#include <limits.h>
#include <stdlib.h>
-#include <libpspp/array.h>
-#include <libpspp/alloc.h>
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+
+#include <data/case-sink.h>
+#include <data/case-source.h>
#include <data/case.h>
-#include <language/command.h>
#include <data/dictionary.h>
-#include <libpspp/message.h>
-#include "intprops.h"
+#include <data/procedure.h>
+#include <data/settings.h>
+#include <data/value.h>
+#include <data/variable.h>
+#include <language/command.h>
#include <language/lexer/lexer.h>
+#include <language/lexer/variable-parser.h>
+#include <libpspp/alloc.h>
+#include <libpspp/array.h>
+#include <libpspp/assertion.h>
+#include <libpspp/message.h>
+#include <libpspp/message.h>
#include <libpspp/misc.h>
#include <libpspp/pool.h>
-#include <data/settings.h>
#include <libpspp/str.h>
-#include <data/value.h>
-#include <data/variable.h>
-#include <procedure.h>
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
+#include "intprops.h"
#include "gettext.h"
#define _(msgid) gettext (msgid)
cmd_flip (void)
{
struct flip_pgm *flip;
+ struct case_sink *sink;
bool ok;
- if (temporary != 0)
- {
- msg (SW, _("FLIP ignores TEMPORARY. "
- "Temporary transformations will be made permanent."));
- cancel_temporary ();
- }
+ if (proc_make_temporary_transformations_permanent ())
+ msg (SW, _("FLIP ignores TEMPORARY. "
+ "Temporary transformations will be made permanent."));
flip = pool_create_container (struct flip_pgm, pool);
flip->var = NULL;
/* Read the active file into a flip_sink. */
flip->case_cnt = 0;
- temp_trns = temporary = 0;
- vfm_sink = flip_sink_create (flip);
- if (vfm_sink == NULL)
+ proc_make_temporary_transformations_permanent ();
+ sink = flip_sink_create (flip);
+ if (sink == NULL)
goto error;
+ proc_set_sink (sink);
flip->new_names_tail = NULL;
ok = procedure (NULL, NULL);
flip->case_size = dict_get_case_size (default_dict);
/* Set up flipped data for reading. */
- vfm_source = flip_source_create (flip);
+ proc_set_source (flip_source_create (flip));
return ok ? lex_end_of_command () : CMD_CASCADING_FAILURE;
case_idx += read_cases;
}
- pool_fclose (flip->pool, input_file);
+ if (pool_fclose (flip->pool, input_file) == EOF)
+ {
+ msg (SE, _("Error closing FLIP source file: %s."), strerror (errno));
+ return false;
+ }
pool_unregister (flip->pool, input_buf);
free (input_buf);
else if (feof (flip->file))
msg (SE, _("Unexpected end of file reading FLIP temporary file."));
else
- abort ();
+ NOT_REACHED ();
ok = false;
break;
}