$senderAddress = _("To:") . ' ' . $senderAddress;
}
- if ( $truncate_sender > 0 && strlen($senderName) > $truncate_sender ) {
- $senderName = substr_replace($senderName, '... ', $truncate_sender);
- }
+ if ($truncate_sender > 0)
+ $senderName = truncateWithEntities($senderName, $truncate_sender);
echo html_tag( 'tr','','','','VALIGN="top"') . "\n";
return ($result);
}
-function processSubject($subject, $threadlevel = 0) {
- global $languages, $squirrelmail_language;
- /* Shouldn't ever happen -- caught too many times in the IMAP functions */
- if ($subject == '') {
- return _("(no subject)");
- }
-
- $trim_at = SUBJ_TRIM_AT;
-
- /* if this is threaded, subtract two chars per indentlevel */
- if($threadlevel > 0 && $threadlevel <= 10) {
- $trim_at -= (2*$threadlevel);
- }
-
- if (strlen($subject) <= $trim_at) {
+function truncateWithEntities($subject, $trim_at)
+{
+ if (($trim_at == 0) || (strlen($subject) <= $trim_at))
return $subject;
- }
+
+ global $languages, $squirrelmail_language;
$ent_strlen = $orig_len = strlen($subject);
$trim_val = $trim_at - 5;
* see if this is entities-encoded string
* If so, Iterate through the whole string, find out
* the real number of characters, and if more
- * than 55, substr with an updated trim value.
+ * than $trim_at, substr with an updated trim value.
*/
$step = $ent_loc = 0;
while ( $ent_loc < $trim_val && (($ent_loc = strpos($subject, '&', $ent_offset)) !== false) &&
++$step;
}
- if (($trim_val > 50) && (strlen($subject) > ($trim_val))&& (strpos($subject,';',$trim_val) < ($trim_val +6))) {
+ if (($trim_val > ($trim_at - 5)) && (strlen($subject) > ($trim_val))&& (strpos($subject,';',$trim_val) < ($trim_val +6))) {
$i = strpos($subject,';',$trim_val);
if ($i) {
$trim_val = strpos($subject,';',$trim_val);
}
// only print '...' when we're actually dropping part of the subject
- if(strlen($subject) <= $trim_val) {
+ if (strlen($subject) <= $trim_val) {
return $subject;
} else {
- return substr($subject, 0, $trim_val) . '...';
+// return substr($subject, 0, $trim_val) . '...';
+ return substr_replace($subject, '...', $trim_val);
}
}
+function processSubject($subject, $threadlevel = 0) {
+ /* Shouldn't ever happen -- caught too many times in the IMAP functions */
+ if ($subject == '') {
+ return _("(no subject)");
+ }
+
+ $trim_at = SUBJ_TRIM_AT;
+
+ /* if this is threaded, subtract two chars per indentlevel */
+ if (($threadlevel > 0) && ($threadlevel <= 10))
+ $trim_at -= (2*$threadlevel);
+
+ return truncateWithEntities($subject, $trim_at);
+}
+
function getMbxList($imapConnection, $boxes = 0) {
global $lastTargetMailbox;
echo ' <small> <tt><select name="targetMailbox">';