X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Flanguage%2Fstats%2Fflip.c;h=0e9b56c5c87ecf7962db9cacd7083d9c29c8f2b8;hb=18f6e8958244f938e9e9a03a4230cacf0d22a470;hp=f816a0f5479ca4c8884986bf26ace247b96372ff;hpb=dcf9b154cbcaa35c3d8459a201b77eec8bcb30bd;p=pspp diff --git a/src/language/stats/flip.c b/src/language/stats/flip.c index f816a0f547..0e9b56c5c8 100644 --- a/src/language/stats/flip.c +++ b/src/language/stats/flip.c @@ -18,31 +18,37 @@ 02110-1301, USA. */ #include "config.h" -#include "message.h" + #include #include #include #include #include -#include "array.h" -#include "alloc.h" -#include "case.h" -#include "command.h" -#include "dictionary.h" -#include "message.h" -#include "lexer.h" -#include "misc.h" -#include "pool.h" -#include "settings.h" -#include "str.h" -#include "value.h" -#include "variable.h" -#include "procedure.h" - #ifdef HAVE_SYS_TYPES_H #include #endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "intprops.h" + #include "gettext.h" #define _(msgid) gettext (msgid) @@ -86,14 +92,12 @@ int cmd_flip (void) { struct flip_pgm *flip; + struct case_sink *sink; bool ok; - if (temporary != 0) - { - msg (SM, _("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; @@ -145,10 +149,11 @@ cmd_flip (void) /* 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); @@ -169,7 +174,7 @@ cmd_flip (void) 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; @@ -330,12 +335,8 @@ flip_sink_write (struct case_sink *sink, const struct ccase *c) strcpy (v->name, "VNEGINF"); else if (f > INT_MAX) strcpy (v->name, "VPOSINF"); - else - { - char name[INT_DIGITS + 2]; - sprintf (name, "V%d", (int) f); - str_copy_trunc (v->name, sizeof v->name, name); - } + else + snprintf (v->name, sizeof v->name, "V%d", (int) f); } else { @@ -474,7 +475,11 @@ flip_file (struct flip_pgm *flip) 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);