From owner-svn-src-head@freebsd.org Tue May 8 20:36:55 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5E634FC96EA; Tue, 8 May 2018 20:36:55 +0000 (UTC) (envelope-from ronald-lists@klop.ws) Received: from smarthost1.greenhost.nl (smarthost1.greenhost.nl [195.190.28.92]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F13C868952; Tue, 8 May 2018 20:36:54 +0000 (UTC) (envelope-from ronald-lists@klop.ws) Received: from smtp.greenhost.nl ([213.108.110.112]) by smarthost1.greenhost.nl with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1fG9Lr-0001xU-4U; Tue, 08 May 2018 22:36:47 +0200 Content-Type: text/plain; charset=utf-8; format=flowed; delsp=yes To: "Kyle Evans" , "Alexey Dokuchaev" Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers Subject: Re: svn commit: r333351 - head/usr.bin/grep References: <201805080353.w483rlde033542@repo.freebsd.org> <20180508105815.GB7299@FreeBSD.org> <20180508144912.GA3581@FreeBSD.org> Date: Tue, 08 May 2018 22:36:50 +0200 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: "Ronald Klop" Message-ID: In-Reply-To: <20180508144912.GA3581@FreeBSD.org> User-Agent: Opera Mail/12.16 (FreeBSD) X-Authenticated-As-Hash: 398f5522cb258ce43cb679602f8cfe8b62a256d1 X-Virus-Scanned: by clamav at smarthost1.samage.net X-Spam-Level: / X-Spam-Score: -0.2 X-Spam-Status: No, score=-0.2 required=5.0 tests=ALL_TRUSTED, BAYES_50 autolearn=disabled version=3.4.0 X-Scan-Signature: 788438cbfdc4dc137ce560360a3a99c7 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 20:36:55 -0000 On Tue, 08 May 2018 16:49:12 +0200, Alexey Dokuchaev wrote: > On Tue, May 08, 2018 at 09:36:21AM -0500, Kyle Evans wrote: >> On Tue, May 8, 2018 at 5:58 AM, Alexey Dokuchaev >> wrote: >> >> >> >> - if ((f = fopen(fn, "r")) == NULL) >> >> + if (strcmp(fn, "-") == 0) >> >> + f = stdin; >> > >> > This makes sense: when `fn' is "-", `f' is stdin. >> > >> >> - fclose(f); >> >> + if (strcmp(fn, "-") != 0) >> >> + fclose(f); >> > >> > But not this one: why are you checking `fn' again? Shouldn't you >> > fclose(f) if it's not stdin? >> > >> > if (f != stdin) >> > fclose(f); >> > >> >> You say potato, I say potato. =) In this case, it's low overhead in a >> not particularly performance critical bit and drawing a connection >> between this and the opening of 'f' above in an extremely obvious way. > > Well, I'm not worried about the overhead or performance issues, they are > negligible. I just find second strcmp(fn, "-") to be semantically wrong > (and that's why you need implicit "there's only one way to get stdin > here" > assert). You assign `f' to stdin based on `fn' being "-", but you > fclose(f) when it's not stdin; the value of `fn' is irrelevant this time. > As a nice bonus, you only spell strcmp(fn, "-") once and do not need to > implicitly assert that there's only one way to get stdin here. > >> This also might get ripped out soon -- we'll see how things go. > > I see, understood. > > ./danfe What is the result of "-f /dev/stdin"? Of does that fopen return a different filedesc? Ronald.