OSDN Git Service

* io/rewind.c (st_rewind): Flush the stream when resetting the mode
authordje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 26 Apr 2005 19:27:11 +0000 (19:27 +0000)
committerdje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 26 Apr 2005 19:27:11 +0000 (19:27 +0000)
        from WRITING to READING.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98788 138bc75d-0d04-0410-961f-82ee72b054a4

libgfortran/ChangeLog
libgfortran/io/rewind.c

index 027ad27..52f6c9f 100644 (file)
@@ -1,5 +1,10 @@
-2005-04-18 Paul Thomas <pault@gcc.gnu.org>
-          Jerry DeLisle <jvdelisle@verizon.net> 
+2005-04-26  David Edelsohn  <edelsohn@gnu.org>
+
+       * io/rewind.c (st_rewind): Flush the stream when resetting the mode
+       from WRITING to READING.
+
+2005-04-22  Paul Thomas  <pault@gcc.gnu.org>
+           Jerry DeLisle  <jvdelisle@verizon.net> 
 
        * io/write.c (nml_write_obj): Provide 1 more byte for ext_name.
        * io/list_read.c (nml_get_obj_data): Put extra brackets in get_mem
index f0b0e90..48d57ba 100644 (file)
@@ -54,9 +54,13 @@ st_rewind (void)
          /* If we have been writing to the file, the last written record
             is the last record in the file, so truncate the file now.
             Reset to read mode so two consecutive rewind statements
-            don't delete the file contents.  */
-          if (u->mode==WRITING)
-            struncate(u->s);
+            don't delete the file contents.  Flush buffer when switching
+            mode.  */
+          if (u->mode == WRITING)
+           {
+             flush (u->s);
+             struncate (u->s);
+           }
          u->mode = READING;
          u->last_record = 0;
          if (sseek (u->s, 0) == FAILURE)