glibc/libio/oldiofopen.c

71 lines
2.2 KiB
C
Raw Normal View History

/* Copyright (C) 1993, 1997, 1999, 2000 Free Software Foundation, Inc.
Update. 1997-10-13 03:14 Ulrich Drepper <drepper@cygnus.com> * libc.map: Move _IO_fopen, fopen, _IO_stdin_, _IO_stdout_, _IO_stderr_, _IO_list_all, and freopen to GLIBC_2.1 version. * include/libc-symbol.h: Define define_symbol. * libio/Makefile [$(versioning)=yes] (routines): Add oldiofopen and oldfreopen. [$(versioning)=yes] (aux): Add oldfileops and oldstdfiles. * libio/fileops.c: Use _IO_FILE_complete when accessing _offset field. * libio/freopen.c: Use versioning. * libio/iofopen.c: Likewise. Generate object of type _IO_FILE_complete. * libio/iofopen64.c: Generate object of type _IO_FILE_complete. * libio/iolibio.h: Declare _IO_{old,new}_fopen and __{old,new}_freopen. Define _IO_old_freopen. * libio/libio.h: Remove _offset field from _IO_FILE. Rename _unused2 field to _old_offset. Declare _IO_std*_ streams as of type _IO_FILE_complete. * libio/libioP.h: Define _IO_FILE_complete. Declare callbacks for old fileops implementation. * libio/stdfile.c: Define standard stream of type _IO_FILE_complete. * libio/stdio.c: Correctly address FILE part of standard streams. * libio/oldfileops.c: New file. * libio/oldfreopen.c: New file. * libio/oldiofopen.c: New file. * libio/oldstdfiles.c: New file. * sysdeps/i386/fpu/bits/mathinline.h: Define fma optimization. * sysdeps/libm-i387/e_scalb.S: Make sure code gets into .text section. * sysdeps/libm-i387/e_scalbl.S: Likewise. * sysdeps/libm-i387/s_fma.S: Fix typo. * sysdeps/libm-i387/s_fmaf.S: Likewise. * sysdeps/libm-i387/s_fmal.S: Likewise. 1997-10-12 20:14 Zack Weinberg <zack@rabi.phys.columbia.edu> * sysdeps/stub/getsid.c: Add a stub_warning. * sysdeps/stub/mmap.c: Likewise. * sysdeps/stub/munmap.c: Likewise. * sysdeps/libm-ieee754/s_fma.c: New file. * sysdeps/libm-ieee754/s_fmaf.c: New file. * sysdeps/libm-ieee754/s_fmal.c: New file. * sysdeps/libm-ieee754/s_llrintf.c: New file. * sysdeps/libm-ieee754/s_llrintl.c: New file. * sysdeps/libm-ieee754/s_lrintf.c: New file. * sysdeps/libm-ieee754/s_lrintl.c: New file.
1997-10-13 09:27:24 +08:00
This file is part of the GNU IO Library.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2, or (at
your option) any later version.
This library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this library; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA.
As a special exception, if you link this library with files
compiled with a GNU compiler to produce an executable, this does
not cause the resulting executable to be covered by the GNU General
Public License. This exception does not however invalidate any
other reasons why the executable file might be covered by the GNU
General Public License. */
#include <shlib-compat.h>
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
Update. 1997-12-14 21:33 Ulrich Drepper <drepper@cygnus.com> * version.h (VERSION): Bump to 2.0.91. * db2/makedb.c (process_input): Fix typo in message. * sunrpc/rpcinfo.c (pmapdump): Unify messages. * elf/dynamic-link.h: Pretty print. * elf/rtld.c: Allow multiple preloading of a shared object. * include/limits.h: Prevent multiple inclusion. * malloc/Makefile (headers): Add mcheck.h. (distribute): Remove it here. * malloc/mcheck.h: Pretty print. * malloc/mtrace.c (mallenv): Make `const'. * malloc/mtrace.pl: Don't print table head for memory leaks if there are none. * manual/memory.texi: Update descriptor of malloc hooks. * posix/Makefile (routines): Add waitid. * posix/sys/types.h [__USE_SVID || __USE_POSIX]: Define id_t based on __id_t. * posix/sys/wait.h: Define idtype_t type. Add prototype for waitid. * signal/signal.h: Move definition of sigval_t to <bits/siginfo.h>. * sysdeps/generic/waitid.c: Stub for waitid. * sysdeps/generic/bits/siginfo.h: Define sigval_t. Arrange to work the __need_siginfo_t defined. * sysdeps/unix/sysv/linux/bits/siginfo: Likewise. * sysdeps/generic/bits/types.h: Define __id_t. Correct definition of __FDMASK. * sysdeps/unix/sysv/linux/alpha/bits/types.h: Likewise. * sysdeps/unix/sysv/linux/bits/types.h: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Likewise. * sysdeps/posix/waitid.c: New file. Provided by Zack Weinberg. * rt/aio_misc.c: Rename __aio_free_req to __aio_free_request. * sysdeps/alpha/dl-machine.h (ELF_MACHINE_RUNTIME_TRAMPOLINE): Add missing parameters. * sysdeps/generic/dl-sysdep.c: Don't call __libc_init_secure. * sysdeps/generic/enbl-secure.c: Don't define __libc_uid. * sysdeps/unix/sysv/linux/init-first.c: Define __libc_uid. * sysdeps/unix/sysv/linux/sigqueue.c: Make sure __libc_uid is initialized. * sysdeps/i386/dl-machine.h: Little cleanup. * sysdeps/i386/fpu/bits/mathinline.h: Use __signbit* inline functions. (__finite): Mark function as const. Add inline code for __ieee754_atan2. * sysdeps/libm-ieee754/s_cacoshf.c: Add alternate implementation (but don't use it now). * sysdeps/libm-ieee754/s_catan.c: Use __ieee754_atan2 instead of __atan. * sysdeps/libm-ieee754/s_catanf.c: Likewise. * sysdeps/libm-ieee754/s_catanl.c: Likewise. * sysdeps/libm-ieee754/s_catanh.c: Likewise. Correct sign of real part. * sysdeps/libm-ieee754/s_catanhf.c: Likewise. * sysdeps/libm-ieee754/s_catanhl.c: Likewise. * sysdeps/libm-ieee754/s_clog10.c: Use factor to correct __ieee754_atan2 to base 10. * sysdeps/libm-ieee754/s_clog10f.c: Likewise. * sysdeps/libm-ieee754/s_clog10l.c: Likewise. * sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h: Define as old_kernel_sigaction. * sysdeps/unix/sysv/linux/net/if_slip.h: Pretty print. * wctype/Makefile (routines): Add wctype_l. * wctype/wctype.h: Add declaration of __wctype_l. * wctype/wctype_l.c: New file. 1997-12-10 00:38 Ulrich Drepper <drepper@cygnus.com> * locale/C-ctype.c: Correct data for isw* functions. * locale/programs/ld-ctype.c: Write 32bit char classes in correct byte order. * wctype/test_wctype.c: Add test for isw* functions. * wctype/wctype.c: Return value with expected byte order. * sysdeps/generic/_G_config.h: Define _G_HAVE_IO_FILE_OPEN. * sysdeps/unix/sysv/linux/_G_config.h: Likewise.
1997-12-15 06:24:57 +08:00
#define _IO_USE_OLD_IO_FILE
Update. 1997-10-13 03:14 Ulrich Drepper <drepper@cygnus.com> * libc.map: Move _IO_fopen, fopen, _IO_stdin_, _IO_stdout_, _IO_stderr_, _IO_list_all, and freopen to GLIBC_2.1 version. * include/libc-symbol.h: Define define_symbol. * libio/Makefile [$(versioning)=yes] (routines): Add oldiofopen and oldfreopen. [$(versioning)=yes] (aux): Add oldfileops and oldstdfiles. * libio/fileops.c: Use _IO_FILE_complete when accessing _offset field. * libio/freopen.c: Use versioning. * libio/iofopen.c: Likewise. Generate object of type _IO_FILE_complete. * libio/iofopen64.c: Generate object of type _IO_FILE_complete. * libio/iolibio.h: Declare _IO_{old,new}_fopen and __{old,new}_freopen. Define _IO_old_freopen. * libio/libio.h: Remove _offset field from _IO_FILE. Rename _unused2 field to _old_offset. Declare _IO_std*_ streams as of type _IO_FILE_complete. * libio/libioP.h: Define _IO_FILE_complete. Declare callbacks for old fileops implementation. * libio/stdfile.c: Define standard stream of type _IO_FILE_complete. * libio/stdio.c: Correctly address FILE part of standard streams. * libio/oldfileops.c: New file. * libio/oldfreopen.c: New file. * libio/oldiofopen.c: New file. * libio/oldstdfiles.c: New file. * sysdeps/i386/fpu/bits/mathinline.h: Define fma optimization. * sysdeps/libm-i387/e_scalb.S: Make sure code gets into .text section. * sysdeps/libm-i387/e_scalbl.S: Likewise. * sysdeps/libm-i387/s_fma.S: Fix typo. * sysdeps/libm-i387/s_fmaf.S: Likewise. * sysdeps/libm-i387/s_fmal.S: Likewise. 1997-10-12 20:14 Zack Weinberg <zack@rabi.phys.columbia.edu> * sysdeps/stub/getsid.c: Add a stub_warning. * sysdeps/stub/mmap.c: Likewise. * sysdeps/stub/munmap.c: Likewise. * sysdeps/libm-ieee754/s_fma.c: New file. * sysdeps/libm-ieee754/s_fmaf.c: New file. * sysdeps/libm-ieee754/s_fmal.c: New file. * sysdeps/libm-ieee754/s_llrintf.c: New file. * sysdeps/libm-ieee754/s_llrintl.c: New file. * sysdeps/libm-ieee754/s_lrintf.c: New file. * sysdeps/libm-ieee754/s_lrintl.c: New file.
1997-10-13 09:27:24 +08:00
#include "libioP.h"
#ifdef __STDC__
#include <stdlib.h>
#endif
_IO_FILE *
_IO_old_fopen (filename, mode)
const char *filename;
const char *mode;
{
struct locked_FILE
{
struct _IO_FILE_plus fp;
#ifdef _IO_MTSAFE_IO
_IO_lock_t lock;
#endif
} *new_f = (struct locked_FILE *) malloc (sizeof (struct locked_FILE));
if (new_f == NULL)
return NULL;
#ifdef _IO_MTSAFE_IO
new_f->fp.file._lock = &new_f->lock;
#endif
_IO_init (&new_f->fp.file, 0);
2000-06-28 Greg McGary <greg@mcgary.org> * libio/libio.h (struct _IO_cookie_file): Move struct type defintion out. (_IO_FILE): Declare chain as (struct _IO_FILE_plus *). * libio/libioP.h (struct _IO_cookie_file): Move struct type defintion in. (_IO_JUMPS): Don't cast THIS--expect arg to be a (struct _IO_FILE_plus *). (_IO_JUMPS_FUNC): Express in terms of _IO_JUMPS, and add cast to THIS, since _IO_JUMPS no longer does it implicitly. (_IO_file_init, _IO_old_file_init, _IO_new_file_init): Declare arg type as (struct _IO_FILE_plus *). (_IO_str_init_static, _IO_str_init_readonly): Declare 1st arg as (_IO_strfile *). * libio/strops.c (_IO_str_init_static, _IO_str_init_readonly): Declare 1st arg as (_IO_strfile *). * libio/fileops.c (_IO_new_file_init): Declare arg type as (struct _IO_FILE_plus *). * libio/oldfileops.c (_IO_old_file_init): Likewise. * libio/genops.c (_IO_link_in, _IO_un_link): Likewise. (_IO_flush_all, _IO_flush_all_linebuffered, _IO_unbuffer_write): Declare iteration pointer as (struct _IO_FILE_plus *). (_IO_iter_next, _IO_iter_file): _IO_ITER is now (struct _IO_FILE_plus *). * libio/stdfiles.c (_IO_list_all): Declare as (struct _IO_FILE_plus *). * libio/oldstdfiles.c (_IO_list_all): Likewise. (_IO_check_libio): Set user-visible handles to (struct _IO_FILE_plus *). * libio/stdio.c (stdin, stdout, stderr): Set user-visible handles to (struct _IO_FILE_plus *). * libio/iofdopen.c (_IO_new_fdopen): Pass FILE handle pointer whose high bound includes vtable to all functions that will use vtable. For streambufs, pass pointer whose bounds include struct _IO_strfile. * libio/wgenops.c (_IO_wdefault_finish): Likewise. * libio/oldiofdopen.c (_IO_old_fdopen): Likewise. * libio/iofopen.c (_IO_new_fopen): Likewise. * libio/oldiofopen.c (_IO_old_fopen): Likewise. * libio/iofopen64.c (_IO_fopen64): Likewise. * libio/iopopen.c (_IO_new_popen): Likewise. * libio/oldiopopen.c (_IO_old_popen): Likewise. * libio/memstream.c (open_memstream): Likewise. * libio/iovsscanf.c (_IO_vsscanf): Likewise. * libio/iovsprintf.c (_IO_vsprintf): Likewise. * libio/iovdprintf.c (_IO_vdprintf): Likewise. * libio/iofopncook.c (_IO_cookie_init): Likewise. * libio/obprintf.c (_IO_obstack_vprintf): Likewise. * libio/vasprintf.c (_IO_vasprintf): Likewise. * libio/vsnprintf.c (_IO_vsnprintf): Likewise. * libio/stdfiles.c (_IO_stdout_, _IO_stderr_): Likewise. * libio/oldstdfiles.c (_IO_stdout_, _IO_stderr_): Likewise. * stdlib/strfmon.c (__strfmon_l): Likewise. * stdio-common/vfprintf.c (buffered_vfprintf): Likewise. (vfprintf): Qualify computed-goto targets as unbounded. 2000-06-28 Greg McGary <greg@mcgary.org> * libio/libio.h (struct _IO_cookie_file): Move struct type defintion out. (_IO_FILE): Declare chain as (struct _IO_FILE_plus *). * libio/libioP.h (struct _IO_cookie_file): Move struct type defintion in. (_IO_JUMPS): Don't cast THIS--expect arg to be a (struct _IO_FILE_plus *). (_IO_JUMPS_FUNC): Express in terms of _IO_JUMPS, and add cast to THIS, since _IO_JUMPS no longer does it implicitly. (_IO_file_init, _IO_old_file_init, _IO_new_file_init): Declare arg type as (struct _IO_FILE_plus *). (_IO_str_init_static, _IO_str_init_readonly): Declare 1st arg as (_IO_strfile *). * libio/strops.c (_IO_str_init_static, _IO_str_init_readonly): Declare 1st arg as (_IO_strfile *). * libio/fileops.c (_IO_new_file_init): Declare arg type as (struct _IO_FILE_plus *). * libio/oldfileops.c (_IO_old_file_init): Likewise. * libio/genops.c (_IO_link_in, _IO_un_link): Likewise. (_IO_flush_all, _IO_flush_all_linebuffered, _IO_unbuffer_write): Declare iteration pointer as (struct _IO_FILE_plus *). (_IO_iter_next, _IO_iter_file): _IO_ITER is now (struct _IO_FILE_plus *). * libio/stdfiles.c (_IO_list_all): Declare as (struct _IO_FILE_plus *). * libio/oldstdfiles.c (_IO_list_all): Likewise. (_IO_check_libio): Set user-visible handles to (struct _IO_FILE_plus *). * libio/stdio.c (stdin, stdout, stderr): Set user-visible handles to (struct _IO_FILE_plus *). * libio/iofdopen.c (_IO_new_fdopen): Pass FILE handle pointer whose high bound includes vtable to all functions that will use vtable. For streambufs, pass pointer whose bounds include struct _IO_strfile. * libio/wgenops.c (_IO_wdefault_finish): Likewise. * libio/oldiofdopen.c (_IO_old_fdopen): Likewise. * libio/iofopen.c (_IO_new_fopen): Likewise. * libio/oldiofopen.c (_IO_old_fopen): Likewise. * libio/iofopen64.c (_IO_fopen64): Likewise. * libio/iopopen.c (_IO_new_popen): Likewise. * libio/oldiopopen.c (_IO_old_popen): Likewise. * libio/memstream.c (open_memstream): Likewise. * libio/iovsscanf.c (_IO_vsscanf): Likewise. * libio/iovsprintf.c (_IO_vsprintf): Likewise. * libio/iovdprintf.c (_IO_vdprintf): Likewise. * libio/iofopncook.c (_IO_cookie_init): Likewise. * libio/obprintf.c (_IO_obstack_vprintf): Likewise. * libio/vasprintf.c (_IO_vasprintf): Likewise. * libio/vsnprintf.c (_IO_vsnprintf): Likewise. * libio/stdfiles.c (_IO_stdout_, _IO_stderr_): Likewise. * libio/oldstdfiles.c (_IO_stdout_, _IO_stderr_): Likewise. * stdlib/strfmon.c (__strfmon_l): Likewise. * stdio-common/vfprintf.c (buffered_vfprintf): Likewise. (vfprintf): Qualify computed-goto targets as unbounded.
2000-06-29 15:16:42 +08:00
_IO_JUMPS (&new_f->fp) = &_IO_old_file_jumps;
_IO_old_file_init (&new_f->fp);
Update. 1997-10-13 03:14 Ulrich Drepper <drepper@cygnus.com> * libc.map: Move _IO_fopen, fopen, _IO_stdin_, _IO_stdout_, _IO_stderr_, _IO_list_all, and freopen to GLIBC_2.1 version. * include/libc-symbol.h: Define define_symbol. * libio/Makefile [$(versioning)=yes] (routines): Add oldiofopen and oldfreopen. [$(versioning)=yes] (aux): Add oldfileops and oldstdfiles. * libio/fileops.c: Use _IO_FILE_complete when accessing _offset field. * libio/freopen.c: Use versioning. * libio/iofopen.c: Likewise. Generate object of type _IO_FILE_complete. * libio/iofopen64.c: Generate object of type _IO_FILE_complete. * libio/iolibio.h: Declare _IO_{old,new}_fopen and __{old,new}_freopen. Define _IO_old_freopen. * libio/libio.h: Remove _offset field from _IO_FILE. Rename _unused2 field to _old_offset. Declare _IO_std*_ streams as of type _IO_FILE_complete. * libio/libioP.h: Define _IO_FILE_complete. Declare callbacks for old fileops implementation. * libio/stdfile.c: Define standard stream of type _IO_FILE_complete. * libio/stdio.c: Correctly address FILE part of standard streams. * libio/oldfileops.c: New file. * libio/oldfreopen.c: New file. * libio/oldiofopen.c: New file. * libio/oldstdfiles.c: New file. * sysdeps/i386/fpu/bits/mathinline.h: Define fma optimization. * sysdeps/libm-i387/e_scalb.S: Make sure code gets into .text section. * sysdeps/libm-i387/e_scalbl.S: Likewise. * sysdeps/libm-i387/s_fma.S: Fix typo. * sysdeps/libm-i387/s_fmaf.S: Likewise. * sysdeps/libm-i387/s_fmal.S: Likewise. 1997-10-12 20:14 Zack Weinberg <zack@rabi.phys.columbia.edu> * sysdeps/stub/getsid.c: Add a stub_warning. * sysdeps/stub/mmap.c: Likewise. * sysdeps/stub/munmap.c: Likewise. * sysdeps/libm-ieee754/s_fma.c: New file. * sysdeps/libm-ieee754/s_fmaf.c: New file. * sysdeps/libm-ieee754/s_fmal.c: New file. * sysdeps/libm-ieee754/s_llrintf.c: New file. * sysdeps/libm-ieee754/s_llrintl.c: New file. * sysdeps/libm-ieee754/s_lrintf.c: New file. * sysdeps/libm-ieee754/s_lrintl.c: New file.
1997-10-13 09:27:24 +08:00
#if !_IO_UNIFIED_JUMPTABLES
new_f->fp.vtable = NULL;
#endif
2000-06-28 Greg McGary <greg@mcgary.org> * libio/libio.h (struct _IO_cookie_file): Move struct type defintion out. (_IO_FILE): Declare chain as (struct _IO_FILE_plus *). * libio/libioP.h (struct _IO_cookie_file): Move struct type defintion in. (_IO_JUMPS): Don't cast THIS--expect arg to be a (struct _IO_FILE_plus *). (_IO_JUMPS_FUNC): Express in terms of _IO_JUMPS, and add cast to THIS, since _IO_JUMPS no longer does it implicitly. (_IO_file_init, _IO_old_file_init, _IO_new_file_init): Declare arg type as (struct _IO_FILE_plus *). (_IO_str_init_static, _IO_str_init_readonly): Declare 1st arg as (_IO_strfile *). * libio/strops.c (_IO_str_init_static, _IO_str_init_readonly): Declare 1st arg as (_IO_strfile *). * libio/fileops.c (_IO_new_file_init): Declare arg type as (struct _IO_FILE_plus *). * libio/oldfileops.c (_IO_old_file_init): Likewise. * libio/genops.c (_IO_link_in, _IO_un_link): Likewise. (_IO_flush_all, _IO_flush_all_linebuffered, _IO_unbuffer_write): Declare iteration pointer as (struct _IO_FILE_plus *). (_IO_iter_next, _IO_iter_file): _IO_ITER is now (struct _IO_FILE_plus *). * libio/stdfiles.c (_IO_list_all): Declare as (struct _IO_FILE_plus *). * libio/oldstdfiles.c (_IO_list_all): Likewise. (_IO_check_libio): Set user-visible handles to (struct _IO_FILE_plus *). * libio/stdio.c (stdin, stdout, stderr): Set user-visible handles to (struct _IO_FILE_plus *). * libio/iofdopen.c (_IO_new_fdopen): Pass FILE handle pointer whose high bound includes vtable to all functions that will use vtable. For streambufs, pass pointer whose bounds include struct _IO_strfile. * libio/wgenops.c (_IO_wdefault_finish): Likewise. * libio/oldiofdopen.c (_IO_old_fdopen): Likewise. * libio/iofopen.c (_IO_new_fopen): Likewise. * libio/oldiofopen.c (_IO_old_fopen): Likewise. * libio/iofopen64.c (_IO_fopen64): Likewise. * libio/iopopen.c (_IO_new_popen): Likewise. * libio/oldiopopen.c (_IO_old_popen): Likewise. * libio/memstream.c (open_memstream): Likewise. * libio/iovsscanf.c (_IO_vsscanf): Likewise. * libio/iovsprintf.c (_IO_vsprintf): Likewise. * libio/iovdprintf.c (_IO_vdprintf): Likewise. * libio/iofopncook.c (_IO_cookie_init): Likewise. * libio/obprintf.c (_IO_obstack_vprintf): Likewise. * libio/vasprintf.c (_IO_vasprintf): Likewise. * libio/vsnprintf.c (_IO_vsnprintf): Likewise. * libio/stdfiles.c (_IO_stdout_, _IO_stderr_): Likewise. * libio/oldstdfiles.c (_IO_stdout_, _IO_stderr_): Likewise. * stdlib/strfmon.c (__strfmon_l): Likewise. * stdio-common/vfprintf.c (buffered_vfprintf): Likewise. (vfprintf): Qualify computed-goto targets as unbounded. 2000-06-28 Greg McGary <greg@mcgary.org> * libio/libio.h (struct _IO_cookie_file): Move struct type defintion out. (_IO_FILE): Declare chain as (struct _IO_FILE_plus *). * libio/libioP.h (struct _IO_cookie_file): Move struct type defintion in. (_IO_JUMPS): Don't cast THIS--expect arg to be a (struct _IO_FILE_plus *). (_IO_JUMPS_FUNC): Express in terms of _IO_JUMPS, and add cast to THIS, since _IO_JUMPS no longer does it implicitly. (_IO_file_init, _IO_old_file_init, _IO_new_file_init): Declare arg type as (struct _IO_FILE_plus *). (_IO_str_init_static, _IO_str_init_readonly): Declare 1st arg as (_IO_strfile *). * libio/strops.c (_IO_str_init_static, _IO_str_init_readonly): Declare 1st arg as (_IO_strfile *). * libio/fileops.c (_IO_new_file_init): Declare arg type as (struct _IO_FILE_plus *). * libio/oldfileops.c (_IO_old_file_init): Likewise. * libio/genops.c (_IO_link_in, _IO_un_link): Likewise. (_IO_flush_all, _IO_flush_all_linebuffered, _IO_unbuffer_write): Declare iteration pointer as (struct _IO_FILE_plus *). (_IO_iter_next, _IO_iter_file): _IO_ITER is now (struct _IO_FILE_plus *). * libio/stdfiles.c (_IO_list_all): Declare as (struct _IO_FILE_plus *). * libio/oldstdfiles.c (_IO_list_all): Likewise. (_IO_check_libio): Set user-visible handles to (struct _IO_FILE_plus *). * libio/stdio.c (stdin, stdout, stderr): Set user-visible handles to (struct _IO_FILE_plus *). * libio/iofdopen.c (_IO_new_fdopen): Pass FILE handle pointer whose high bound includes vtable to all functions that will use vtable. For streambufs, pass pointer whose bounds include struct _IO_strfile. * libio/wgenops.c (_IO_wdefault_finish): Likewise. * libio/oldiofdopen.c (_IO_old_fdopen): Likewise. * libio/iofopen.c (_IO_new_fopen): Likewise. * libio/oldiofopen.c (_IO_old_fopen): Likewise. * libio/iofopen64.c (_IO_fopen64): Likewise. * libio/iopopen.c (_IO_new_popen): Likewise. * libio/oldiopopen.c (_IO_old_popen): Likewise. * libio/memstream.c (open_memstream): Likewise. * libio/iovsscanf.c (_IO_vsscanf): Likewise. * libio/iovsprintf.c (_IO_vsprintf): Likewise. * libio/iovdprintf.c (_IO_vdprintf): Likewise. * libio/iofopncook.c (_IO_cookie_init): Likewise. * libio/obprintf.c (_IO_obstack_vprintf): Likewise. * libio/vasprintf.c (_IO_vasprintf): Likewise. * libio/vsnprintf.c (_IO_vsnprintf): Likewise. * libio/stdfiles.c (_IO_stdout_, _IO_stderr_): Likewise. * libio/oldstdfiles.c (_IO_stdout_, _IO_stderr_): Likewise. * stdlib/strfmon.c (__strfmon_l): Likewise. * stdio-common/vfprintf.c (buffered_vfprintf): Likewise. (vfprintf): Qualify computed-goto targets as unbounded.
2000-06-29 15:16:42 +08:00
if (_IO_old_file_fopen ((_IO_FILE *) &new_f->fp, filename, mode) != NULL)
return (_IO_FILE *) &new_f->fp;
_IO_un_link (&new_f->fp);
Update. 1997-10-13 03:14 Ulrich Drepper <drepper@cygnus.com> * libc.map: Move _IO_fopen, fopen, _IO_stdin_, _IO_stdout_, _IO_stderr_, _IO_list_all, and freopen to GLIBC_2.1 version. * include/libc-symbol.h: Define define_symbol. * libio/Makefile [$(versioning)=yes] (routines): Add oldiofopen and oldfreopen. [$(versioning)=yes] (aux): Add oldfileops and oldstdfiles. * libio/fileops.c: Use _IO_FILE_complete when accessing _offset field. * libio/freopen.c: Use versioning. * libio/iofopen.c: Likewise. Generate object of type _IO_FILE_complete. * libio/iofopen64.c: Generate object of type _IO_FILE_complete. * libio/iolibio.h: Declare _IO_{old,new}_fopen and __{old,new}_freopen. Define _IO_old_freopen. * libio/libio.h: Remove _offset field from _IO_FILE. Rename _unused2 field to _old_offset. Declare _IO_std*_ streams as of type _IO_FILE_complete. * libio/libioP.h: Define _IO_FILE_complete. Declare callbacks for old fileops implementation. * libio/stdfile.c: Define standard stream of type _IO_FILE_complete. * libio/stdio.c: Correctly address FILE part of standard streams. * libio/oldfileops.c: New file. * libio/oldfreopen.c: New file. * libio/oldiofopen.c: New file. * libio/oldstdfiles.c: New file. * sysdeps/i386/fpu/bits/mathinline.h: Define fma optimization. * sysdeps/libm-i387/e_scalb.S: Make sure code gets into .text section. * sysdeps/libm-i387/e_scalbl.S: Likewise. * sysdeps/libm-i387/s_fma.S: Fix typo. * sysdeps/libm-i387/s_fmaf.S: Likewise. * sysdeps/libm-i387/s_fmal.S: Likewise. 1997-10-12 20:14 Zack Weinberg <zack@rabi.phys.columbia.edu> * sysdeps/stub/getsid.c: Add a stub_warning. * sysdeps/stub/mmap.c: Likewise. * sysdeps/stub/munmap.c: Likewise. * sysdeps/libm-ieee754/s_fma.c: New file. * sysdeps/libm-ieee754/s_fmaf.c: New file. * sysdeps/libm-ieee754/s_fmal.c: New file. * sysdeps/libm-ieee754/s_llrintf.c: New file. * sysdeps/libm-ieee754/s_llrintl.c: New file. * sysdeps/libm-ieee754/s_lrintf.c: New file. * sysdeps/libm-ieee754/s_lrintl.c: New file.
1997-10-13 09:27:24 +08:00
free (new_f);
return NULL;
}
strong_alias (_IO_old_fopen, __old_fopen)
compat_symbol (libc, _IO_old_fopen, _IO_fopen, GLIBC_2_0);
compat_symbol (libc, __old_fopen, fopen, GLIBC_2_0);
#endif