From: Bud Davis Date: Sun, 10 Apr 2005 03:43:09 +0000 (+0000) Subject: re PR libfortran/19872 ([4.0 only] closed and re-opened file not overwriten) X-Git-Tag: misc/cutover-cvs2svn~4201 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=48248fa77131fdcfa4d0f153b5ed2820d9befd4a;p=thirdparty%2Fgcc.git re PR libfortran/19872 ([4.0 only] closed and re-opened file not overwriten) PR fortran/19872 * io/transfer.c (data_transfer_init): truncate an existing file on the first write. Co-Authored-By: Steven G. Kargl From-SVN: r97937 --- diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index ba0257d69b68..46fc3b3dedf8 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,10 @@ +2005-04-09 Bud Davis + Steven G. Kargl + + PR fortran/19872 + * io/transfer.c (data_transfer_init): truncate an existing + file on the first write. + 2005-04-09 Thomas Koenig PR libfortran/19106 diff --git a/libgfortran/io/transfer.c b/libgfortran/io/transfer.c index 4d4832395d95..f86a85272458 100644 --- a/libgfortran/io/transfer.c +++ b/libgfortran/io/transfer.c @@ -1103,6 +1103,13 @@ data_transfer_init (int read_flag) generate_error (ERROR_OS, NULL); } + /* Overwriting an existing sequential file ? + it is always safe to truncate the file on the first write */ + if (g.mode == WRITING + && current_unit->flags.access == ACCESS_SEQUENTIAL + && current_unit->current_record == 0) + struncate(current_unit->s); + current_unit->mode = g.mode; /* Set the initial value of flags. */