From: Seth E. R. <ind...@us...> - 2002-08-30 17:55:29
|
Update of /cvsroot/squirrelmail/squirrelmail/functions In directory usw-pr-cvs1:/tmp/cvs-serv30975 Modified Files: mime.php Log Message: Formatting changes and added some more html->plain transforms. Index: mime.php =================================================================== RCS file: /cvsroot/squirrelmail/squirrelmail/functions/mime.php,v retrieving revision 1.231 retrieving revision 1.232 diff -u -w -r1.231 -r1.232 --- mime.php 29 Aug 2002 23:42:46 -0000 1.231 +++ mime.php 30 Aug 2002 17:55:25 -0000 1.232 @@ -26,10 +26,10 @@ function mime_structure ($bodystructure, $flags=array()) { - // isolate the body structure and remove beginning and end parenthesis + /* Isolate the body structure and remove beginning and end parenthesis. */ $read = trim(substr ($bodystructure, strpos(strtolower($bodystructure), 'bodystructure') + 13)); - $msg =& new Message(); $read = trim(substr ($read, 0, -1)); + $msg =& new Message(); $res = $msg->parseStructure($read); $msg = $res[0]; if (!is_object($msg)) { @@ -81,10 +81,10 @@ } } // listEntities($msg); - return( $msg ); + return $msg; } -/* this starts the parsing of a particular structure. It is called recursively, +/* This starts the parsing of a particular structure. It is called recursively, * so it can be passed different structures. It returns an object of type * $message. * First, it checks to see if it is a multipart message. If it is, then it @@ -95,8 +95,7 @@ function mime_fetch_body($imap_stream, $id, $ent_id) { global $uid_support; - /* - * do a bit of error correction. If we couldn't find the entity id, just guess + /* Do a bit of error correction. If we couldn't find the entity id, just guess * that it is the first one. That is usually the case anyway. */ if (!$ent_id) { @@ -107,15 +106,13 @@ $data = sqimap_run_command ($imap_stream, $cmd, true, $response, $message, $uid_support); do { $topline = trim(array_shift( $data )); - } while( $topline && $topline[0] == '*' && !preg_match( '/\* [0-9]+ FETCH.*/i', $topline )) ; + } while($topline && ($topline[0] == '*') && !preg_match('/\* [0-9]+ FETCH.*/i', $topline)) ; $wholemessage = implode('', $data); if (ereg('\\{([^\\}]*)\\}', $topline, $regs)) { - $ret = substr( $wholemessage, 0, $regs[1] ); - /* - There is some information in the content info header that could be important - in order to parse html messages. Let's get them here. + /* There is some information in the content info header that could be important + * in order to parse html messages. Let's get them here. */ if ( $ret{0} == '<' ) { $data = sqimap_run_command ($imap_stream, "FETCH $id BODY[$ent_id.MIME]", true, $response, $message, $uid_support); @@ -124,11 +121,11 @@ $ret = $regs[1]; } else { global $where, $what, $mailbox, $passed_id, $startMessage; - $par = 'mailbox=' . urlencode($mailbox) . "&passed_id=$passed_id"; + $par = 'mailbox=' . urlencode($mailbox) . '&passed_id=' . $passed_id; if (isset($where) && isset($what)) { - $par .= '&where='. urlencode($where) . "&what=" . urlencode($what); + $par .= '&where=' . urlencode($where) . '&what=' . urlencode($what); } else { - $par .= "&startMessage=$startMessage&show_more=0"; + $par .= '&startMessage=' . $startMessage . '&show_more=0'; } $par .= '&response=' . urlencode($response) . '&message=' . urlencode($message). @@ -153,22 +150,24 @@ $ret = $wholemessage; } - return( $ret ); + return $ret; } function mime_print_body_lines ($imap_stream, $id, $ent_id, $encoding) { global $uid_support; - // do a bit of error correction. If we couldn't find the entity id, just guess - // that it is the first one. That is usually the case anyway. + /* Do a bit of error correction. If we couldn't find the entity id, just guess + * that it is the first one. That is usually the case anyway. + */ if (!$ent_id) { $ent_id = 1; } $sid = sqimap_session_id($uid_support); - // Don't kill the connection if the browser is over a dialup - // and it would take over 30 seconds to download it. + /* Don't kill the connection if the browser is over a dialup + * and it would take over 30 seconds to download it. + * Don´t call set_time_limit in safe mode. + */ - // don´t call set_time_limit in safe mode. - if (!ini_get("safe_mode")) { + if (!ini_get('safe_mode')) { set_time_limit(0); } if ($uid_support) { @@ -211,9 +210,9 @@ /* -[ END MIME DECODING ]----------------------------------------------------------- */ -// This is here for debugging purposese. It will print out a list -// of all the entity IDs that are in the $message object. - +/* This is here for debugging purposes. It will print out a list + * of all the entity IDs that are in the $message object. + */ function listEntities ($message) { if ($message) { echo "<tt>" . $message->entity_id . ' : ' . $message->type0 . '/' . $message->type1 . ' parent = '. $message->parent->entity_id. '<br>'; @@ -233,19 +232,19 @@ $priority_level = substr($priority,0,1); switch($priority_level) { - /* check for a higher then normal priority. */ + /* Check for a higher then normal priority. */ case '1': case '2': $priority_string = _("High"); break; - /* check for a lower then normal priority. */ + /* Check for a lower then normal priority. */ case '4': case '5': $priority_string = _("Low"); break; - /* check for a normal priority. */ + /* Check for a normal priority. */ case '3': default: $priority_level = '3'; @@ -261,8 +260,7 @@ return $message->getEntity($ent_id); } -/* - * translateText +/* translateText * Extracted from strings.php 23/03/2002 */ @@ -273,7 +271,6 @@ require_once('../functions/url_parser.php'); $body_ary = explode("\n", $body); - $PriorQuotes = 0; for ($i=0; $i < count($body_ary); $i++) { $line = $body_ary[$i]; if (strlen($line) - 2 >= $wrap_at) { @@ -284,7 +281,7 @@ parseUrl ($line); - $Quotes = 0; + $quotes = 0; $pos = 0; $j = strlen( $line ); @@ -293,18 +290,18 @@ $pos ++; } else if (strpos($line, '>', $pos) === $pos) { $pos += 4; - $Quotes ++; + $quotes++; } else { break; } } - if ($Quotes > 1) { + if ($quotes > 1) { if (! isset($color[14])) { $color[14] = '#FF0000'; } $line = '<FONT COLOR="' . $color[14] . '">' . $line . '</FONT>'; - } elseif ($Quotes) { + } elseif ($quotes) { if (! isset($color[13])) { $color[13] = '#800000'; } @@ -318,14 +315,15 @@ /* This returns a parsed string called $body. That string can then -be displayed as the actual message in the HTML. It contains -everything needed, including HTML Tags, Attachments at the -bottom, etc. + * be displayed as the actual message in the HTML. It contains + * everything needed, including HTML Tags, Attachments at the + * bottom, etc. */ function formatBody($imap_stream, $message, $color, $wrap_at, $ent_num, $id, $mailbox='INBOX') { - // this if statement checks for the entity to show as the - // primary message. To add more of them, just put them in the - // order that is their priority. + /* This if statement checks for the entity to show as the + * primary message. To add more of them, just put them in the + * order that is their priority. + */ global $startMessage, $username, $key, $imapServerAddress, $imapPort, $show_html_default, $has_unsafe_images, $view_unsafe_images, $sort; @@ -340,16 +338,21 @@ $hookResults = do_hook("message_body", $body); $body = $hookResults[1]; - // If there are other types that shouldn't be formatted, add - // them here + /* If there are other types that shouldn't be formatted, add + * them here. + */ if ($body_message->header->type1 == 'html') { if ( $show_html_default <> 1 ) { $entity_conv = array(' ' => ' ', + '<p>' => "\n", + '<br>' => "\n", + '<P>' => "\n", + '<BR>' => "\n", '>' => '>', '<' => '<'); - $body = strip_tags( $body ); $body = strtr($body, $entity_conv); + $body = strip_tags($body); $body = trim($body); translateText($body, $wrap_at, $body_message->header->getParameter('charset')); @@ -363,13 +366,17 @@ if ($has_unsafe_images) { if ($view_unsafe_images) { - $body .= "<CENTER><SMALL><A HREF=\"read_body.php?passed_id=$id&passed_ent_id=".$message->entity_id."&mailbox=$urlmailbox&sort=$sort&startMessage=$startMessage&show_more=0\">". _("Hide Unsafe Images") ."</A></SMALL></CENTER><BR>\n"; + $untext = '">' . _("Hide Unsafe Images"); } else { - $body .= "<CENTER><SMALL><A HREF=\"read_body.php?passed_id=$id&passed_ent_id=".$message->entity_id."&mailbox=$urlmailbox&sort=$sort&startMessage=$startMessage&show_more=0&view_unsafe_images=1\">". _("View Unsafe Images") ."</A></SMALL></CENTER><BR>\n"; + $untext = '&view_unsafe_images=1">' . _("View Unsafe Images"); } + $body .= '<center><small><a href="read_body.php?passed_id=' . $id . + '&passed_ent_id=' . $message->entity_id . '&mailbox=' . $urlmailbox . + '&sort=' . $sort . '&startMessage=' . $startMessage . '&show_more=0' . + $untext . '</a></small></center><br>' . "\n"; } } - return ($body); + return $body; } @@ -391,8 +398,8 @@ $type0 = strtolower($header->type0); $type1 = strtolower($header->type1); $name = ''; - $Links['download link']['text'] = _("download"); - $Links['download link']['href'] = + $links['download link']['text'] = _("download"); + $links['download link']['href'] = "../src/download.php?absolute_dl=true&passed_id=$id&mailbox=$urlMailbox&ent_id=$ent"; $ImageURL = ''; if ($type0 =='message' && $type1 == 'rfc822') { @@ -415,20 +422,22 @@ if (trim($filename) == '') { $name = decodeHeader($header->disposition->getProperty('name')); if (trim($name) == '') { - if ( trim( $header->id ) == '' ) + if (trim( $header->id ) == '') { $filename = 'untitled-[' . $ent . ']' ; - else + } else { $filename = 'cid: ' . $header->id; + } } else { $filename = $name; } } } else { - if ( trim( $header->id ) == '' ) + if (trim( $header->id ) == '') { $filename = 'untitled-[' . $ent . ']' ; - else + } else { $filename = 'cid: ' . $header->id; } + } if ($header->description) { $description = htmlspecialchars($header->description); @@ -443,29 +452,30 @@ } else { $passed_ent_id_link = ''; } - $DefaultLink = $default_page . "?startMessage=$startMessage" + $defaultlink = $default_page . "?startMessage=$startMessage" . "&passed_id=$id&mailbox=$urlMailbox" . '&ent_id='.$ent.$passed_ent_id_link; if ($where && $what) { - $DefaultLink = '&where='. urlencode($where).'&what='.urlencode($what); + $defaultlink = '&where='. urlencode($where).'&what='.urlencode($what); } - /* this executes the attachment hook with a specific MIME-type. - * if that doens't have results, it tries if there's a rule - * for a more generic type. */ - $HookResults = do_hook("attachment $type0/$type1", $Links, - $startMessage, $id, $urlMailbox, $ent, $DefaultLink, + /* This executes the attachment hook with a specific MIME-type. + * If that doesn't have results, it tries if there's a rule + * for a more generic type. + */ + $hookresults = do_hook("attachment $type0/$type1", $links, + $startMessage, $id, $urlMailbox, $ent, $defaultlink, $display_filename, $where, $what); - if(count($HookResults[1]) <= 1) { - $HookResults = do_hook("attachment $type0/*", $Links, - $startMessage, $id, $urlMailbox, $ent, $DefaultLink, + if(count($hookresults[1]) <= 1) { + $hookresults = do_hook("attachment $type0/*", $links, + $startMessage, $id, $urlMailbox, $ent, $defaultlink, $display_filename, $where, $what); } - $Links = $HookResults[1]; - $DefaultLink = $HookResults[6]; + $links = $hookresults[1]; + $defaultlink = $hookresults[6]; $attachments .= '<TR><TD>' . - "<A HREF=\"$DefaultLink\">$display_filename</A> </TD>" . + "<A HREF=\"$defaultlink\">$display_filename</A> </TD>" . '<TD><SMALL><b>' . show_readable_size($header->size) . '</b> </small></TD>' . "<TD><SMALL>[ $type0/$type1 ] </SMALL></TD>" . @@ -473,30 +483,29 @@ $attachments .= '<b>' . $description . '</b>'; $attachments .= '</SMALL></TD><TD><SMALL> '; - $SkipSpaces = 1; - foreach ($Links as $Val) { - if ($SkipSpaces) { - $SkipSpaces = 0; + $skipspaces = 1; + foreach ($links as $val) { + if ($skipspaces) { + $skipspaces = 0; } else { $attachments .= ' | '; } - $attachments .= '<a href="' . $Val['href'] . '">' . $Val['text'] . '</a>'; + $attachments .= '<a href="' . $val['href'] . '">' . $val['text'] . '</a>'; } - unset($Links); + unset($links); $attachments .= "</TD></TR>\n"; } return $attachments; } -/** this function decodes the body depending on the encoding type. **/ +/* This function decodes the body depending on the encoding type. */ function decodeBody($body, $encoding) { global $languages, $squirrelmail_language; + global $show_html_default; $body = str_replace("\r\n", "\n", $body); $encoding = strtolower($encoding); - global $show_html_default; - if ($encoding == 'quoted-printable' || $encoding == 'quoted_printable') { $body = quoted_printable_decode($body); @@ -515,7 +524,7 @@ } // All other encodings are returned raw. - return( $body ); + return $body; } /* @@ -538,7 +547,7 @@ while (preg_match('/^(.{' . $i . '})(.*)=\?([^?]*)\?(Q|B)\?([^?]*)\?=/Ui', $string, $res)) { $prefix = $res[1]; - // Ignore white-space between consecutive encoded-words + /* Ignore white-space between consecutive encoded-words. */ if (strspn($res[2], " \t") != strlen($res[2])) { $prefix .= $res[2]; } @@ -550,7 +559,8 @@ $replace = preg_replace('/=([0-9a-f]{2})/ie', 'chr(hexdec("\1"))', $replace); /* Only encode into entities by default. Some places - don't need the encoding, like the compose form. */ + * don't need the encoding, like the compose form. + */ if ($utfencode) { $replace = charset_decode($res[3], $replace); } @@ -558,7 +568,7 @@ $string = $prefix . $replace . substr($string, strlen($res[0])); $i = strlen($prefix) + strlen($replace); } - return( $string ); + return $string; } /* @@ -597,16 +607,18 @@ if ( $k > 126 ) { $ret .= sprintf("=%02X", $k); $l = TRUE; - } else + } else { $ret .= $string{$i}; } + break; + } } if ( $l ) { $string = "=?$default_charset?Q?$ret?="; } - return( $string ); + return $string; } /* This function trys to locate the entity_id of a specific mime element */ @@ -614,26 +626,24 @@ function find_ent_id( $id, $message ) { $ret = ''; for ($i=0; $ret == '' && $i < count($message->entities); $i++) { - if ( $message->entities[$i]->header->type0 == 'multipart') { + if ($message->entities[$i]->header->type0 != 'multipart') { $ret = find_ent_id( $id, $message->entities[$i] ); } else { if ( strcasecmp( $message->entities[$i]->header->id, $id ) == 0 ) { if (sq_check_save_extension($message->entities[$i])) { $ret = $message->entities[$i]->entity_id; - } else { - $ret = ''; } } } } - return( $ret ); + return $ret; } function sq_check_save_extension($message) { $filename = $message->getFilename(); $ext = substr($filename, strrpos($filename,'.')+1); $save_extensions = array('jpg','jpeg','gif','png','bmp'); - return (in_array($ext, $save_extensions)); + return in_array($ext, $save_extensions); } @@ -652,7 +662,6 @@ * @return a string with the final tag representation. */ function sq_tagprint($tagname, $attary, $tagtype){ - $me = 'sq_tagprint'; if ($tagtype == 2){ @@ -697,7 +706,7 @@ */ function sq_skipspace($body, $offset){ $me = 'sq_skipspace'; - preg_match("/^(\s*)/s", substr($body, $offset), $matches); + preg_match('/^(\s*)/s', substr($body, $offset), $matches); if (sizeof($matches{1})){ $count = strlen($matches{1}); $offset += $count; @@ -868,14 +877,14 @@ /** * Check if it's whitespace */ - if (preg_match("/\s/", $match)){ - } else { + if (!preg_match('/\s/', $match)){ /** * This is an invalid tag! Look for the next closing ">". */ $gt = sq_findnxstr($body, $offset, ">"); return Array(false, false, false, $lt, $gt); } + break; } /** @@ -1034,6 +1043,7 @@ $gt = sq_findnxstr($body, $pos, ">"); return Array(false, false, false, $lt, $gt); } + break; } } /** @@ -1193,7 +1203,7 @@ * and change it to .bodyclass so we can just assign it to a <div> */ $content = preg_replace("|body(\s*\{.*?\})|si", ".bodyclass\\1", $content); - $secremoveimg = "../images/" . _("sec_remove_eng.png"); + $secremoveimg = '../images/' . _("sec_remove_eng.png"); /** * Fix url('blah') declarations. */ @@ -1252,9 +1262,9 @@ unsave link image */ $httpurl = ''; if ($linkurl) { - $httpurl = $quotchar . "../src/download.php?absolute_dl=true&" . + $httpurl = $quotchar . '../src/download.php?absolute_dl=true&' . "passed_id=$id&mailbox=" . urlencode($mailbox) . - "&ent_id=" . $linkurl . $quotchar; + '&ent_id=' . $linkurl . $quotchar; } return $httpurl; } @@ -1285,6 +1295,7 @@ break; case 'text': $styledef .= "color: $attvalue; "; + break; } } if (strlen($styledef) > 0){ @@ -1364,7 +1375,6 @@ } if ($skip_content == false){ $trusted .= $free_content; - } else { } if ($tagname != FALSE){ if ($tagtype == 2){ @@ -1386,7 +1396,6 @@ $tagname = false; } } - } else { } } } else { @@ -1446,13 +1455,11 @@ } } } - } else { } } if ($tagname != false && $skip_content == false){ $trusted .= sq_tagprint($tagname, $attary, $tagtype); } - } else { } $curpos = $gt+1; } |