diff options
Diffstat (limited to 'libio/filedoalloc.c')
-rw-r--r-- | libio/filedoalloc.c | 107 |
1 files changed, 0 insertions, 107 deletions
diff --git a/libio/filedoalloc.c b/libio/filedoalloc.c deleted file mode 100644 index 50919c9b5f..0000000000 --- a/libio/filedoalloc.c +++ /dev/null @@ -1,107 +0,0 @@ -/* Copyright (C) 1993-2017 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 - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. - - As a special exception, if you link the code in this file with - files compiled with a GNU compiler to produce an executable, - that does not cause the resulting executable to be covered by - the GNU Lesser General Public License. This exception does not - however invalidate any other reasons why the executable file - might be covered by the GNU Lesser General Public License. - This exception applies to code released by its copyright holders - in files containing the exception. */ - -/* - Copyright (C) 1990 The Regents of the University of California. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 4. Neither the name of the University nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE.*/ - -/* Modified for GNU iostream by Per Bothner 1991, 1992. */ - -#include "libioP.h" -#include <device-nrs.h> -#include <sys/stat.h> -#include <stdlib.h> -#include <unistd.h> - -/* Return the result of isatty, without changing errno. */ -static int -local_isatty (int fd) -{ - int save_errno = errno; - int res = __isatty (fd); - __set_errno (save_errno); - return res; -} - -/* Allocate a file buffer, or switch to unbuffered I/O. Streams for - TTY devices default to line buffered. */ -int -_IO_file_doallocate (_IO_FILE *fp) -{ - _IO_size_t size; - char *p; - struct stat64 st; - - size = _IO_BUFSIZ; - if (fp->_fileno >= 0 && __builtin_expect (_IO_SYSSTAT (fp, &st), 0) >= 0) - { - if (S_ISCHR (st.st_mode)) - { - /* Possibly a tty. */ - if ( -#ifdef DEV_TTY_P - DEV_TTY_P (&st) || -#endif - local_isatty (fp->_fileno)) - fp->_flags |= _IO_LINE_BUF; - } -#if _IO_HAVE_ST_BLKSIZE - if (st.st_blksize > 0 && st.st_blksize < _IO_BUFSIZ) - size = st.st_blksize; -#endif - } - p = malloc (size); - if (__glibc_unlikely (p == NULL)) - return EOF; - _IO_setb (fp, p, p + size, 1); - return 1; -} -libc_hidden_def (_IO_file_doallocate) |