+ my ($value);
+ if ($line =~ /^message:/) {
+ $key = "message";
+ $infos[$#infos]{$key} = "";
+ } elsif ($line =~ /^(modified|added|renamed|renamed and modified|removed):/) {
+ $key = "files";
+ unless (defined($infos[$#infos]{$key})) { $infos[$#infos]{$key} = ""; }
+ } elsif (defined($key) and $line =~ /^ (.*)/) {
+ $infos[$#infos]{$key} .= $1;
+ } elsif ($line eq "------------------------------------------------------------\n") {
+ $key = undef;
+ push (@infos, {});
+ } else {
+ chomp $line;
+ ($key, $value) = split /: +/, $line, 2;