X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fmake-file.c;h=a1a541a5d0fb81c6c8938050ce6c3339f1ab31d5;hb=ed109bf498216cef15a3cbf180827dc8b20eff0b;hp=62dfb71d3dcf366ddd37a515ab10a0dec54a48fa;hpb=21d2449f801c93a32b758a2242f15983ca9f4fe4;p=pspp diff --git a/src/data/make-file.c b/src/data/make-file.c index 62dfb71d3d..a1a541a5d0 100644 --- a/src/data/make-file.c +++ b/src/data/make-file.c @@ -19,7 +19,6 @@ #include "data/make-file.h" #include "libpspp/i18n.h" -#include #include #include #include @@ -266,7 +265,10 @@ replace_file_start (const struct file_handle *fh, const char *mode, rf->tmp_name = convert_to_filename_encoding (rf->tmp_name_verbatim, strlen (rf->tmp_name_verbatim), fh_get_file_name_encoding (fh)); /* Create file by that name. */ - fd = Topen (rf->tmp_name, O_WRONLY | O_CREAT | O_EXCL | O_BINARY, permissions); + bool binary = strchr (mode, 'b') != NULL; + fd = Topen (rf->tmp_name, + O_WRONLY | O_CREAT | O_EXCL | (binary ? O_BINARY : O_TEXT), + permissions); if (fd >= 0) break; if (errno != EEXIST)