X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=stdin.c;h=eea78b3eb8cabee7c39900c248a2e9f116426872;hb=181beb316afad036ac01a778544c5dec0a8d51c7;hp=a66ad469c2d648a875d4e8f1ce6917606a18967d;hpb=8aa9d0cddfefb882cfd8e7cadbeea5cce31b731f;p=paraslash.git diff --git a/stdin.c b/stdin.c index a66ad469..eea78b3e 100644 --- a/stdin.c +++ b/stdin.c @@ -1,12 +1,7 @@ -/* - * Copyright (C) 2006-2014 Andre Noll - * - * Licensed under the GPL v2. For licencing details see COPYING. - */ +/* Copyright (C) 2006 Andre Noll , see file COPYING. */ /** \file stdin.c Functions that deal with reading from stdin. */ -#include #include #include "para.h" @@ -42,7 +37,7 @@ static void stdin_pre_select(struct sched *s, void *context) * 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; @@ -69,7 +64,7 @@ static int stdin_post_select(struct sched *s, void *context) * 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) @@ -115,6 +110,7 @@ void stdin_task_register(struct stdin_task *sit, struct sched *s) 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); }