X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fstats%2Fflip.c;h=0b452cb721942a5bcf33f13f5c248d3d0293a88d;hb=92f198d13c9214c0d75b936f0ea0dc2684ea914b;hp=bc5399a7b3ca500165f1f2585693a21175cbba5c;hpb=2048ef1bcb81fa766ccff3bb1cf30a886316983c;p=pspp diff --git a/src/language/stats/flip.c b/src/language/stats/flip.c index bc5399a7b3..0b452cb721 100644 --- a/src/language/stats/flip.c +++ b/src/language/stats/flip.c @@ -18,32 +18,38 @@ 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 "intprops.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 + +#include "intprops.h" + #include "gettext.h" #define _(msgid) gettext (msgid) @@ -87,14 +93,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; @@ -146,10 +150,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); @@ -170,7 +175,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; @@ -331,12 +336,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_STRLEN_BOUND (int) + 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 { @@ -475,7 +476,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); @@ -534,7 +539,7 @@ flip_source_read (struct case_source *source, else if (feof (flip->file)) msg (SE, _("Unexpected end of file reading FLIP temporary file.")); else - abort (); + NOT_REACHED (); ok = false; break; }