From: "Célestin Matte" <celestin.matte@ensimag.fr>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org, benoit.person@ensimag.fr,
matthieu.moy@grenoble-inp.fr
Subject: Re: [PATCH 17/18] Place the open() call inside the do{} struct and prevent failing close
Date: Thu, 06 Jun 2013 23:30:29 +0200 [thread overview]
Message-ID: <51B0FF75.9070506@ensimag.fr> (raw)
In-Reply-To: <7vhahbx7r7.fsf@alter.siamese.dyndns.org>
Le 06/06/2013 23:13, Junio C Hamano a écrit :
> Confused. Which part of this patch moves open inside a do{} block?
> This was last touched by [9/18] but it doesn't do any such thing,
> either.
I must have failed the rebase, as the first part of the commit moved to
[14/18] because it modifies a part of it:
>@@ -344,10 +344,10 @@ sub get_mw_pages {
> # $out = run_git("command args", "raw"); # don't interpret
>output as UTF-8.
> sub run_git {
> my $args = shift;
>- my $encoding = (shift || "encoding(UTF-8)");
>- open(my $git, "-|:$encoding", "git " . $args)
>- or die "Unable to open: $!\n";
>- my $res = do {
>+ my $encoding = (shift || 'encoding(UTF-8)');
>+ my $res = do {
>+ open(my $git, "-|:$encoding", "git ${args}")
>+ or die "Unable to fork: $!\n";
> local $/ = undef;
> <$git>
> };
I'm not sure how I should correct this. I'll have a look if this commit
actually is useful.
> Upon leaving this subroutine, $git filehandle will go out of scope,
> so in that sense, close may not be necessary, but that does not
> match what the proposed log message claims what the patch does.
>
> Also, this patch does not remove "or die" 9/18 added, even though
> the proposed log message claims that with autodie it is no longer
> necessary.
>
> I am not convinced that using autodie globally, without vetting the
> calls the original code make, is a good idea in the first place.
> How does this change interact with existing calls to open, close,
> etc. that check the return value from them, now these calls throw
> exception and will not give a chance for the existing error handling
> codepath to intervene?
So using autodie may not be a good idea.
But the problem is that in the current state, open() return values are
checked, but print ones are not, although it should be. So, either:
- we use autodie and remove checking of existing return values, or
- we don't use autodie and add checking of return value of print calls
- or I'm missing some point :)
--
Célestin Matte
next prev parent reply other threads:[~2013-06-06 21:30 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-06 19:34 [PATCH 00/18] git-remote-mediawiki: Follow perlcritic's recommandations Célestin Matte
2013-06-06 19:34 ` [PATCH 01/18] Follow perlcritic's recommendations - level 5 and 4 Célestin Matte
2013-06-07 1:42 ` Eric Sunshine
2013-06-07 8:10 ` Matthieu Moy
2013-06-07 12:11 ` Célestin Matte
2013-06-07 17:43 ` Matthieu Moy
2013-06-06 19:34 ` [PATCH 02/18] Change style of some regular expressions to make them clearer Célestin Matte
2013-06-07 1:54 ` Eric Sunshine
2013-06-07 2:30 ` Junio C Hamano
2013-06-07 4:39 ` Eric Sunshine
2013-06-07 4:51 ` Junio C Hamano
2013-06-07 10:40 ` Peter Krefting
2013-06-06 19:34 ` [PATCH 03/18] Add newline in the end of die() error messages Célestin Matte
2013-06-06 19:34 ` [PATCH 04/18] Prevent local variable $url to have the same name as a global variable Célestin Matte
2013-06-06 19:34 ` [PATCH 05/18] Turn double-negated expressions into simple expressions Célestin Matte
2013-06-07 4:12 ` Eric Sunshine
2013-06-07 17:04 ` Célestin Matte
2013-06-07 20:25 ` Eric Sunshine
2013-06-07 20:32 ` Célestin Matte
2013-06-06 19:34 ` [PATCH 06/18] Remove unused variable Célestin Matte
2013-06-06 19:34 ` [PATCH 07/18] Rename a variable ($last) so that it does not have the name of a keyword Célestin Matte
2013-06-06 19:34 ` [PATCH 08/18] Explicitely assign local variable as undef and make a proper one-instruction-by- line indentation Célestin Matte
2013-06-07 1:19 ` Eric Sunshine
2013-06-07 8:18 ` Matthieu Moy
2013-06-06 19:34 ` [PATCH 09/18] Check return value of open and remove import of unused open2 Célestin Matte
2013-06-07 8:21 ` Matthieu Moy
2013-06-06 19:34 ` [PATCH 10/18] Put long code into a submodule Célestin Matte
2013-06-07 4:01 ` Eric Sunshine
2013-06-07 4:51 ` Junio C Hamano
2013-06-06 19:34 ` [PATCH 11/18] Modify strings for a better coding-style Célestin Matte
2013-06-07 4:31 ` Eric Sunshine
2013-06-06 19:34 ` [PATCH 12/18] Brace file handles for print for more clarity Célestin Matte
2013-06-06 19:34 ` [PATCH 13/18] Remove "unless" statements and replace them by negated "if" statements Célestin Matte
2013-06-07 3:41 ` Eric Sunshine
2013-06-06 19:34 ` [PATCH 14/18] Don't use quotes for empty strings Célestin Matte
2013-06-06 19:34 ` [PATCH 15/18] Put non-trivial numeric values (e.g., different from 0, 1 and 2) in constants Célestin Matte
2013-06-06 19:34 ` [PATCH 16/18] Fix a typo ("mediwiki" instead of "mediawiki") Célestin Matte
2013-06-06 19:34 ` [PATCH 17/18] Place the open() call inside the do{} struct and prevent failing close Célestin Matte
2013-06-06 21:13 ` Junio C Hamano
2013-06-06 21:30 ` Célestin Matte [this message]
2013-06-06 21:58 ` Junio C Hamano
2013-06-06 22:16 ` Célestin Matte
2013-06-06 19:34 ` [PATCH 18/18] Clearly rewrite double dereference Célestin Matte
2013-06-07 4:04 ` Eric Sunshine
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=51B0FF75.9070506@ensimag.fr \
--to=celestin.matte@ensimag.fr \
--cc=benoit.person@ensimag.fr \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=matthieu.moy@grenoble-inp.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.