From owner-freebsd-bugs@FreeBSD.ORG Wed Jan 16 17:30:05 2008 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 44BE616A418 for ; Wed, 16 Jan 2008 17:30:05 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 31A4D13C469 for ; Wed, 16 Jan 2008 17:30:05 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id m0GHU4Su000113 for ; Wed, 16 Jan 2008 17:30:04 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id m0GHU4i4000110; Wed, 16 Jan 2008 17:30:04 GMT (envelope-from gnats) Date: Wed, 16 Jan 2008 17:30:04 GMT Message-Id: <200801161730.m0GHU4i4000110@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org From: Maxim Konovalov Cc: Subject: Re: bin/119705: [PATCH] make iostat a bit smarter about the number of tty rows X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Maxim Konovalov List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jan 2008 17:30:05 -0000 The following reply was made to PR bin/119705; it has been noted by GNATS. From: Maxim Konovalov To: Giorgos Keramidas Cc: Bruce Evans , bug-followup@freebsd.org Subject: Re: bin/119705: [PATCH] make iostat a bit smarter about the number of tty rows Date: Wed, 16 Jan 2008 20:28:46 +0300 (MSK) On Wed, 16 Jan 2008, 09:41+0200, Giorgos Keramidas wrote: > On 2008-01-16 09:39, Giorgos Keramidas wrote: > > Both fixed, I think. The new version of the patch is attached below, > > after the following changes: > > > > * Reset wresized when doresize() completes its work > > * Only call isatty(fileno(stdout)) once, instead of every time > > doresize() is called > > * Only install a SIGWINCH handler if isatty() is true > > diff --git a/usr.sbin/iostat/iostat.c b/usr.sbin/iostat/iostat.c > > --- a/usr.sbin/iostat/iostat.c > > +++ b/usr.sbin/iostat/iostat.c > [...] > > @@ -426,6 +433,20 @@ main(int argc, char **argv) > > */ > > (void)signal(SIGCONT, needhdr); > > > > + /* > > + * If our standard output is a tty, then install a SIGWINCH handler > > + * and set wresized so that our first iteration through the main > > + * iostat loop will peek at the terminal's current rows to find out > > + * how many lines can fit in a screenful of output. > > + */ > > + if (isatty(fileno(stdout)) != 0) { > > + wresized = 1; > > + (void)signal(SIGWINCH, needresize); > > + } else { > > + wrows = IOSTAT_DEFAULT_ROWS; > > + return; > > Oops. `return' doesn't belong here, of course. Running iostat | more > caught what I missed :) > Looks OK to me. -- Maxim Konovalov