[PATCH] gitweb: Fix git_patchset_body not closing <div class="patch">
- From
Jakub Narebski <jnareb@gmail.com>
- Date
- Jan 9, 2007, 23:07 UTC
- Message-ID
- <11683840631010-git-send-email-jnareb@gmail.com>
- In-Reply-To
- <734286.71437.qm@web31814.mail.mud.yahoo.com>
Fix case when git_patchset_body didn't close <div class="patch">, for patchsets with last patch empty.
perlsyn(1): The "last" command immediately exits the loop in question. The "continue" block, if any, is not executed.
Remove some commented out code in git_patchset_body.
Signed-off-by: Jakub Narebski <jnareb@gmail.com> ---
Luben Tuikov wrote:
Show 19 quoted lines
> --- Jakub Narebski <jnareb@gmail.com> wrote: >> Jakub Narebski wrote: >>> Luben Tuikov wrote: >>> >>>> Ok, I see that Junio has committed the fixes to "next" -- thanks! >>>> That saved me time having to manually apply them. >>>> >>>> Now, the results are that I see the same bug. >>> >>> (The same bug = no closing div). >>> >>> I'll try to reproduce this. >> >> I failed to reproduce this error. >> >> Could you apply the following patch, and report the result of >> grep "</div>\|<div" | grep -v "<div.*</div> >> (find all opening and closing <div> elements, but omitting >> those which are opened and closed in the same line)?
[...]
Show 9 quoted lines
> <div class="patchset"> > <div class="patch" id="patch1"> > <div class="diff extended_header"> > </div><!-- diff extended_header --> > </div><!-- patch 0 --> > <div class="patch" id="patch2"> > <div class="diff extended_header"> > </div><!-- diff extended_header --> > </div><!-- patchset -->
[...]
> The bug is clear.
Oops. I'm bit new to Perl.
This should fix it.
gitweb/gitweb.perl | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index 25e5079..88af2e6 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -2412,7 +2412,6 @@ sub git_patchset_body { push @diff_header, $patch_line; } - #last PATCH unless $patch_line; my $last_patch_line = $patch_line; # check if current patch belong to current raw line @@ -2522,7 +2521,10 @@ sub git_patchset_body { # from-file/to-file diff header $patch_line = $last_patch_line; - last PATCH unless $patch_line; + if (! $patch_line) { + print "</div>\n"; # class="patch" + last PATCH; + } next PATCH if ($patch_line =~ m/^diff /); #assert($patch_line =~ m/^---/) if DEBUG; if ($from{'href'} && $patch_line =~ m!^--- "?a/!) { @@ -2533,7 +2535,6 @@ sub git_patchset_body { print "<div class=\"diff from_file\">$patch_line</div>\n"; $patch_line = <$fd>; - #last PATCH unless $patch_line; chomp $patch_line; #assert($patch_line =~ m/^+++/) if DEBUG;
-- 1.4.4.3