mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03:00
Update.
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.
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1993, 1997 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1993, 1997, 2001 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
|
||||
@ -58,6 +58,8 @@
|
||||
#ifdef _LIBC
|
||||
# undef isatty
|
||||
# define isatty(Fd) __isatty (Fd)
|
||||
|
||||
# include <device-nrs.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
@ -73,7 +75,6 @@ _IO_file_doallocate (fp)
|
||||
_IO_FILE *fp;
|
||||
{
|
||||
_IO_size_t size;
|
||||
int couldbetty;
|
||||
char *p;
|
||||
struct _G_stat64 st;
|
||||
|
||||
@ -82,31 +83,29 @@ _IO_file_doallocate (fp)
|
||||
function it points to. This is to make sure _IO_cleanup gets called
|
||||
on exit. We call it from _IO_file_doallocate, since that is likely
|
||||
to get called by any program that does buffered I/O. */
|
||||
if (_IO_cleanup_registration_needed)
|
||||
if (__builtin_expect (_IO_cleanup_registration_needed != NULL, 0))
|
||||
(*_IO_cleanup_registration_needed) ();
|
||||
#endif
|
||||
|
||||
if (fp->_fileno < 0 || _IO_SYSSTAT (fp, &st) < 0)
|
||||
size = _IO_BUFSIZ;
|
||||
if (fp->_fileno >= 0 && __builtin_expect (_IO_SYSSTAT (fp, &st), 0) >= 0)
|
||||
{
|
||||
couldbetty = 0;
|
||||
size = _IO_BUFSIZ;
|
||||
#if 0
|
||||
/* do not try to optimise fseek() */
|
||||
fp->_flags |= __SNPT;
|
||||
if (S_ISCHR (st.st_mode))
|
||||
{
|
||||
/* Possibly a tty. */
|
||||
if (
|
||||
#ifdef DEV_TTY_P
|
||||
DEV_TTY_P (st.st_rdev) ||
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
couldbetty = S_ISCHR (st.st_mode);
|
||||
isatty (fp->_fileno))
|
||||
fp->_flags |= _IO_LINE_BUF;
|
||||
}
|
||||
#if _IO_HAVE_ST_BLKSIZE
|
||||
size = st.st_blksize <= 0 ? _IO_BUFSIZ : st.st_blksize;
|
||||
#else
|
||||
size = _IO_BUFSIZ;
|
||||
if (st.st_blksize > 0)
|
||||
size = st.st_blksize;
|
||||
#endif
|
||||
}
|
||||
ALLOC_BUF (p, size, EOF);
|
||||
_IO_setb (fp, p, p + size, 1);
|
||||
if (couldbetty && isatty (fp->_fileno))
|
||||
fp->_flags |= _IO_LINE_BUF;
|
||||
return 1;
|
||||
}
|
||||
|
Reference in New Issue
Block a user