From aacef16b599f85e451d3240b8ff714ef971b6602 Mon Sep 17 00:00:00 2001 From: marcus Date: Mon, 31 Jan 2005 00:41:25 +0000 Subject: 2005-01-31 Marcus Brinkmann * hurd-l4/sysdeps/l4/hurd/isatty.c: New file. * hurd-l4/sysdeps/l4/hurd/fxstat64.c (__fxstat64): Fake a character device for fds 0 to 2. --- libc/ChangeLog | 6 ++++++ libc/hurd-l4/sysdeps/l4/hurd/fxstat64.c | 10 +++++++++ libc/hurd-l4/sysdeps/l4/hurd/isatty.c | 37 +++++++++++++++++++++++++++++++++ 3 files changed, 53 insertions(+) create mode 100644 libc/hurd-l4/sysdeps/l4/hurd/isatty.c (limited to 'libc') diff --git a/libc/ChangeLog b/libc/ChangeLog index d49d141..2bb6003 100644 --- a/libc/ChangeLog +++ b/libc/ChangeLog @@ -1,3 +1,9 @@ +2005-01-31 Marcus Brinkmann + + * hurd-l4/sysdeps/l4/hurd/isatty.c: New file. + * hurd-l4/sysdeps/l4/hurd/fxstat64.c (__fxstat64): Fake a + character device for fds 0 to 2. + 2005-01-30 Marcus Brinkmann * hurd-l4/sysdeps/l4/gettimeofday.c, diff --git a/libc/hurd-l4/sysdeps/l4/hurd/fxstat64.c b/libc/hurd-l4/sysdeps/l4/hurd/fxstat64.c index 865ba49..bb544fa 100644 --- a/libc/hurd-l4/sysdeps/l4/hurd/fxstat64.c +++ b/libc/hurd-l4/sysdeps/l4/hurd/fxstat64.c @@ -41,6 +41,16 @@ __fxstat64 (int vers, int fd, struct stat64 *buf) return -1; } + /* FIXME: This is only here to make our cheesy stdin/stdout/stderr + replacement work in line-buffered mode, see + libio/filedoalloc.c. */ + if (fd == 0 || fd == 1 || fd == 2) + { + buf->st_mode = S_IFCHR; + buf->st_blksize = 0; + return 0; + } + __set_errno (ENOSYS); return -1; } diff --git a/libc/hurd-l4/sysdeps/l4/hurd/isatty.c b/libc/hurd-l4/sysdeps/l4/hurd/isatty.c new file mode 100644 index 0000000..26c7b60 --- /dev/null +++ b/libc/hurd-l4/sysdeps/l4/hurd/isatty.c @@ -0,0 +1,37 @@ +/* Copyright (C) 1994, 1995, 1997, 2005 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, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include + +/* Return 1 if FD is a terminal, 0 if not. */ +int +__isatty (fd) + int fd; +{ + error_t err; + + /* FIXME: This is just to make line buffering for our cheap + stdin/stdout/stderr work. */ + if (fd == 0 || fd == 1 || fd == 2) + return 1; + + return 0; +} + +weak_alias (__isatty, isatty) -- cgit v1.2.3