MDL-30741 Fix the handling of PRE tags with the latest code from upstream: http://trac.roundcube.net/browser/trunk/roundcubemail/program/lib/html2text.php?rev=5497
This commit is contained in:
+20
-3
@@ -543,9 +543,15 @@ class html2text
|
||||
*/
|
||||
function _convert_pre(&$text)
|
||||
{
|
||||
while(preg_match('/<pre[^>]*>(.*)<\/pre>/ismU', $text, $matches)) {
|
||||
$result = preg_replace($this->pre_search, $this->pre_replace, $matches[1]);
|
||||
$text = preg_replace('/<pre[^>]*>.*<\/pre>/ismU', '<div><br>' . $result . '<br></div>', $text, 1);
|
||||
while (preg_match('/<pre[^>]*>(.*)<\/pre>/ismU', $text, $matches)) {
|
||||
// convert the content
|
||||
$this->pre_content = sprintf('<div><br>%s<br></div>',
|
||||
preg_replace($this->pre_search, $this->pre_replace, $matches[1]));
|
||||
// replace the content (use callback because content can contain $0 variable)
|
||||
$text = preg_replace_callback('/<pre[^>]*>.*<\/pre>/ismU',
|
||||
array('html2text', '_preg_pre_callback'), $text, 1);
|
||||
// free memory
|
||||
$this->pre_content = '';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -573,6 +579,17 @@ class html2text
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback function for preg_replace_callback use in PRE content handler.
|
||||
*
|
||||
* @param array PREG matches
|
||||
* @return string
|
||||
*/
|
||||
private function _preg_pre_callback($matches)
|
||||
{
|
||||
return $this->pre_content;
|
||||
}
|
||||
|
||||
/**
|
||||
* Strtoupper multibyte wrapper function
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user