X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fany-writer.c;h=5c3c0aee0f9f22fa91ef2593ae9dc7bf44f1fb34;hb=f109d8e9e1530811428d5fa5223c7be7a631baa8;hp=c5d741a28a800d92efeed76d151492ebbfc7d321;hpb=a19b858e0ac3c69e4a28c0ca6d8674427268a863;p=pspp diff --git a/src/data/any-writer.c b/src/data/any-writer.c index c5d741a28a..5c3c0aee0f 100644 --- a/src/data/any-writer.c +++ b/src/data/any-writer.c @@ -26,7 +26,7 @@ #include #include #include "file-handle-def.h" -#include "filename.h" +#include "file-name.h" #include "por-file-writer.h" #include "sys-file-writer.h" #include @@ -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; }