2002-01-19 Ulrich Drepper <drepper@redhat.com>
* libio/fileops.c (_IO_file_underflow_mmap): Don't define as static.
Set offset if read end wasn't the buffer end.
(_IO_file_seekoff_mmap): New function.
(_IO_file_xsgetn_mmap): New function.
(_IO_file_jumps_mmap): Use the two new functions.
* libio/wfileops.c (_IO_wfile_underflow_mmap): Handle end read buffer
!= end buffer.
* libio/libioP.h: Declare _IO_file_seekoff_mmap and
_IO_file_underflow_mmap.
* libio/iofopen.c: Don't position file descriptor at end of file.
* libio/tst-widetext.c: Improve error messages.
* stdio-common/tst-rndseek.c: Likewise.
2001-12-06 Ulrich Drepper <drepper@redhat.com>
* libio/vasprintf.c (_IO_vasprintf): Free buffer on failure.
* assert/assert.c: Check result of __asprintf call and don't use
string if it failed.
* assert/assert-perr.c: Likewise.
* inet/rcmd.c: Likewise.
* locale/programs/localedef.c (main): Check result of
construct_output_path and exit if it failed.
(construct_output_path): Check result of asprintf and mkdir calls and
fail if they failed.
* posix/getopt.c: Check result of __asprintf calls and fail if
they failed.
Patch by Dmitry V. Levin <ldv@alt-linux.org>.
2001-11-28 Ulrich Drepper <drepper@redhat.com>
* libio/genops.c (_IO_flush_all_lockp): New function. The same code
as the old _IO_flush_all but lock only if parameter is nonzero.
(_IO_flush_all): Call _IO_flush_all_lockp with 1 as parameter.
* libio/libioP.h: Add prototype for _IO_flush_all_lockp.
* sysdeps/generic/abort.c (fflush): Define to _IO_flush_all_lockp(0)
if libio is used.
2001-08-14 Ulrich Drepper <drepper@redhat.com>
* stdio-common/perror.c (perror): Use _IO_fwide instead of fwide.
* libio/libio.h (_IO_fwide): Handle zero as second parameter more
efficiently in macro.
* libio/vswprintf.c (_IO_vswprintf): Fix return value handling
which is different from snprintf.
* libio/tst_swprintf.c: Add tests for too small output buffer.
* locale/elem-hash.h (elem_hash): Correct stupid mistake and
create real hash values now.
Patch by Isamu Hasegawa <isamu@yamato.ibm.com>.
* libio/iofgetpos.c (_IO_new_fgetpos): Correct a few problems in
the handling of wide streams.
* libio/wfileops.c (_IO_wfile_underflow): Remove incorrect test
for possible conversion using __codecvt_do_in.
* libio/Makefile (tests): Add tst-fgetws.
* libio/tst-fgetws.c: New file.
* libio/iofgetws.c: Use _IO_ferror_unlocked macros instead of
coding the test here.
2001-08-04 Ulrich Drepper <drepper@redhat.com>
* libio/genops.c (_IO_unbuffer_write): Force streams in narrow
orientation so that conversion modules aren't used anymore.
* malloc/set-freeres.c: Call _IO_cleanup before running subfreeres
functions to avoid using wide streams afterwards.
* iconvdata/Makefile: Add rules to build GEORGIAN-PS and
GEORGIAN-ACADEMY.
* iconvdata/georgian-ps.c: New file.
* iconvdata/georgian-academy.c: New file.
* iconvdata/gconv-modules: Add entries for GEORGIAN-PS and
GEORGIAN-ACADEMY.
* iconvdata/tst-tables.sh: Add GEORGIAN-PS and GEORGIAN-ACADEMY.
* libio/vasprintf.c (_IO_vasprintf): Don't copy uninitialized byte
from stream buffer to result buffer.
Reported by Michael Meeks <michael@ximian.com>.
* libio/fileops.c (_IO_new_file_fopen): Correctly locate ccs=
substring. Don't handle ccs= if no descriptor was allocated.
Normalize codeset name before calling __wcsmbs_named_conv.
Initialize transliteration elements. Free step data structure.
* libio/iofclose.c (_IO_new_fclose): Correct freeing of the step data.
* libio/iofwide.c (__libio_translit): Renamed from libio_translit
and made public. Various little cleanup changes.
* wcsmbs/wcsmbsload.h (struct gconv_fcts): Add towc_nsteps and
tomb_nsteps member.
* wcsmbs/wcsmbsload.c: Add some casts to avoid warnings.
(__wcsmbs_gconv_fcts): Initialize towc_nsteps and tomb_nsteps member.
(getfct): Take additional parameter with pointer to variable where the
number of steps is stored in. Disable code which allows to use more
than one step for now. Adjust all callers.
(free_mem): New function. Frees data associated with currently
selected converters.
* libio/iofclose.c (_IO_new_fclose): Unlink descriptor first to
avoid deadlock.
* libio/oldiofclose.c (_IO_old_fclose): Likewise.
* libio/genops.c (_IO_un_link): Get stream lock since it's not
always done in the caller.
(_IO_link_in): Likewise.
* libio/genops.c (_IO_list_all_stamp): New variable.
(_IO_un_link): Bump _IO_list_all_stamp after removing from list.
(_IO_link): Likewise for insertion.
(flush_cleanup): New function.
(_IO_flush_all): Get list_all_lock and all individual locks for the
streams. Detect and handle changes to the _IO_list_all list.
(_IO_flush_all_linebuffered): Likewise.
* sysdeps/generic/bits/stdio-lock.h: Define
_IO_cleanup_region_start_noarg.
* sysdeps/mach/hurd/bits/stdio-lock.c: Likewise.
* libio/stdio_ext.h: Moved to ...
* stdio-common/stdio_ext.h: ... here.
* libio/Makefile (headers): Move stdio_ext.h from here ...
* stdio-common/Makefile (headers): ... to here.
* include/stdio_ext.h: New file.
* stdio/Makefile (routines): Add the stdio_ext.h functions here.
* stdio/Versions (GLIBC_2.2.4): Export the stdio_ext.h functions.
* stdio/__flbf.c: New file.
* stdio/__fbufsize.c: New file.
* stdio/__fpending.c: New file.
* stdio/__fpurge.c: New file.
* stdio/__freadable.c: New file.
* stdio/__freading.c: New file.
* stdio/__fsetlocking.c: New file.
* stdio/__fwritable.c: New file.
* stdio/__fwriting.c: New file.
2001-07-18 Ulrich Drepper <drepper@redhat.com>
* libio/filedoalloc.c (_IO_file_doallocate): A few more minor
cleanups and improvements.
2001-07-18 Andreas Schwab <schwab@suse.de>
* posix/regex.c (WORDCHAR_P) [WCHAR]: Also return true for the
underscore character.
2001-07-18 Jakub Jelinek <jakub@redhat.com>
* malloc/malloc (new_heap): Don't call munmap for zero length.
2001-07-18 Ulrich Drepper <drepper@redhat.com>
* libio/filedoalloc.c (_IO_file_doallocate): Use DEV_TTY_P if
available to determine whether descriptor is for tty before
calling isatty.
* sysdeps/unix/sysv/linux/device-nrs.h: Define DEV_TTY_P.
* sysdeps/generic/device-nrs.h: Likewise.
2001-07-06 Paul Eggert <eggert@twinsun.com>
* manual/argp.texi: Remove ignored LGPL copyright notice; it's
not appropriate for documentation anyway.
* manual/libc-texinfo.sh: "Library General Public License" ->
"Lesser General Public License".
2001-07-06 Andreas Jaeger <aj@suse.de>
* All files under GPL/LGPL version 2: Place under LGPL version
2.1.
2001-04-05 David S. Miller <davem@redhat.com>
Add hp-timing support for sparcv9/sparc64 targets.
* sysdeps/sparc/sparc32/sparcv9/hp-timing.c: New file
* sysdeps/sparc/sparc32/sparcv9/hp-timing.h: New file
* sysdeps/sparc/sparc64/hp-timing.c: New file
* sysdeps/sparc/sparc64/hp-timing.h: New file
* sysdeps/sparc/sparc32/sparcv9/Makefile: Build hp-timing.
* sysdeps/sparc/sparc64/Makefile: Likewise.
2001-04-09 Jakub Jelinek <jakub@redhat.com>
* sysdeps/generic/fd_to_filename.h: New file.
* sysdeps/unix/sysv/linux/fd_to_filename.h: New file.
* libio/freopen.c (freopen): If FILENAME is NULL, try to get
filename from the open file descriptor.
* libio/freopen64.c (freopen64): Likewise.
2001-04-09 Bruno Haible <haible@clisp.cons.org>
* misc/error.c (error): fflush stdout also if
error_print_progname != NULL.
(error_at_line): Likewise.
2001-04-07 Bruno Haible <haible@clisp.cons.org>
* intl/gettextP.h (struct loaded_domain): Add codeset_cntr field.
(struct binding): Add codeset_cntr field.
(_nl_load_domain): Add domainbinding argument.
(_nl_init_domain_conv, _nl_free_domain_conv): New declarations.
(_nl_find_msg): New declaration, moved here from loadinfo.h.
* intl/loadinfo.h (struct loaded_l10nfile): Remove domainbinding field.
(_nl_make_l10nflist): Remove domainbinding argument.
(_nl_find_msg): Move declaration to gettextP.h.
* intl/bindtextdom.c (set_binding_values): Initialize ->codeset_cntr
to 0. Increment it when ->codeset is changed.
* intl/dcigettext.c (DCIGETTEXT): Pass binding to _nl_find_msg.
(_nl_find_msg): Add domainbinding argument. Reinitialize the converter
if domainbinding->codeset_cntr has been incremented.
* intl/finddomain.c (_nl_find_domain): Don't pass domainbinding to
_nl_make_l10nflist(). Pass it to _nl_load_domain() instead.
* intl/l10nflist.c (_nl_make_l10nflist): Remove domainbinding argument.
* intl/loadmsgcat.c (_nl_init_domain_conv): New function, extracted
from _nl_load_domain. Append //TRANSLIT also when using libiconv.
(_nl_free_domain_conv): New function, extracted from _nl_unload_domain.
(_nl_load_domain): Add domainbinding argument. Call
_nl_init_domain_conv.
(_nl_unload_domain): Call _nl_free_domain_conv.
* intl/Makefile (distribute): Add tst-codeset.sh, tstcodeset.po.
(test-srcs): Add tst-codeset.
(tests): Depend on tst-codeset.out.
(tst-codeset.out): New rule.
(CFLAGS-tst-codeset.c): New variable.
* intl/tst-codeset.sh: New file.
* intl/tstcodeset.po: New file.
* intl/tst-codeset.c: New file.
* locale/findlocale.c (_nl_find_locale): Update _nl_make_l10nflist
calls.
2001-02-19 Ulrich Drepper <drepper@redhat.com>
* libio/iogetline.c: Move return until after last statement.
* localedata/show-ucs-data.c: Don't show < > for better readability.
* sysdeps/ia64/fpu/Dist: New file.
* sysdeps/ia64/fpu/Makefile: New file.
* sysdeps/ia64/fpu/Versions: New file.
* sysdeps/ia64/fpu/e_acos.S: New file.
* sysdeps/ia64/fpu/e_acosf.S: New file.
* sysdeps/ia64/fpu/e_acosl.S: New file.
* sysdeps/ia64/fpu/e_asin.S: New file.
* sysdeps/ia64/fpu/e_asinf.S: New file.
* sysdeps/ia64/fpu/e_asinl.S: New file.
* sysdeps/ia64/fpu/e_atan2.S: New file.
* sysdeps/ia64/fpu/e_atan2f.S: New file.
* sysdeps/ia64/fpu/e_atan2l.c: New file.
* sysdeps/ia64/fpu/e_cosh.S: New file.
* sysdeps/ia64/fpu/e_coshf.S: New file.
* sysdeps/ia64/fpu/e_coshl.S: New file.
* sysdeps/ia64/fpu/e_exp.S: New file.
* sysdeps/ia64/fpu/e_expf.S: New file.
* sysdeps/ia64/fpu/e_expl.c: New file.
* sysdeps/ia64/fpu/e_fmod.S: New file.
* sysdeps/ia64/fpu/e_fmodf.S: New file.
* sysdeps/ia64/fpu/e_fmodl.S: New file.
* sysdeps/ia64/fpu/e_hypot.S: New file.
* sysdeps/ia64/fpu/e_hypotf.S: New file.
* sysdeps/ia64/fpu/e_hypotl.S: New file.
* sysdeps/ia64/fpu/e_log.S: New file.
* sysdeps/ia64/fpu/e_log10.c: New file.
* sysdeps/ia64/fpu/e_log10f.c: New file.
* sysdeps/ia64/fpu/e_log10l.c: New file.
* sysdeps/ia64/fpu/e_logf.S: New file.
* sysdeps/ia64/fpu/e_logl.c: New file.
* sysdeps/ia64/fpu/e_pow.S: New file.
* sysdeps/ia64/fpu/e_powf.S: New file.
* sysdeps/ia64/fpu/e_powl.S: New file.
* sysdeps/ia64/fpu/e_rem_pio2.c: New file.
* sysdeps/ia64/fpu/e_rem_pio2f.c: New file.
* sysdeps/ia64/fpu/e_remainder.S: New file.
* sysdeps/ia64/fpu/e_remainderf.S: New file.
* sysdeps/ia64/fpu/e_remainderl.S: New file.
* sysdeps/ia64/fpu/e_scalb.S: New file.
* sysdeps/ia64/fpu/e_scalbf.S: New file.
* sysdeps/ia64/fpu/e_scalbl.S: New file.
* sysdeps/ia64/fpu/e_sinh.S: New file.
* sysdeps/ia64/fpu/e_sinhf.S: New file.
* sysdeps/ia64/fpu/e_sinhl.S: New file.
* sysdeps/ia64/fpu/e_sqrt.S: New file.
* sysdeps/ia64/fpu/e_sqrtf.S: New file.
* sysdeps/ia64/fpu/e_sqrtl.S: New file.
* sysdeps/ia64/fpu/k_rem_pio2.c: New file.
* sysdeps/ia64/fpu/k_rem_pio2f.c: New file.
* sysdeps/ia64/fpu/k_rem_pio2l.c: New file.
* sysdeps/ia64/fpu/libm_atan2_reg.S: New file.
* sysdeps/ia64/fpu/libm_error.c: New file.
* sysdeps/ia64/fpu/libm_frexp4.S: New file.
* sysdeps/ia64/fpu/libm_frexp4f.S: New file.
* sysdeps/ia64/fpu/libm_frexp4l.S: New file.
* sysdeps/ia64/fpu/libm_reduce.S: New file.
* sysdeps/ia64/fpu/libm_support.h: New file.
* sysdeps/ia64/fpu/libm_tan.S: New file.
* sysdeps/ia64/fpu/s_atan.S: New file.
* sysdeps/ia64/fpu/s_atanf.S: New file.
* sysdeps/ia64/fpu/s_atanl.S: New file.
* sysdeps/ia64/fpu/s_cbrt.S: New file.
* sysdeps/ia64/fpu/s_cbrtf.S: New file.
* sysdeps/ia64/fpu/s_cbrtl.S: New file.
* sysdeps/ia64/fpu/s_ceil.S: New file.
* sysdeps/ia64/fpu/s_ceilf.S: New file.
* sysdeps/ia64/fpu/s_ceill.S: New file.
* sysdeps/ia64/fpu/s_cos.S: New file.
* sysdeps/ia64/fpu/s_cosf.S: New file.
* sysdeps/ia64/fpu/s_cosl.S: New file.
* sysdeps/ia64/fpu/s_expm1.S: New file.
* sysdeps/ia64/fpu/s_expm1f.S: New file.
* sysdeps/ia64/fpu/s_expm1l.S: New file.
* sysdeps/ia64/fpu/s_floor.S: New file.
* sysdeps/ia64/fpu/s_floorf.S: New file.
* sysdeps/ia64/fpu/s_floorl.S: New file.
* sysdeps/ia64/fpu/s_frexp.c: New file.
* sysdeps/ia64/fpu/s_frexpf.c: New file.
* sysdeps/ia64/fpu/s_frexpl.c: New file.
* sysdeps/ia64/fpu/s_ilogb.S: New file.
* sysdeps/ia64/fpu/s_ilogbf.S: New file.
* sysdeps/ia64/fpu/s_ilogbl.S: New file.
* sysdeps/ia64/fpu/s_ldexp.S: New file.
* sysdeps/ia64/fpu/s_ldexpf.S: New file.
* sysdeps/ia64/fpu/s_ldexpl.S: New file.
* sysdeps/ia64/fpu/s_log1p.S: New file.
* sysdeps/ia64/fpu/s_log1pf.S: New file.
* sysdeps/ia64/fpu/s_log1pl.S: New file.
* sysdeps/ia64/fpu/s_logb.S: New file.
* sysdeps/ia64/fpu/s_logbf.S: New file.
* sysdeps/ia64/fpu/s_logbl.S: New file.
* sysdeps/ia64/fpu/s_matherrf.c: New file.
* sysdeps/ia64/fpu/s_matherrl.c: New file.
* sysdeps/ia64/fpu/s_modf.S: New file.
* sysdeps/ia64/fpu/s_modff.S: New file.
* sysdeps/ia64/fpu/s_modfl.S: New file.
* sysdeps/ia64/fpu/s_nearbyint.S: New file.
* sysdeps/ia64/fpu/s_nearbyintf.S: New file.
* sysdeps/ia64/fpu/s_nearbyintl.S: New file.
* sysdeps/ia64/fpu/s_rint.S: New file.
* sysdeps/ia64/fpu/s_rintf.S: New file.
* sysdeps/ia64/fpu/s_rintl.S: New file.
* sysdeps/ia64/fpu/s_round.S: New file.
* sysdeps/ia64/fpu/s_roundf.S: New file.
* sysdeps/ia64/fpu/s_roundl.S: New file.
* sysdeps/ia64/fpu/s_scalbn.S: New file.
* sysdeps/ia64/fpu/s_scalbnf.S: New file.
* sysdeps/ia64/fpu/s_scalbnl.S: New file.
* sysdeps/ia64/fpu/s_significand.S: New file.
* sysdeps/ia64/fpu/s_significandf.S: New file.
* sysdeps/ia64/fpu/s_significandl.S: New file.
* sysdeps/ia64/fpu/s_sin.c: New file.
* sysdeps/ia64/fpu/s_sincos.c: New file.
* sysdeps/ia64/fpu/s_sincosf.c: New file.
* sysdeps/ia64/fpu/s_sincosl.c: New file.
* sysdeps/ia64/fpu/s_sinf.c: New file.
* sysdeps/ia64/fpu/s_sinl.c: New file.
* sysdeps/ia64/fpu/s_tan.S: New file.
* sysdeps/ia64/fpu/s_tanf.S: New file.
* sysdeps/ia64/fpu/s_tanl.S: New file.
* sysdeps/ia64/fpu/s_trunc.S: New file.
* sysdeps/ia64/fpu/s_truncf.S: New file.
* sysdeps/ia64/fpu/s_truncl.S: New file.
* sysdeps/ia64/fpu/w_acos.c: New file.
* sysdeps/ia64/fpu/w_acosf.c: New file.
* sysdeps/ia64/fpu/w_acosl.c: New file.
* sysdeps/ia64/fpu/w_asin.c: New file.
* sysdeps/ia64/fpu/w_asinf.c: New file.
* sysdeps/ia64/fpu/w_asinl.c: New file.
* sysdeps/ia64/fpu/w_atan2.c: New file.
* sysdeps/ia64/fpu/w_atan2f.c: New file.
* sysdeps/ia64/fpu/w_atan2l.c: New file.
* sysdeps/ia64/fpu/w_cosh.c: New file.
* sysdeps/ia64/fpu/w_coshf.c: New file.
* sysdeps/ia64/fpu/w_coshl.c: New file.
* sysdeps/ia64/fpu/w_exp.c: New file.
* sysdeps/ia64/fpu/w_expf.c: New file.
* sysdeps/ia64/fpu/w_fmod.c: New file.
* sysdeps/ia64/fpu/w_fmodf.c: New file.
* sysdeps/ia64/fpu/w_fmodl.c: New file.
* sysdeps/ia64/fpu/w_hypot.c: New file.
* sysdeps/ia64/fpu/w_hypotf.c: New file.
* sysdeps/ia64/fpu/w_hypotl.c: New file.
* sysdeps/ia64/fpu/w_log.c: New file.
* sysdeps/ia64/fpu/w_log10.c: New file.
* sysdeps/ia64/fpu/w_log10f.c: New file.
* sysdeps/ia64/fpu/w_log10l.c: New file.
* sysdeps/ia64/fpu/w_logf.c: New file.
* sysdeps/ia64/fpu/w_logl.c: New file.
* sysdeps/ia64/fpu/w_pow.c: New file.
* sysdeps/ia64/fpu/w_powf.c: New file.
* sysdeps/ia64/fpu/w_powl.c: New file.
* sysdeps/ia64/fpu/w_remainder.c: New file.
* sysdeps/ia64/fpu/w_remainderf.c: New file.
* sysdeps/ia64/fpu/w_remainderl.c: New file.
* sysdeps/ia64/fpu/w_scalb.c: New file.
* sysdeps/ia64/fpu/w_scalbf.c: New file.
* sysdeps/ia64/fpu/w_scalbl.c: New file.
* sysdeps/ia64/fpu/w_sqrt.c: New file.
* sysdeps/ia64/fpu/w_sqrtf.c: New file.
* sysdeps/ia64/fpu/w_sqrtl.c: New file.
* sysdeps/ia64/fpu/libm-test-ulps: Adjust for long double
implementation.
* sysdeps/ia64/fpu/bits/mathdef.h: Correct float_t and double_t types.
Change FP_ILOGBNAN for new implementation.
* Verions.def: Add 2.2.3 versions.
2001-02-12 Andreas Jaeger <aj@suse.de>
* posix/Makefile (tests): Don't run bug-regex2 when
cross-compiling.
* libio/Makefile (tests): Don't run test-freopen when
cross-compiling.
* manual/stdio.texi (Streams and I18N): Fix typos.