diff options
author | Albert Ting <altlist@gmail.com> | 2016-05-13 21:17:07 +0200 |
---|---|---|
committer | Frédéric Buclin <LpSolit@gmail.com> | 2016-05-13 21:17:07 +0200 |
commit | 0748e8411232181e3a769a5f3a3b60ad98239777 (patch) | |
tree | b80d5370ceb9b139887647fd9f0961492f56a55b /Bugzilla | |
parent | ab99e8dc2ce17827247f49fa34a13ef30ff8e449 (diff) | |
download | bugzilla-0748e8411232181e3a769a5f3a3b60ad98239777.tar.gz bugzilla-0748e8411232181e3a769a5f3a3b60ad98239777.tar.xz |
Bug 1208947 - Comment links in markdown-based emails are incomplete
r=LpSolit
Diffstat (limited to 'Bugzilla')
-rw-r--r-- | Bugzilla/Markdown.pm | 24 | ||||
-rw-r--r-- | Bugzilla/Template.pm | 5 |
2 files changed, 12 insertions, 17 deletions
diff --git a/Bugzilla/Markdown.pm b/Bugzilla/Markdown.pm index a82e9f3e0..2951cd457 100644 --- a/Bugzilla/Markdown.pm +++ b/Bugzilla/Markdown.pm @@ -55,33 +55,27 @@ $g_escape_table{'<'} = md5_hex('<'); sub new { my $invocant = shift; my $class = ref $invocant || $invocant; - return $class->SUPER::new(tab_width => MARKDOWN_TAB_WIDTH, + my $obj = $class->SUPER::new(tab_width => MARKDOWN_TAB_WIDTH, # Bugzilla uses HTML not XHTML empty_element_suffix => '>'); + $obj->{tab_width} = MARKDOWN_TAB_WIDTH; + $obj->{empty_element_suffix} = '>'; + return $obj; } sub markdown { - my $self = shift; - my $text = shift; + my ($self, $text, $bug, $comment) = @_; my $user = Bugzilla->user; if ($user->settings->{use_markdown}->{is_enabled} && $user->setting('use_markdown') eq 'on') { - return $self->SUPER::markdown($text, @_); + $text = $self->_removeFencedCodeBlocks($text); + $text = Bugzilla::Template::quoteUrls($text, $bug, $comment, $user, 1); + return $self->SUPER::markdown($text); } - return Bugzilla::Template::quoteUrls($text); -} - -sub _Markdown { - my $self = shift; - my $text = shift; - - $text = $self->_removeFencedCodeBlocks($text); - $text = Bugzilla::Template::quoteUrls($text, undef, undef, undef, 1); - - return $self->SUPER::_Markdown($text, @_); + return Bugzilla::Template::quoteUrls($text, $bug, $comment, $user); } sub _code_blocks { diff --git a/Bugzilla/Template.pm b/Bugzilla/Template.pm index ada5c389c..49294244a 100644 --- a/Bugzilla/Template.pm +++ b/Bugzilla/Template.pm @@ -163,7 +163,8 @@ sub quoteUrls { # If the comment is already wrapped, we should ignore newlines when # looking for matching regexps. Else we should take them into account. - my $s = ($comment && $comment->already_wrapped) ? qr/\s/ : qr/\h/; + # And confirm comment is an object, it could be a hash from WebService::Bug::render_comment + my $s = ($comment && ref($comment) eq 'Bugzilla::Comment' && $comment->already_wrapped) ? qr/\s/ : qr/\h/; # However, note that adding the title (for buglinks) can affect things # In particular, attachment matches go before bug titles, so that titles @@ -827,7 +828,7 @@ sub create { && ((ref($comment) eq 'HASH' && $comment->{is_markdown}) || (ref($comment) eq 'Bugzilla::Comment' && $comment->is_markdown))) { - return Bugzilla->markdown->markdown($text); + return Bugzilla->markdown->markdown($text, $bug, $comment); } return quoteUrls($text, $bug, $comment, $user); }; |