diff options
author | Ulrich Drepper <drepper@redhat.com> | 2002-02-26 01:45:59 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2002-02-26 01:45:59 +0000 |
commit | 77fe0b9cd86ccba7349921082d886cbca613404c (patch) | |
tree | ef0d25d9dadd97d317a1c4e044385ccdde34bcc3 /libio/ioseekoff.c | |
parent | d417e0ffc4d2707b0d684106f17554395e8be220 (diff) | |
download | glibc-77fe0b9cd86ccba7349921082d886cbca613404c.zip glibc-77fe0b9cd86ccba7349921082d886cbca613404c.tar.gz glibc-77fe0b9cd86ccba7349921082d886cbca613404c.tar.bz2 |
Update.
2002-02-25 Ulrich Drepper <drepper@redhat.com>
* assert/assert-perr.c: Use INTUSE to reference functions and variables
inside libc itself. Ise INTDEF and INTDEF2 to define appropriate
aliases. Add prototypes for the new aliases.
* assert/assert.c: Likewise.
* include/libc-symbols.h: Likewise.
* include/stdio.h: Likewise.
* include/netinet/in.h: Likewise.
* include/rpc/auth.h: Likewise.
* include/rpc/auth_unix.h: Likewise.
* include/rpc/key_prot.h: Likewise.
* include/rpc/pmap_prot.h: Likewise.
* include/rpc/pmap_rmt.h: Likewise.
* include/rpc/rpc_msg.h: Likewise.
* include/rpc/xdr.h: Likewise.
* inet/gethstbyad_r.c: Likewise.
* inet/gethstbynm2_r.c: Likewise.
* inet/gethstbynm_r.c: Likewise.
* inet/gethstent_r.c: Likewise.
* inet/in6_addr.c: Likewise.
* libio/__fpurge.c: Likewise.
* libio/filedoalloc.c: Likewise.
* libio/fileops.c: Likewise.
* libio/ftello.c: Likewise.
* libio/ftello64.c: Likewise.
* libio/genops.c: Likewise.
* libio/iofclose.c: Likewise.
* libio/iofdopen.c: Likewise.
* libio/iofflush.c: Likewise.
* libio/iofflush_u.c: Likewise.
* libio/iofgetpos.c: Likewise.
* libio/iofgetpos64.c: Likewise.
* libio/iofgets.c: Likewise.
* libio/iofgets_u.c: Likewise.
* libio/iofopen.c: Likewise.
* libio/iofopncook.c: Likewise.
* libio/iofputs.c: Likewise.
* libio/iofread.c: Likewise.
* libio/iofread_u.c: Likewise.
* libio/iofsetpos.c: Likewise.
* libio/iofsetpos64.c: Likewise.
* libio/ioftell.c: Likewise.
* libio/iofwrite.c: Likewise.
* libio/iogetline.c: Likewise.
* libio/iogets.c: Likewise.
* libio/iogetwline.c: Likewise.
* libio/iolibio.h: Likewise.
* libio/iopadn.c: Likewise.
* libio/iopopen.c: Likewise.
* libio/ioseekoff.c: Likewise.
* libio/ioseekpos.c: Likewise.
* libio/iosetbuffer.c: Likewise.
* libio/iosetvbuf.c: Likewise.
* libio/ioungetc.c: Likewise.
* libio/ioungetwc.c: Likewise.
* libio/iovdprintf.c: Likewise.
* libio/iovsprintf.c: Likewise.
* libio/iovsscanf.c: Likewise.
* libio/libioP.h: Likewise.
* libio/memstream.c: Likewise.
* libio/obprintf.c: Likewise.
* libio/oldfileops.c: Likewise.
* libio/oldiofclose.c: Likewise.
* libio/oldiofdopen.c: Likewise.
* libio/oldiofgetpos.c: Likewise.
* libio/oldiofgetpos64.c: Likewise.
* libio/oldiofopen.c: Likewise.
* libio/oldiofsetpos.c: Likewise.
* libio/oldiofsetpos64.c: Likewise.
* libio/oldiopopen.c: Likewise.
* libio/oldstdfiles.c: Likewise.
* libio/putc.c: Likewise.
* libio/setbuf.c: Likewise.
* libio/setlinebuf.c: Likewise.
* libio/stdfiles.c: Likewise.
* libio/stdio.c: Likewise.
* libio/strops.c: Likewise.
* libio/vasprintf.c: Likewise.
* libio/vscanf.c: Likewise.
* libio/vsnprintf.c: Likewise.
* libio/vswprintf.c: Likewise.
* libio/wfiledoalloc.c: Likewise.
* libio/wfileops.c: Likewise.
* libio/wgenops.c: Likewise.
* libio/wstrops.c: Likewise.
* malloc/mtrace.c: Likewise.
* misc/error.c: Likewise.
* misc/syslog.c: Likewise.
* nss/getXXbyYY_r.c: Likewise.
* nss/getXXent_r.c: Likewise.
* nss/hosts-lookup.c: Likewise.
* stdio-common/getw.c
* stdio-common/printf-prs.c: Likewise.
* stdio-common/printf_fp.c: Likewise.
* stdio-common/printf_size.c: Likewise.
* stdio-common/putw.c: Likewise.
* stdio-common/scanf.c: Likewise.
* stdio-common/sprintf.c: Likewise.
* stdio-common/tmpfile64.c: Likewise.
* stdio-common/vfprintf.c: Likewise.
* stdio-common/vfscanf.c: Likewise.
* stdlib/strfmon.c: Likewise.
* sunrpc/auth_des.c: Likewise.
* sunrpc/auth_none.c: Likewise.
* sunrpc/auth_unix.c: Likewise.
* sunrpc/authdes_prot.c: Likewise.
* sunrpc/authuxprot.c: Likewise.
* sunrpc/clnt_perr.c: Likewise.
* sunrpc/clnt_raw.c: Likewise.
* sunrpc/clnt_tcp.c: Likewise.
* sunrpc/clnt_udp.c: Likewise.
* sunrpc/clnt_unix.c: Likewise.
* sunrpc/key_call.c: Likewise.
* sunrpc/key_prot.c: Likewise.
* sunrpc/openchild.c: Likewise.
* sunrpc/pm_getmaps.c: Likewise.
* sunrpc/pm_getport.c: Likewise.
* sunrpc/pmap_clnt.c: Likewise.
* sunrpc/pmap_prot.c: Likewise.
* sunrpc/pmap_prot2.c: Likewise.
* sunrpc/pmap_rmt.c: Likewise.
* sunrpc/rpc_cmsg.c: Likewise.
* sunrpc/rpc_prot.c: Likewise.
* sunrpc/svc_authux.c: Likewise.
* sunrpc/svc_raw.c: Likewise.
* sunrpc/svc_simple.c: Likewise.
* sunrpc/svc_tcp.c: Likewise.
* sunrpc/svc_udp.c: Likewise.
* sunrpc/svc_unix.c: Likewise.
* sunrpc/xdr.c: Likewise.
* sunrpc/xdr_array.c: Likewise.
* sunrpc/xdr_mem.c: Likewise.
* sunrpc/xdr_rec.c: Likewise.
* sunrpc/xdr_ref.c: Likewise.
* sunrpc/xdr_stdio.c: Likewise.
* sysdeps/generic/_strerror.c: Likewise.
* sysdeps/generic/printf_fphex.c: Likewise.
* sysdeps/generic/tmpfile.c: Likewise.
* sysdeps/gnu/errlist.awk: Likewise.
* sysdeps/gnu/errlist.c: Likewise.
* libio/Makefile (routines): Remove iosprint.
* libio/iosprintf.c: Removed
Diffstat (limited to 'libio/ioseekoff.c')
-rw-r--r-- | libio/ioseekoff.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/libio/ioseekoff.c b/libio/ioseekoff.c index 2111bec..eff6d38 100644 --- a/libio/ioseekoff.c +++ b/libio/ioseekoff.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1997, 1998, 1999, 2001 Free Software Foundation, Inc. +/* Copyright (C) 1993,1997,1998,1999,2001,2002 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -56,7 +56,8 @@ _IO_seekoff (fp, offset, dir, mode) _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp); _IO_flockfile (fp); - if (mode != 0 && _IO_have_backup (fp)) + if (mode != 0 && ((_IO_fwide (fp, 0) < 0 && _IO_have_backup (fp)) + || (_IO_fwide (fp, 0) > 0 && _IO_have_wbackup (fp)))) { if (dir == _IO_seek_cur && _IO_in_backup (fp)) { @@ -65,7 +66,10 @@ _IO_seekoff (fp, offset, dir, mode) else abort (); } - _IO_free_backup_area (fp); + if (_IO_fwide (fp, 0) < 0) + INTUSE(_IO_free_backup_area) (fp); + else + INTUSE(_IO_free_wbackup_area) (fp); } retval = _IO_SEEKOFF (fp, offset, dir, mode); @@ -74,3 +78,4 @@ _IO_seekoff (fp, offset, dir, mode) _IO_cleanup_region_end (0); return retval; } +INTDEF(_IO_seekoff) |