Junio C Hamano <gits...@pobox.com> writes:

> Otherwise, looks almost ready to me.

For now, I've queued this as a minimum fix-up on top of your patch
and pushed the result out.  It is an equivalent of the previous
review comments in a patch form.  Please review and incorporate in
your reroll as appropriate.

I haven't looked at the part that interacts with the credential
subsystem itself, though.

 contrib/credential/netrc/git-credential-netrc | 35 ++++++++++++---------------
 1 file changed, 16 insertions(+), 19 deletions(-)

diff --git a/contrib/credential/netrc/git-credential-netrc 
b/contrib/credential/netrc/git-credential-netrc
index 8298564..30e05fb 100755
--- a/contrib/credential/netrc/git-credential-netrc
+++ b/contrib/credential/netrc/git-credential-netrc
@@ -74,6 +74,10 @@ Options:
                        first matching entry found is returned via the 
credential
                        helper protocol (see below).
 
+                       When no -f option is given, .authinfo.gpg, .netrc.gpg,
+                      .authinfo, and .netrc files in your home directory are 
used
+                      in this order.
+
   -k|--insecure      : ignore bad file ownership or permissions
 
   -d|--debug         : turn on debugging (developer info)
@@ -206,8 +210,7 @@ foreach my $file (@$files) {
        unless (scalar @entries) {
                if ($!) {
                        log_verbose("Unable to open $file: $!");
-               }
-               else {
+               } else {
                        log_verbose("No netrc entries found in $file");
                }
 
@@ -230,15 +233,10 @@ sub load_netrc {
 
        my $io;
        if ($gpgmode) {
-               # typical shell character escapes from 
http://www.slac.stanford.edu/slac/www/resource/how-to-use/cgi-rexx/cgi-esc.html
-               my $f = $file;
-               $f =~ s/([;<>\*\|`&\$!#\(\)\[\]\{\}:'"])/\\$1/g;
-               # GPG doesn't work well with 2- or 3-argument open
-               my $cmd = "gpg --decrypt $f";
-               log_verbose("Using GPG to open $file: [$cmd]");
-               open $io, "$cmd|";
-       }
-       else {
+               my @cmd = (qw(gpg --decrypt), $file)
+               log_verbose("Using GPG to open $file: [@cmd]");
+               open $io, "-|", @cmd;
+       } else {
                log_verbose("Opening $file...");
                open $io, '<', $file;
        }
@@ -257,6 +255,9 @@ sub load_netrc {
                my %entry;
                my $num_port;
 
+               if (!defined $nentry->{machine}) {
+                       next;
+               }
                if (defined $nentry->{port} && $nentry->{port} =~ m/^\d+$/) {
                        $num_port = $nentry->{port};
                        delete $nentry->{port};
@@ -302,8 +303,7 @@ sub net_netrc_loader {
                while (@tok) {
                        if ($tok[0] eq "default") {
                                shift(@tok);
-                               undef $mach; # ignore 'default' lines
-
+                               $mach = { machine => undef }
                                next TOKEN;
                        }
 
@@ -313,8 +313,7 @@ sub net_netrc_loader {
                                my $host = shift @tok;
                                $mach = { machine => $host };
                                push @entries, $mach;
-                       }
-                       elsif (exists $options{tmap}->{$tok}) {
+                       } elsif (exists $options{tmap}->{$tok}) {
                                unless ($mach) {
                                        log_debug("Skipping token $tok because 
no machine was given");
                                        next TOKEN;
@@ -329,8 +328,7 @@ sub net_netrc_loader {
                                # Following line added by rmerrell to remove 
'/' escape char in .netrc
                                $value =~ s/\/\\/\\/g;
                                $mach->{$tok} = $value;
-                       }
-                       elsif ($tok eq "macdef") { # we ignore macros
+                       } elsif ($tok eq "macdef") { # we ignore macros
                                next TOKEN unless $mach;
                                my $value = shift @tok;
                                $macdef = 1;
@@ -380,8 +378,7 @@ sub find_netrc_entry {
                                unless ($query->{$check} eq $entry->{$check}) {
                                        next ENTRY;
                                }
-                       }
-                       else {
+                       } else {
                                log_debug("OK: any value satisfies check 
$check");
                        }
                }
-- 
1.8.1.2.641.g0b90ac4

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to