Re: [PATCH] gitweb: Fix git_patchset_body not closing <div class="patch">
--- Jakub Narebski <jnareb@gmail.com> wrote:
Show 10 quoted lines
> 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>
Acked-by: Luben Tuikov <ltuikov@yahoo.com>
This patch fixes it.
Luben
Show 79 quoted lines
> ---
>
> Luben Tuikov wrote:
> > --- 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)?
>
> [...]
> > <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
>
>