From: Philippe M. <phi...@us...> - 2002-08-22 09:33:12
|
Update of /cvsroot/squirrelmail/squirrelmail/functions In directory usw-pr-cvs1:/tmp/cvs-serv14294/functions Modified Files: imap_parse.php imap_search.php mailbox_display.php mime.php smtp.php Log Message: Masato Japanes patch Index: imap_parse.php =================================================================== RCS file: /cvsroot/squirrelmail/squirrelmail/functions/imap_parse.php,v retrieving revision 1.3 retrieving revision 1.4 diff -u -w -r1.3 -r1.4 --- imap_parse.php 14 Jul 2002 01:48:59 -0000 1.3 +++ imap_parse.php 22 Aug 2002 09:33:09 -0000 1.4 @@ -221,6 +221,13 @@ } $i++; break; + case 'u': + /* User-Agent */ + if (strtolower(substr($line,0,10)) == 'user-agent') { + $hdr->xmailer = trim(substr($line, 10)); + } + $i++; + break; default: $i++; break; Index: imap_search.php =================================================================== RCS file: /cvsroot/squirrelmail/squirrelmail/functions/imap_search.php,v retrieving revision 1.58 retrieving revision 1.59 diff -u -w -r1.58 -r1.59 --- imap_search.php 31 Jul 2002 14:10:43 -0000 1.58 +++ imap_search.php 22 Aug 2002 09:33:09 -0000 1.59 @@ -45,11 +45,17 @@ if ($imap_server_type == 'macosx') { foreach ($multi_search as $multi_search_part) { + if (strtoupper($languages[$squirrelmail_language]['CHARSET']) == 'ISO-2022-JP') { + $multi_search_part = mb_convert_encoding($multi_search_part, 'JIS', 'auto'); + } $search_string .= $search_where . ' ' .$multi_search_part . ' '; } } else { foreach ($multi_search as $multi_search_part) { + if (strtoupper($languages[$squirrelmail_language]['CHARSET']) == 'ISO-2022-JP') { + $multi_search_part = mb_convert_encoding($multi_search_part, 'JIS', 'auto'); + } $search_string .= $search_where . ' {' . strlen($multi_search_part) . "}\r\n" . $multi_search_part . ' '; } Index: mailbox_display.php =================================================================== RCS file: /cvsroot/squirrelmail/squirrelmail/functions/mailbox_display.php,v retrieving revision 1.266 retrieving revision 1.267 diff -u -w -r1.266 -r1.267 --- mailbox_display.php 21 Aug 2002 22:56:07 -0000 1.266 +++ mailbox_display.php 22 Aug 2002 09:33:09 -0000 1.267 @@ -1171,6 +1171,7 @@ } function processSubject($subject) { + global $squirrelmail_language; /* Shouldn't ever happen -- caught too many times in the IMAP functions */ if ($subject == '') return _("(no subject)"); @@ -1196,6 +1197,10 @@ if ($ent_strlen <= 55){ return $subject; + } + + if ($squirrelmail_language == 'ja_JP' && function_exists('mb_strimwidth')) { + return mb_strimwidth($subject, 0, $trim_val, '...'); } return substr($subject, 0, $trim_val) . '...'; Index: mime.php =================================================================== RCS file: /cvsroot/squirrelmail/squirrelmail/functions/mime.php,v retrieving revision 1.219 retrieving revision 1.220 diff -u -w -r1.219 -r1.220 --- mime.php 21 Aug 2002 10:10:52 -0000 1.219 +++ mime.php 22 Aug 2002 09:33:09 -0000 1.220 @@ -154,7 +154,7 @@ // 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")) { set_time_limit(0); } @@ -348,6 +348,7 @@ // If there are other types that shouldn't be formatted, add // them here if ($body_message->header->type1 == 'html') { + $body = charset_decode_japanese($body); if ( $show_html_default <> 1 ) { $body = strip_tags( $body ); translateText($body, $wrap_at, @@ -490,6 +491,7 @@ /** this function decodes the body depending on the encoding type. **/ function decodeBody($body, $encoding) { + $body = str_replace("\r\n", "\n", $body); $encoding = strtolower($encoding); @@ -516,9 +518,18 @@ * Patched by Christian Schmidt <chr...@os...> 23/03/2002 */ function decodeHeader ($string, $utfencode=true) { + global $squirrelmail_language; if (is_array($string)) { $string = implode("\n", $string); } + + if ($squirrelmail_language == 'ja_JP' && function_exists('mb_convert_encoding')) { + $string = str_replace("\t", "", $string); + if (eregi('=\\?([^?]+)\\?(q|b)\\?([^?]+)\\?=', $string)) + $string = mb_decode_mimeheader($string); + return @mb_convert_encoding($string, 'EUC-JP', 'AUTO'); + } + $i = 0; while (preg_match('/^(.{' . $i . '})(.*)=\?([^?]*)\?(Q|B)\?([^?]*)\?=/Ui', $string, $res)) { @@ -552,7 +563,11 @@ * be encoded. */ function encodeHeader ($string) { - global $default_charset; + global $default_charset, $squirrelmail_language; + + if ($squirrelmail_language == 'ja_JP' && function_exists('mb_encode_mimeheader')) { + return mb_encode_mimeheader($string); + } // Encode only if the string contains 8-bit characters or =? $j = strlen( $string ); Index: smtp.php =================================================================== RCS file: /cvsroot/squirrelmail/squirrelmail/functions/smtp.php,v retrieving revision 1.169 retrieving revision 1.170 diff -u -w -r1.169 -r1.170 --- smtp.php 15 Aug 2002 06:37:49 -0000 1.169 +++ smtp.php 22 Aug 2002 09:33:09 -0000 1.170 @@ -130,9 +130,9 @@ if ( isset($info['remotefilename']) && $info['remotefilename'] != '') { $header .= "Content-Type: $filetype; name=\"" . - $info['remotefilename'] . "\"$rn"; + encodeHeader(charset_encode_japanese($info['remotefilename'])) . "\"$rn"; $header .= "Content-Disposition: attachment; filename=\"" - . $info['remotefilename'] . "\"$rn"; + . encodeHeader(charset_encode_japanese($info['remotefilename'])) . "\"$rn"; } else { $header .= "Content-Type: $filetype$rn"; } @@ -248,7 +248,7 @@ } /* Print all the needed RFC822 headers */ -function write822Header ($fp, $t, $c, $b, $subject, $more_headers, $session, $rn="\r\n") { +function write822Header ($fp, $t, $c, $b, $subject, $body, $more_headers, $session, $rn="\r\n") { global $REMOTE_ADDR, $SERVER_NAME, $REMOTE_PORT; global $data_dir, $username, $popuser, $domain, $version, $useSendmail; global $default_charset, $HTTP_VIA, $HTTP_X_FORWARDED_FOR; @@ -376,9 +376,19 @@ $header .= mimeBoundary(); $header .= "\"$rn"; } else { + if (strtolower($default_charset) == 'iso-2022-jp') { + if (mb_detect_encoding($body) == 'ASCII') { + $header .= 'Content-Type: text/plain; US-ASCII' . $rn; + $header .= "Content-Transfer-Encoding: 8bit" . $rn; + } else { + $header .= 'Content-Type: '.$contentType . $rn; + $header .= "Content-Transfer-Encoding: 7bit" . $rn; + } + } else { $header .= 'Content-Type: ' . $contentType . $rn; $header .= "Content-Transfer-Encoding: 8bit" . $rn; } + } $header .= $rn; // One blank line to separate header and body $headerlength = strlen($header); @@ -413,9 +423,21 @@ $body .= "Content-Type: text/plain" . $rn; } - $body .= "Content-Transfer-Encoding: 8bit" . $rn . $rn; - $body .= $passedBody . $rn . $rn; - if ($fp) fputs ($fp, $body); + if (strtolower($default_charset) == 'iso-2022-jp') { + if (mb_detect_encoding($passedBody) == 'ASCII') { + $body .= "Content-Transfer-Encoding: 8bit" . $rn . $rn . + $passedBody . $rn . $rn; + } else { + $body .= "Content-Transfer-Encoding: 7bit\r\n\r\n" . + mb_convert_encoding($passedBody, 'JIS') . "\r\n\r\n"; + } + } else { + $body .= "Content-Transfer-Encoding: 8bit" . $rn . $rn . + $passedBody . $rn . $rn; + } + if ($fp) { + fputs ($fp, $body); + } $attachmentlength = attachFiles($fp, $session, $rn); @@ -425,10 +447,18 @@ $postbody .= $rn . "--" . mimeBoundary() . "--" . $rn . $rn; if ($fp) fputs ($fp, $postbody); } else { + if (strtolower($default_charset) == 'iso-2022-jp') { + $body = mb_convert_encoding($passedBody, 'JIS') . $rn; + } else { $body = $passedBody . $rn; - if ($fp) fputs ($fp, $body); + } + if ($fp) { + fputs ($fp, $body); + } $postbody = $rn; - if ($fp) fputs ($fp, $postbody); + if ($fp) { + fputs ($fp, $postbody); + } } return (strlen($body) + strlen($postbody) + $attachmentlength); @@ -458,7 +488,7 @@ $fp = popen (escapeshellcmd("$sendmail_path -t -f$envelopefrom"), "w"); } - $headerlength = write822Header ($fp, $t, $c, $b, $subject, + $headerlength = write822Header ($fp, $t, $c, $b, $subject, $body, $more_headers, $session, "\n"); $bodylength = writeBody($fp, $body, $session, "\n"); @@ -616,7 +646,7 @@ /* Send the message */ $headerlength = write822Header ($smtpConnection, $t, $c, $b, - $subject, $more_headers, $session); + $subject, $body, $more_headers, $session); $bodylength = writeBody($smtpConnection, $body, $session); fputs($smtpConnection, ".\r\n"); /* end the DATA part */ @@ -879,7 +909,7 @@ $length = $headerlength + $bodylength; sqimap_append ($imap_stream, $sent_folder, $length); - write822Header ($imap_stream, $t, $c, $b, $subject, $more_headers, + write822Header ($imap_stream, $t, $c, $b, $subject, $body, $more_headers, $session); writeBody ($imap_stream, $body, $session); sqimap_append_done ($imap_stream); |