Module: tools Branch: master Commit: a5ffe4fb09403bb2cb1e1ac9dc12cdc4081b4682 URL: http://source.winehq.org/git/tools.git/?a=commit;h=a5ffe4fb09403bb2cb1e1ac9d...
Author: Alexandre Julliard julliard@winehq.org Date: Wed Nov 8 10:19:30 2017 +0100
patches: Determine signoff information automatically from the patch replies.
Signed-off-by: Alexandre Julliard julliard@winehq.org
---
patches/update | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-)
diff --git a/patches/update b/patches/update index 9e12c4b..87e640d 100755 --- a/patches/update +++ b/patches/update @@ -99,6 +99,12 @@ sub format_author($) return $str; }
+sub uniq +{ + my %seen; + return grep { !$seen{$_}++ } @_; +} + my $js = <<END; function toggle_display(id) { @@ -185,16 +191,6 @@ foreach my $file (readdir DIR) $patch{"review"} = format_author($_); close REVIEW; } - if (open SIGNOFF, "<:raw", "$dir/$file.signoff") - { - while (<SIGNOFF>) - { - chomp; - utf8::decode($_); - push @{$patch{"signoff"}}, format_author($_); - } - close SIGNOFF; - } $patch{"testbot"} = ""; $patch{"testjob"} = ""; $patch{"testurl"} = ""; @@ -243,6 +239,7 @@ foreach my $file (sort keys %patches) # add it to the parent's children and remove it from the list $patch->{"parent"} = $parent; push @{$parent->{"children"}}, $patch; + push @{$parent->{"signoff"}}, @{$patch->{"signoff"}} if $patch->{"signoff"}; delete $patches{$file}; }
@@ -271,9 +268,10 @@ foreach my $file (sort { $patches{$b}->{"order"} <=> $patches{$a}->{"order"} } k { printf INDEX "<td></td>"; } - if (defined($patch->{"signoff"})) + my @signoff = defined($patch->{"signoff"}) ? uniq( @{$patch->{"signoff"}} ) : (); + if (@signoff) { - printf INDEX "<td class="checkmark" onclick="toggle_display('$file.signoff')">%s</td>", "✓" x @{$patch->{"signoff"}}; + printf INDEX "<td class="checkmark" onclick="toggle_display('$file.signoff')">%s</td>", "✓" x @signoff; } else { @@ -298,11 +296,11 @@ foreach my $file (sort { $patches{$b}->{"order"} <=> $patches{$a}->{"order"} } k print INDEX "<td></td>"; } print INDEX "</tr>\n"; - if (defined($patch->{"signoff"})) + if (@signoff) { printf INDEX "<tr class="%s" id="$file.signoff" style="display: none;" onclick="toggle_display('$file.signoff')">" . "<td colspan="5" /><td colspan="4" class="signoffextra author">%s</td></tr>\n", - $row & 1 ? "odd" : "even", join("", map { "Signed-off-by: " . escapeHTML($_) . "<br/>"; } @{$patch->{"signoff"}}); + $row & 1 ? "odd" : "even", join("", map { "Signed-off-by: " . escapeHTML($_) . "<br/>"; } @signoff ); } foreach my $child (@{$patch->{"children"}}) {