File tree Expand file tree Collapse file tree 1 file changed +10
-8
lines changed
Expand file tree Collapse file tree 1 file changed +10
-8
lines changed Original file line number Diff line number Diff line change @@ -1897,18 +1897,20 @@ static PyObject *
18971897_bufferedwriter_flush_unlocked (buffered * self )
18981898{
18991899 Py_ssize_t written = 0 ;
1900- Py_off_t n , rewind ;
1900+ Py_off_t n ;
19011901
19021902 if (!VALID_WRITE_BUFFER (self ) || self -> write_pos == self -> write_end )
19031903 goto end ;
1904- /* First, rewind */
1905- rewind = RAW_OFFSET (self ) + (self -> pos - self -> write_pos );
1906- if (rewind != 0 ) {
1907- n = _buffered_raw_seek (self , - rewind , 1 );
1908- if (n < 0 ) {
1909- goto error ;
1904+ /* First, rewind unless raw file is in append mode */
1905+ if (!self -> appending ) {
1906+ Py_off_t rewind = RAW_OFFSET (self ) + (self -> pos - self -> write_pos );
1907+ if (rewind != 0 ) {
1908+ n = _buffered_raw_seek (self , - rewind , 1 );
1909+ if (n < 0 ) {
1910+ goto error ;
1911+ }
1912+ self -> raw_pos -= rewind ;
19101913 }
1911- self -> raw_pos -= rewind ;
19121914 }
19131915 while (self -> write_pos < self -> write_end ) {
19141916 n = _bufferedwriter_raw_write (self ,
You can’t perform that action at this time.
0 commit comments