From 0344b168276f80189e2254c75a762aff5b517b6b Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Sun, 22 May 2016 06:32:57 -0400
Subject: [PATCH] Fix priority icon(s) position
---
program/lib/Roundcube/rcube_text2html.php | 35 ++++++++++++++++-------------------
1 files changed, 16 insertions(+), 19 deletions(-)
diff --git a/program/lib/Roundcube/rcube_text2html.php b/program/lib/Roundcube/rcube_text2html.php
index 2ffe530..73e8b78 100644
--- a/program/lib/Roundcube/rcube_text2html.php
+++ b/program/lib/Roundcube/rcube_text2html.php
@@ -1,6 +1,6 @@
<?php
-/*
+/**
+-----------------------------------------------------------------------+
| This file is part of the Roundcube Webmail client |
| Copyright (C) 2008-2014, The Roundcube Dev Team |
@@ -46,10 +46,6 @@
protected $config = array(
// non-breaking space
'space' => "\xC2\xA0",
- // word-joiner (zero-width no-break space)
- // 'wordjoiner' => "\xEF\xBB\xBF", // U+2060
- // use deprecated U+FEFF character because of webkit issue with displaying U+2060 (#1490353)
- 'wordjoiner' => "\xEF\xBB\xBF", // U+FEFF
// enables format=flowed parser
'flowed' => false,
// enables wrapping for non-flowed text
@@ -63,6 +59,9 @@
'links' => true,
// string replacer class
'replacer' => 'rcube_string_replacer',
+ // prefix and suffix of unwrappable line
+ 'nobr_start' => '<span style="white-space:nowrap">',
+ 'nobr_end' => '</span>',
);
@@ -271,6 +270,10 @@
if (empty($table)) {
$table = get_html_translation_table(HTML_SPECIALCHARS);
unset($table['?']);
+
+ // replace some whitespace characters
+ $table["\r"] = '';
+ $table["\t"] = ' ';
}
// skip signature separator
@@ -278,14 +281,10 @@
return '--' . $this->config['space'];
}
- // replace HTML special characters
+ // replace HTML special and whitespace characters
$text = strtr($text, $table);
$nbsp = $this->config['space'];
- $nobr = $this->config['wordjoiner'];
-
- // replace some whitespace characters
- $text = str_replace(array("\r", "\t"), array('', ' '), $text);
// replace spaces with non-breaking spaces
if ($is_flowed) {
@@ -304,15 +303,13 @@
$text = $copy;
}
- // make the whole line non-breakable
- else {
- $repl = array(
- ' ' => $nbsp,
- '-' => $nobr . '-' . $nobr,
- '/' => $nobr . '/',
- );
-
- $text = str_replace(array_keys($repl), array_values($repl), $text);
+ // make the whole line non-breakable if needed
+ else if ($text !== '' && preg_match('/[^a-zA-Z0-9_]/', $text)) {
+ // use non-breakable spaces to correctly display
+ // trailing/leading spaces and multi-space inside
+ $text = str_replace(' ', $nbsp, $text);
+ // wrap in nobr element, so it's not wrapped on e.g. - or /
+ $text = $this->config['nobr_start'] . $text . $this->config['nobr_end'];
}
return $text;
--
Gitblit v1.9.1