fix indentation & whitespace
[ikiwiki.git] / IkiWiki / Plugin / bzr.pm
index 8830073672663b77d2e21fb837a15a913b7b6c0d..6e45c39e44ccefaa37851ea6a0b604362167c437 100644 (file)
@@ -36,6 +36,7 @@ sub getsetup () {
                plugin => {
                        safe => 0, # rcs plugin
                        rebuild => undef,
+                       section => "rcs",
                },
                bzr_wrapper => {
                        type => "string",
@@ -72,29 +73,39 @@ sub bzr_log ($) {
        my @infos = ();
        my $key = undef;
 
+       my $hash = {};
        while (<$out>) {
                my $line = $_;
                my ($value);
                if ($line =~ /^message:/) {
                        $key = "message";
-                       $infos[$#infos]{$key} = "";
+                       $$hash{$key} = "";
                }
                elsif ($line =~ /^(modified|added|renamed|renamed and modified|removed):/) {
                        $key = "files";
-                       unless (defined($infos[$#infos]{$key})) { $infos[$#infos]{$key} = ""; }
+                       unless (defined($$hash{$key})) { $$hash{$key} = ""; }
                }
                elsif (defined($key) and $line =~ /^  (.*)/) {
-                       $infos[$#infos]{$key} .= "$1\n";
+                       $$hash{$key} .= "$1\n";
                }
                elsif ($line eq "------------------------------------------------------------\n") {
+                       if (keys %$hash) {
+                               push (@infos, $hash);
+                       }
+                       $hash = {};
                        $key = undef;
-                       push (@infos, {});
                }
-               else {
+               elsif ($line =~ /: /) {
                        chomp $line;
+                       if ($line =~ /^revno: (\d+)/) {
+                           $key = "revno";
+                           $value = $1;
+                       }
+                       else {
                                ($key, $value) = split /: +/, $line, 2;
-                       $infos[$#infos]{$key} = $value;
-               } 
+                       }
+                       $$hash{$key} = $value;
+               }
        }
        close $out;
 
@@ -212,7 +223,7 @@ sub rcs_recentchanges ($) {
        foreach my $info (bzr_log($out)) {
                my @pages = ();
                my @message = ();
-        
+
                foreach my $msgline (split(/\n/, $info->{message})) {
                        push @message, { line => $msgline };
                }