summaryrefslogtreecommitdiffstats
path: root/Bugzilla
diff options
context:
space:
mode:
authorAlbert Ting <altlist@gmail.com>2016-05-13 21:17:07 +0200
committerFrédéric Buclin <LpSolit@gmail.com>2016-05-13 21:17:07 +0200
commit0748e8411232181e3a769a5f3a3b60ad98239777 (patch)
treeb80d5370ceb9b139887647fd9f0961492f56a55b /Bugzilla
parentab99e8dc2ce17827247f49fa34a13ef30ff8e449 (diff)
downloadbugzilla-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.pm24
-rw-r--r--Bugzilla/Template.pm5
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{'&lt;'} = md5_hex('&lt;');
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);
};