Commit 0748e841 authored by Albert Ting's avatar Albert Ting Committed by Frédéric Buclin

Bug 1208947 - Comment links in markdown-based emails are incomplete

r=LpSolit
parent ab99e8dc
...@@ -55,33 +55,27 @@ $g_escape_table{'<'} = md5_hex('<'); ...@@ -55,33 +55,27 @@ $g_escape_table{'<'} = md5_hex('<');
sub new { sub new {
my $invocant = shift; my $invocant = shift;
my $class = ref $invocant || $invocant; 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 # Bugzilla uses HTML not XHTML
empty_element_suffix => '>'); empty_element_suffix => '>');
$obj->{tab_width} = MARKDOWN_TAB_WIDTH;
$obj->{empty_element_suffix} = '>';
return $obj;
} }
sub markdown { sub markdown {
my $self = shift; my ($self, $text, $bug, $comment) = @_;
my $text = shift;
my $user = Bugzilla->user; my $user = Bugzilla->user;
if ($user->settings->{use_markdown}->{is_enabled} if ($user->settings->{use_markdown}->{is_enabled}
&& $user->setting('use_markdown') eq 'on') && $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); return Bugzilla::Template::quoteUrls($text, $bug, $comment, $user);
}
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, @_);
} }
sub _code_blocks { sub _code_blocks {
......
...@@ -163,7 +163,8 @@ sub quoteUrls { ...@@ -163,7 +163,8 @@ sub quoteUrls {
# If the comment is already wrapped, we should ignore newlines when # If the comment is already wrapped, we should ignore newlines when
# looking for matching regexps. Else we should take them into account. # 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 # However, note that adding the title (for buglinks) can affect things
# In particular, attachment matches go before bug titles, so that titles # In particular, attachment matches go before bug titles, so that titles
...@@ -827,7 +828,7 @@ sub create { ...@@ -827,7 +828,7 @@ sub create {
&& ((ref($comment) eq 'HASH' && $comment->{is_markdown}) && ((ref($comment) eq 'HASH' && $comment->{is_markdown})
|| (ref($comment) eq 'Bugzilla::Comment' && $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); return quoteUrls($text, $bug, $comment, $user);
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment