w = xmalloc (sizeof *w);
w->fh = fh_ref (fh);
w->lock = lock;
- w->rf = replace_file_start (w->fh, "wb", 0666,
- &w->file, NULL);
+ w->rf = replace_file_start (w->fh, true, 0666, &w->file);
w->encoding = xstrdup (encoding);
w->line_ends = fh_get_line_ends (fh);
w->unit = ei.unit;
return w;
}
-/* Returns false if an I/O error occurred on WRITER, true otherwise. */
+/* Returns true if an I/O error occurred on WRITER, false otherwise. */
bool
dfm_write_error (const struct dfm_writer *writer)
{
if (w->file != NULL)
{
const char *file_name = fh_get_file_name (w->fh);
- ok = !dfm_write_error (w) && !fn_close (file_name, w->file);
+ ok = !dfm_write_error (w) && !fn_close (w->fh, w->file);
if (!ok)
msg (ME, _("I/O error occurred writing data file `%s'."), file_name);