diff options
author | Ulrich Drepper <drepper@redhat.com> | 1996-11-28 04:16:09 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1996-11-28 04:16:09 +0000 |
commit | c66452515d7b4ebf6b0633735397db9a392a839e (patch) | |
tree | 7cf4dc82d4d675e61c61cf696f7d1007d1c467aa /libio | |
parent | 8a52392237c44cbbd1ffc62b164230e1159dfb76 (diff) | |
download | glibc-c66452515d7b4ebf6b0633735397db9a392a839e.tar.gz glibc-c66452515d7b4ebf6b0633735397db9a392a839e.tar.xz glibc-c66452515d7b4ebf6b0633735397db9a392a839e.zip |
update from main archive 961127 cvs/libc-961128
Thu Nov 28 03:11:11 1996 Ulrich Drepper <drepper@cygnus.com> * libio/fileops.c: Update from latest libg++. * sysdeps/unix/sysv/linux/init-first.c: Reformat copyright. * sysdeps/stub/libc-lock.h: Add __libc_lock_init_recursive. * libio/genops.c (_IO_init): Use __libc_lock_init_recursive instead of __libc_lock_init for streams. Reported by a sun <asun@zoology.washington.edu>. * sysdepsunix/sysv/linux/i386/brk.c: Reformat copyright. * sysdeps/generic/errno-loc.c: New file. Generic definition of __errno_location function. * sysdeps/unix/sysv/linux/i386/sysdep.S: Remove definition of __errno_location. * sysdeps/unix/sysv/linux/m68k/sysdep.S: Likewise. * sysdeps/unix/sysv/linux/Makefile [$(subdir)=csu]: Add errno-loc to sysdep-routines. * sysdeps/unix/sysv/linux/configure: Add test for linuxthreads and crypt add-on and warn if not available. Wed Nov 27 23:09:37 1996 Ulrich Drepper <drepper@cygnus.com> * po/ko.po: Update from Bang Jun-Young <bangjy@nownuri.nowcom.co.kr>. * sysdeps/unix/sysv/linux/syscalls.list: Remove _llseek. * sysdeps/unix/sysv/linux/Makefile [$(subdir)=misc] (routines): Add llseek. * sysdeps/unix/sysv/linux/llseek.c: New file. Uses syscall. * sysdeps/unix/sysv/linux/i386/syscalls.list: Add __sys_llseek. * sysdeps/unix/sysv/linux/m68k/syscalls.list: Add __sys_llseek. Reported by HJ Lu <hjl@gnu.ai.mit.edu>. * sysdeps/unix/sysv/linux/alpha/syscalls.list: Add llseek. * sysdeps/unix/sysv/linux/alpha/llseek.S: Remove. Generic syscall is enough. Patch by Richard Henderson <rth@tamu.edu>. * sysdeps/unix/sysv/linux/alpha/sys/io.h: Add prototypes for pciconfig_read and pciconfig_write. * sysdeps/unix/sysv/linux/alpha/syscalls.list: Add new syscalls pciconfig_read and pciconfig_write. * login/getutent_r.c: Fix several bugs in last change.
Diffstat (limited to 'libio')
-rw-r--r-- | libio/fileops.c | 10 | ||||
-rw-r--r-- | libio/genops.c | 2 |
2 files changed, 10 insertions, 2 deletions
diff --git a/libio/fileops.c b/libio/fileops.c index b4bd5ce7cd..1851d9a1fa 100644 --- a/libio/fileops.c +++ b/libio/fileops.c @@ -308,7 +308,15 @@ DEFUN(_IO_file_overflow, (f, ch), _IO_doallocbuf(f); _IO_setg (f, f->_IO_buf_base, f->_IO_buf_base, f->_IO_buf_base); } - /* Otherwise must be currently reading. */ + /* Otherwise must be currently reading. + If _IO_read_ptr (and hence also _IO_read_end) is at the buffer end, + logically slide the buffer forwards one block (by setting the + read pointers to all point at the beginning of the block). This + makes room for subsequent output. + Otherwise, set the read pointers to _IO_read_end (leaving that + alone, so it can continue to correspond to the external position). */ + if (f->_IO_read_ptr == f->_IO_buf_end) + f->_IO_read_end = f->_IO_read_ptr = f->_IO_buf_base; f->_IO_write_ptr = f->_IO_read_ptr; f->_IO_write_base = f->_IO_write_ptr; f->_IO_write_end = f->_IO_buf_end; diff --git a/libio/genops.c b/libio/genops.c index bd741ec66e..fc4c61d9a4 100644 --- a/libio/genops.c +++ b/libio/genops.c @@ -466,7 +466,7 @@ DEFUN(_IO_init, (fp, flags), fp->_markers = NULL; fp->_cur_column = 0; #ifdef _IO_MTSAFE_IO - __libc_lock_init (*fp->_lock); + __libc_lock_init_recursive (*fp->_lock); #endif } |