From c3a80dac1d72d295bd367fec10682f9c450d9a6b Mon Sep 17 00:00:00 2001 From: fidian Date: Mon, 21 May 2001 14:03:07 +0000 Subject: [PATCH] * Nic Bernstein (nic) provided a patch to fix the HTML version by default. I modified it a bit, but the credit goes to him for finding the bug. SourceForge patch #419616 git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@1387 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- functions/mime.php | 66 +++++++++++++++++++++++----------------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/functions/mime.php b/functions/mime.php index b40a1c26..8c4c5dd0 100644 --- a/functions/mime.php +++ b/functions/mime.php @@ -483,48 +483,48 @@ // figures out what entity to display and returns the $message object // for that entity. - function findDisplayEntity ($message, $textOnly = 1, $next = 'none') + function findDisplayEntity ($message, $textOnly = 1) { global $show_html_default; if (! $message) return 0; + if ($message->header->type0 == "multipart" && + $message->header->type1 == "alternative" && + $show_html_default && ! $textOnly) { + $entity = findDisplayEntityHTML($message); + if ($entity != 0) + return $entity; + } + // Show text/plain or text/html -- the first one we find. if ($message->header->type0 == 'text' && ($message->header->type1 == 'plain' || - $message->header->type1 == 'html')) - { - // If the next part is an HTML version, this will - // all be true. Show it, if the user so desires. - // HTML mails this way all have entity_id of 2. 1 = text/plain - if ($next != 'none' && - $textOnly == 0 && - $next->header->type0 == "text" && - $next->header->type1 == "html" && - ($next->header->entity_id == 2 || - $next->header->entity_id == 1.2) && - $message->header->type1 == "plain" && - isset($show_html_default) && - $show_html_default) - $message = $next; - - if (isset($message->header->entity_id)) - return $message->header->entity_id; - } - else - { - for ($i=0; isset($message->entities[$i]); $i++) - { - $next = 'none'; - if (isset($message->entities[$i + 1])) - $next = $message->entities[$i + 1]; - $entity = findDisplayEntity($message->entities[$i], - $textOnly, $next); - if ($entity != 0) - return $entity; - } - } + $message->header->type1 == 'html') && + isset($message->header->entity_id)) + return $message->header->entity_id; + + for ($i=0; isset($message->entities[$i]); $i++) { + $entity = findDisplayEntity($message->entities[$i], $textOnly); + if ($entity != 0) + return $entity; + } + + return 0; + } + + // Shows the HTML version + function findDisplayEntityHTML ($message) { + if ($message->header->type0 == 'text' && + $message->header->type1 == 'html' && + isset($message->header->entity_id)) + return $message->header->entity_id; + for ($i = 0; isset($message->entities[$i]); $i ++) { + $entity = findDisplayEntityHTML($message->entities[$i]); + if ($entity != 0) + return $entity; + } return 0; } -- 2.25.1