The following commit has been merged in the sourcev3 branch:
commit b31f4ab67d4878f9d42feedeea417f963cff0611
Author: Frank Lichtenheld <[EMAIL PROTECTED]>
Date:   Mon Feb 11 00:14:28 2008 +0100

    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 6867828..9caf241 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 (<GIT_CONFIG>) {
-               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;

-- 
dpkg's main repository


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to