X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fany-writer.c;h=5c3c0aee0f9f22fa91ef2593ae9dc7bf44f1fb34;hb=09f985912144ac86ec48edcce42da390ce2b85b9;hp=93d2817019c2c0afd1bdc0fb3d78b6babc542f7c;hpb=dcf9b154cbcaa35c3d8459a201b77eec8bcb30bd;p=pspp-builds.git diff --git a/src/data/any-writer.c b/src/data/any-writer.c index 93d28170..5c3c0aee 100644 --- a/src/data/any-writer.c +++ b/src/data/any-writer.c @@ -24,12 +24,12 @@ #include #include #include -#include "message.h" +#include #include "file-handle-def.h" -#include "filename.h" +#include "file-name.h" #include "por-file-writer.h" #include "sys-file-writer.h" -#include "str.h" +#include #include "scratch-writer.h" #include "xalloc.h" @@ -62,7 +62,7 @@ any_writer_open (struct file_handle *handle, struct dictionary *dict) struct any_writer *writer; char *extension; - extension = fn_extension (fh_get_filename (handle)); + extension = fn_extension (fh_get_file_name (handle)); str_lowercase (extension); if (!strcmp (extension, ".por")) @@ -189,21 +189,29 @@ any_writer_error (const struct any_writer *writer) bool any_writer_close (struct any_writer *writer) { + bool ok; + if (writer == NULL) return true; switch (writer->type) { case SYSTEM_FILE: - return sfm_close_writer (writer->private); + ok = sfm_close_writer (writer->private); + break; case PORTABLE_FILE: - return pfm_close_writer (writer->private); + ok = pfm_close_writer (writer->private); + break; case SCRATCH_FILE: - return scratch_writer_close (writer->private); - + ok = scratch_writer_close (writer->private); + break; + default: abort (); } + + free (writer); + return ok; }