From b31f4ab67d4878f9d42feedeea417f963cff0611 Mon Sep 17 00:00:00 2001 From: Frank Lichtenheld Date: Mon, 11 Feb 2008 00:14:28 +0100 Subject: [PATCH] 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. --- scripts/Dpkg/Source/VCS/git.pm | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) 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; -- 2.39.5