From: Frank Lichtenheld Date: Sun, 10 Feb 2008 23:14:28 +0000 (+0100) Subject: Dpkg::Source::VCS::git: simplify read_git_config X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b31f4ab67d4878f9d42feedeea417f963cff0611;p=dpkg Dpkg::Source::VCS::git: simplify read_git_config * scripts/Dpkg/Source/VCS/git.pm(read_git_config): Simplify by setting $/ = "\0" instead of splitting on \n, which separates keys and values, but can also occour in the values themself. --- diff --git a/scripts/Dpkg/Source/VCS/git.pm b/scripts/Dpkg/Source/VCS/git.pm index 68678289..9caf2410 100644 --- a/scripts/Dpkg/Source/VCS/git.pm +++ b/scripts/Dpkg/Source/VCS/git.pm @@ -81,26 +81,11 @@ sub read_git_config { my %ret; open(GIT_CONFIG, '-|', "git", "config", "--file", $file, "--null", "-l") || subprocerr("git config"); - my ($key, $value); + local $/ = "\0"; while () { - if (! defined $key) { - $key=$_; - chomp $key; - $value=""; - } - elsif (/(.*)\0(.*)/) { - $value.=$1; - push @{$ret{$key}}, $value; - $key=$2; - chomp $key; - $value=""; - } - else { - $value.=$1; - } - } - if (defined $key && length $key) { - push @{$ret{$key}}, $value; + chomp; + my ($key, $value) = split(/\n/, $_, 2); + push @{$ret{$key}}, $value; } close(GIT_CONFIG) || syserr(_g("git config exited nonzero")); @@ -244,7 +229,11 @@ sub post_unpack_tar { print GIT_CONFIG "\n# "._g("The following setting(s) were disabled by dpkg-source").":\n"; foreach my $field (sort keys %config) { foreach my $value (@{$config{$field}}) { + if (defined($value)) { print GIT_CONFIG "# $field=$value\n"; + } else { + print GIT_CONFIG "# $field\n"; + } } } close GIT_CONFIG;