From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24607 invoked by alias); 20 Jan 2015 11:02:13 -0000 Mailing-List: contact zsh-users-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Users List List-Post: List-Help: X-Seq: 19755 Received: (qmail 25514 invoked from network); 20 Jan 2015 11:02:10 -0000 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.2 Date: Tue, 20 Jan 2015 12:02:03 +0100 From: Roman Neuhauser To: Peter Stephenson Cc: Zsh Users Subject: Re: warning about closing an already closed file descriptor Message-ID: <20150120110203.GI979@isis.sigpipe.cz> References: <1469711.vAe1BPIYVt@kdudka.brq.redhat.com> <20150119145935.5eee77ee@pwslap01u.europe.root.pri> <20150119172850.1bffc197@pwslap01u.europe.root.pri> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20150119172850.1bffc197@pwslap01u.europe.root.pri> User-Agent: Mutt/1.5.23 (2014-03-12) # p.stephenson@samsung.com / 2015-01-19 17:28:50 +0000: > On Mon, 19 Jan 2015 14:59:35 +0000 > Peter Stephenson wrote: > > The problem that change fixed wasn't really intended to have a visible > > effect, apart from closing f.d.s the shell didn't know about. If it's > > more useful without the message than with it, it can be removed. > >... > > We can special case the {varid}<&- syntax --- that might be useful since > > it implies the user was previously in direct control of the f.d. so is > > ikely to be interested in an error if closing it failed. > > This easy patch does that. Is anyone other than Kamil interested enough > to comment? > diff --git a/Test/A04redirect.ztst b/Test/A04redirect.ztst > index a39ce46..cb67788 100644 > --- a/Test/A04redirect.ztst > +++ b/Test/A04redirect.ztst > @@ -152,11 +152,13 @@ > >hello > >goodbye > > - ({ exec 3<&- } 2>/dev/null > - exec 3<&- > - read foo <&-) > + (exec {varid}<&0 > + exec {varid}<&- > + print About to close a second time >&2 > + read {varid}<&-) sorry if i'm talking out of my ass, but does this mean that the non-{varid} syntax is now without a test? > 1:'<&-' redirection > -*?\(eval\):*: failed to close file descriptor 3:* > +?About to close a second time > +*?\(eval\):*: failed to close file descriptor * > > print foo >&- > 0:'>&-' redirection -- roman