about summary refs log tree commit diff
path: root/libio/oldfileops.c
diff options
context:
space:
mode:
Diffstat (limited to 'libio/oldfileops.c')
-rw-r--r--libio/oldfileops.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/libio/oldfileops.c b/libio/oldfileops.c
index be99a2500c..3e3daa8ae1 100644
--- a/libio/oldfileops.c
+++ b/libio/oldfileops.c
@@ -155,7 +155,8 @@ _IO_old_file_close_it (fp)
 
   INTUSE(_IO_unsave_markers) (fp);
 
-  close_status = _IO_SYSCLOSE (fp);
+  close_status = ((fp->_flags2 & _IO_FLAGS2_NOCLOSE) == 0
+		  ? _IO_SYSCLOSE (fp) : 0);
 
   /* Free buffer. */
   INTUSE(_IO_setb) (fp, NULL, NULL, 0);
@@ -676,7 +677,7 @@ _IO_old_file_write (f, data, n)
 	{
 	  f->_flags |= _IO_ERR_SEEN;
 	  break;
-        }
+	}
       to_do -= count;
       data = (void *) ((char *) data + count);
     }
@@ -763,12 +764,12 @@ _IO_old_file_xsputn (f, data, n)
       do_write = to_do - (block_size >= 128 ? to_do % block_size : 0);
 
       if (do_write)
-        {
+	{
 	  count = old_do_write (f, s, do_write);
 	  to_do -= count;
 	  if (count < do_write)
 	    return n - to_do;
-        }
+	}
 
       /* Now write out the remainder.  Normally, this will fit in the
 	 buffer, but it's somewhat messier for line-buffered files,