--- src/compose.php.orig Fri Jun 4 10:14:33 2004 +++ src/compose.php Thu Jun 10 16:47:00 2004 @@ -14,7 +14,7 @@ * - Send mail * - Save As Draft * - * $Id: compose.php,v 1.319.2.35 2004/05/31 17:32:34 tokul Exp $ + * $Id: compose.php,v 1.319.2.34 2004/05/24 07:56:51 pdontthink Exp $ */ /* Path for SquirrelMail required files. */ @@ -150,7 +150,8 @@ function getReplyCitation($orig_from, $orig_date) { global $reply_citation_style, $reply_citation_start, $reply_citation_end; - $orig_from = decodeHeader($orig_from->getAddress(false),false,false); +// $orig_from = decodeHeader($orig_from->getAddress(false),false,false); + $orig_from = decodeHeader($orig_from->getAddress(false),true,false); // $from = decodeHeader($orig_header->getAddr_s('from',"\n$indent"),false,false); /* First, return an empty string when no citation style selected. */ if (($reply_citation_style == '') || ($reply_citation_style == 'none')) { @@ -202,11 +203,14 @@ foreach($display as $key => $val) { $display[$key] = $key .': '. str_pad('', $maxsize - $val); } - $from = decodeHeader($orig_header->getAddr_s('from',"\n$indent"),false,false); +// $from = decodeHeader($orig_header->getAddr_s('from',"\n$indent"),false,false); + $from = decodeHeader($orig_header->getAddr_s('from',"\n$indent"),true,false); $from = str_replace(' ',' ',$from); - $to = decodeHeader($orig_header->getAddr_s('to',"\n$indent"),false,false); +// $to = decodeHeader($orig_header->getAddr_s('to',"\n$indent"),false,false); + $to = decodeHeader($orig_header->getAddr_s('to',"\n$indent"),true,false); $to = str_replace(' ',' ',$to); - $subject = decodeHeader($orig_header->subject,false,false); +// $subject = decodeHeader($orig_header->subject,false,false); + $subject = decodeHeader($orig_header->subject,true,false); $subject = str_replace(' ',' ',$subject); $bodyTop = str_pad(' '._("Original Message").' ',$editor_size -2,'-',STR_PAD_BOTH) . "\n". $display[_("Subject")] . $subject . "\n" . @@ -214,7 +218,8 @@ $display[_("Date")] . getLongDateString( $orig_header->date ). "\n" . $display[_("To")] . $to . "\n"; if ($orig_header->cc != array() && $orig_header->cc !='') { - $cc = decodeHeader($orig_header->getAddr_s('cc',"\n$indent"),false,false); +// $cc = decodeHeader($orig_header->getAddr_s('cc',"\n$indent"),false,false); + $cc = decodeHeader($orig_header->getAddr_s('cc',"\n$indent"),true,false); $cc = str_replace(' ',' ',$cc); $bodyTop .= $display[_("Cc")] .$cc . "\n"; } @@ -616,6 +621,7 @@ $body_part_entity = $message->getEntity($ent); $bodypart = decodeBody($unencoded_bodypart, $body_part_entity->header->encoding); + $bodypart = charset_decode($body_part_entity->header->getParameter('charset'), $bodypart); if ($type1 == 'html') { $bodypart = str_replace("\n", ' ', $bodypart); $bodypart = preg_replace(array('/
/i','/
/i'), "\n", $bodypart);
@@ -681,10 +687,14 @@
case ('draft'):
$use_signature = FALSE;
$composeMessage->rfc822_header = $orig_header;
- $send_to = decodeHeader($orig_header->getAddr_s('to'),false,false);
- $send_to_cc = decodeHeader($orig_header->getAddr_s('cc'),false,false);
- $send_to_bcc = decodeHeader($orig_header->getAddr_s('bcc'),false,false);
- $subject = decodeHeader($orig_header->subject,false,false);
+// $send_to = decodeHeader($orig_header->getAddr_s('to'),false,false);
+ $send_to = decodeHeader($orig_header->getAddr_s('to'),true,false);
+// $send_to_cc = decodeHeader($orig_header->getAddr_s('cc'),false,false);
+ $send_to_cc = decodeHeader($orig_header->getAddr_s('cc'),true,false);
+// $send_to_bcc = decodeHeader($orig_header->getAddr_s('bcc'),false,false);
+ $send_to_bcc = decodeHeader($orig_header->getAddr_s('bcc'),true,false);
+// $subject = decodeHeader($orig_header->subject,false,false);
+ $subject = decodeHeader($orig_header->subject,true,false);
/* remember the references and in-reply-to headers in case of an reply */
$composeMessage->rfc822_header->more_headers['References'] = $orig_header->references;
$composeMessage->rfc822_header->more_headers['In-Reply-To'] = $orig_header->in_reply_to;
@@ -698,39 +708,52 @@
}
unset($body_ary[$i]);
}
- sqUnWordWrap($body);
+// sqUnWordWrap($body);
$composeMessage = getAttachments($message, $composeMessage, $passed_id, $entities, $imapConnection);
break;
case ('edit_as_new'):
- $send_to = decodeHeader($orig_header->getAddr_s('to'),false,false);
- $send_to_cc = decodeHeader($orig_header->getAddr_s('cc'),false,false);
- $send_to_bcc = decodeHeader($orig_header->getAddr_s('bcc'),false,false);
- $subject = decodeHeader($orig_header->subject,false,false);
+// $send_to = decodeHeader($orig_header->getAddr_s('to'),false,false);
+ $send_to = decodeHeader($orig_header->getAddr_s('to'),true,false);
+// $send_to_cc = decodeHeader($orig_header->getAddr_s('cc'),false,false);
+ $send_to_cc = decodeHeader($orig_header->getAddr_s('cc'),true,false);
+// $send_to_bcc = decodeHeader($orig_header->getAddr_s('bcc'),false,false);
+ $send_to_bcc = decodeHeader($orig_header->getAddr_s('bcc'),true,false);
+// $subject = decodeHeader($orig_header->subject,false,false);
+ $subject = decodeHeader($orig_header->subject,true,false);
$mailprio = $orig_header->priority;
$orig_from = '';
$composeMessage = getAttachments($message, $composeMessage, $passed_id, $entities, $imapConnection);
- sqUnWordWrap($body);
+// sqUnWordWrap($body);
break;
case ('forward'):
$send_to = '';
- $subject = decodeHeader($orig_header->subject,false,false);
+// $subject = decodeHeader($orig_header->subject,false,false);
+ $subject = decodeHeader($orig_header->subject,true,false);
if ((substr(strtolower($subject), 0, 4) != 'fwd:') &&
(substr(strtolower($subject), 0, 5) != '[fwd:') &&
(substr(strtolower($subject), 0, 6) != '[ fwd:')) {
$subject = '[Fwd: ' . $subject . ']';
}
$body = getforwardHeader($orig_header) . $body;
- sqUnWordWrap($body);
+// sqUnWordWrap($body);
$composeMessage = getAttachments($message, $composeMessage, $passed_id, $entities, $imapConnection);
$body = "\n" . $body;
break;
case ('forward_as_attachment'):
+// $subject = decodeHeader($orig_header->subject,false,true);
+ $subject = decodeHeader($orig_header->subject,true,true);
+ if ((substr(strtolower($subject), 0, 4) != 'fwd:') &&
+ (substr(strtolower($subject), 0, 5) != '[fwd:') &&
+ (substr(strtolower($subject), 0, 6) != '[ fwd:')) {
+ $subject = '[Fwd: ' . $subject . ']';
+ }
$composeMessage = getMessage_RFC822_Attachment($message, $composeMessage, $passed_id, $passed_ent_id, $imapConnection);
$body = '';
break;
case ('reply_all'):
$send_to_cc = replyAllString($orig_header);
- $send_to_cc = decodeHeader($send_to_cc,false,false);
+// $send_to_cc = decodeHeader($send_to_cc,false,false);
+ $send_to_cc = decodeHeader($send_to_cc,true,false);
case ('reply'):
$send_to = $orig_header->reply_to;
if (is_array($send_to) && count($send_to)) {
@@ -740,8 +763,10 @@
} else {
$send_to = $orig_header->getAddr_s('from');
}
- $send_to = decodeHeader($send_to,false,false);
- $subject = decodeHeader($orig_header->subject,false,false);
+// $send_to = decodeHeader($send_to,false,false);
+ $send_to = decodeHeader($send_to,true,false);
+// $subject = decodeHeader($orig_header->subject,false,false);
+ $subject = decodeHeader($orig_header->subject,true,false);
$subject = str_replace('"', "'", $subject);
$subject = trim($subject);
if (substr(strtolower($subject), 0, 3) != 're:') {
@@ -811,7 +836,35 @@
$filename = $message->getFilename();
break;
}
- $filename = decodeHeader($filename, false, false);
+
+// вариант 1
+// $filename = decodeHeader($filename, false, false);
+
+// вариант 2
+/*
+global $default_charset;
+set_my_charset();
+$filename = decodeHeader($filename);
+if ($default_charset == "utf-8") {
+ $filename = savedhtml2utf8($filename);
+}
+*/
+
+// вариант 3
+global $default_charset;
+set_my_charset();
+if ($default_charset == "utf-8") {
+ if (preg_match('/^(.*)=\?([^?]*)\?(Q|B)\?([^?]*)\?=(.*)$/Ui',
+ $filename, $res)) {
+ $filename = decodeHeader($filename,false,false);
+ $filename = iconv($res[2], "UTF-8", $filename);
+ } else {
+ $filename = decodeHeader($filename);
+ }
+} else {
+ $filename = decodeHeader($filename);
+}
+
if (isset($languages[$squirrelmail_language]['XTRA_CODE']) &&
function_exists($languages[$squirrelmail_language]['XTRA_CODE'])) {
$filename = $languages[$squirrelmail_language]['XTRA_CODE']('encode', $filename);
@@ -1053,21 +1106,38 @@
if ($default_charset == 'iso-2022-jp') {
echo "\n\n".($prefix_sig==true? "-- \n":'').mb_convert_encoding($signature, 'EUC-JP');
} else {
- echo "\n\n".($prefix_sig==true? "-- \n":'').decodeHeader($signature,false,false);
+// echo "\n\n".($prefix_sig==true? "-- \n":'').decodeHeader($signature,false,false);
+ echo "\n\n".($prefix_sig==true? "-- \n":'').decodeHeader($signature,true,false);
}
- echo "\n\n".htmlspecialchars(decodeHeader($body,false,false));
+// echo "\n\n".htmlspecialchars(decodeHeader($body,false,false));
+ if ($default_charset == "utf-8") {
+ echo "\n\n".decodeHeader($body,true,false);
+ } else {
+ echo "\n\n".htmlspecialchars(decodeHeader($body,true,false));
+ }
}
else {
- echo "\n\n".htmlspecialchars(decodeHeader($body,false,false));
+// echo "\n\n".htmlspecialchars(decodeHeader($body,false,false));
+ if ($default_charset == "utf-8") {
+ echo "\n\n".decodeHeader($body,true,false);
+ } else {
+ echo "\n\n".htmlspecialchars(decodeHeader($body,true,false));
+ }
if ($default_charset == 'iso-2022-jp') {
echo "\n\n".($prefix_sig==true? "-- \n":'').mb_convert_encoding($signature, 'EUC-JP');
}else{
- echo "\n\n".($prefix_sig==true? "-- \n":'').decodeHeader($signature,false,false);
+// echo "\n\n".($prefix_sig==true? "-- \n":'').decodeHeader($signature,false,false);
+ echo "\n\n".($prefix_sig==true? "-- \n":'').decodeHeader($signature,true,false);
}
}
}
else {
- echo htmlspecialchars(decodeHeader($body,false,false));
+// echo htmlspecialchars(decodeHeader($body,false,false));
+ if ($default_charset == "utf-8") {
+ echo decodeHeader($body,true,false);
+ } else {
+ echo htmlspecialchars(decodeHeader($body,true,false));
+ }
}
echo '
' . "\n" .
' ' . "\n" .
@@ -1132,7 +1202,8 @@
foreach ($composeMessage->entities as $key => $attachment) {
$attached_file = $attachment->att_local_name;
if ($attachment->att_local_name || $attachment->body_part) {
- $attached_filename = decodeHeader($attachment->mime_header->getParameter('name'));
+// $attached_filename = decodeHeader($attachment->mime_header->getParameter('name'));
+ $attached_filename = $attachment->mime_header->getParameter('name');
$type = $attachment->mime_header->type0.'/'.
$attachment->mime_header->type1;
--- functions/forms.php.orig Thu Jun 3 23:32:10 2004
+++ functions/forms.php Thu Jun 3 23:32:10 2004
@@ -12,15 +12,35 @@
* @package squirrelmail
*/
+function formsspecialchars($str) {
+// $str = str_replace("&", htmlspecialchars("&"), $str);
+ $str = str_replace("<", htmlspecialchars("<"), $str);
+ $str = str_replace(">", htmlspecialchars(">"), $str);
+ $str = str_replace("'", htmlspecialchars("'"), $str);
+ $str = str_replace("\"", htmlspecialchars("\""), $str);
+ return($str);
+}
/**
* Helper function to create form fields, not to be called directly,
* only by other functions below.
*/
function addInputField($type, $name = null, $value = null, $attributes = '') {
- return '\n";
+// return '\n";
+ global $default_charset;
+ if ($default_charset == "utf-8") {
+ return '\n";
+ } else {
+ return '\n";
+ }
}
/**
@@ -81,20 +101,39 @@
*/
function addSelect($name, $values, $default = null, $usekeys = false)
{
+ global $default_charset;
// only one element
if(count($values) == 1) {
$k = key($values); $v = array_pop($values);
- return addHidden($name, ($usekeys ? $k:$v)).
- htmlspecialchars($v) . "\n";
+// return addHidden($name, ($usekeys ? $k:$v)).
+// htmlspecialchars($v) . "\n";
+ if ($default_charset == "utf-8") {
+ return addHidden($name, ($usekeys ? $k:$v)).
+ formsspecialchars($v) . "\n";
+ } else {
+ return addHidden($name, ($usekeys ? $k:$v)).
+ htmlspecialchars($v) . "\n";
+ }
}
$ret = '\n";
@@ -119,9 +158,19 @@
* Textarea form element.
*/
function addTextArea($name, $text = '', $cols = 40, $rows = 10, $attr = '') {
- return '\n";
+ global $default_charset;
+// return '\n";
+ if ($default_charset == "utf-8") {
+ return '\n";
+ } else {
+ return '\n";
+ }
}
/**