-/*
- * Copyright (C) 2006 Andre Noll <maan@tuebingen.mpg.de>
- *
- * Licensed under the GPL v2. For licencing details see COPYING.
- */
+/* Copyright (C) 2006 Andre Noll <maan@tuebingen.mpg.de>, see file COPYING. */
/** \file stdin.c Functions that deal with reading from stdin. */
* during the previous pre_select call. If so, and if STDIN_FILENO is readable,
* data is read from stdin and fed into the buffer tree.
*/
-static int stdin_post_select(struct sched *s, void *context)
+static int stdin_post_select(__a_unused struct sched *s, void *context)
{
struct stdin_task *sit = context;
ssize_t ret;
* reference can not be freed, we're stuck.
*/
sz = PARA_MIN(sz, btr_pool_size(sit->btrp) / 2);
- ret = read_nonblock(STDIN_FILENO, buf, sz, &s->rfds, &n);
+ ret = read_nonblock(STDIN_FILENO, buf, sz, &n);
if (n > 0)
btr_add_output_pool(sit->btrp, n, sit->btrn);
if (ret >= 0)
exit(EXIT_FAILURE);
}
sit->fd_flags = ret;
- sit->must_set_nonblock_flag = (sit->fd_flags & O_NONBLOCK) == 0;
+ sit->must_set_nonblock_flag = (sit->fd_flags & O_NONBLOCK) == 0
+ && !isatty(STDIN_FILENO);
sit->task = task_register(&ti, s);
}