Separate gb2312 and utf-8 decoding
[squirrelmail.git] / class / mime / Message.class.php
index 0cec7e2432f7979f06a24c9cae2bbb706a1ae1c5..f346ed43b290f5a59dc82b52ed422cde48372bf6 100644 (file)
@@ -288,7 +288,7 @@ class Message {
                     break;
                 case '{':
                     /* process the literal value */
-                    $arg_s = $this->parseLiteral($read, $i);
+                    $arg_a[] = $this->parseLiteral($read, $i);
                     ++$arg_no;
                     break;
                case '0':    
@@ -443,9 +443,9 @@ class Message {
 
             $hdr->date = getTimeStamp($d); /* argument 1: date */
             $hdr->subject = $arg_a[1];     /* argument 2: subject */
-            $hdr->from = $arg_a[2][0];     /* argument 3: from        */
-            $hdr->sender = $arg_a[3][0];   /* argument 4: sender      */
-            $hdr->replyto = $arg_a[4][0];  /* argument 5: reply-to    */
+            $hdr->from = is_array($arg_a[2]) ? $arg_a[2][0] : '';     /* argument 3: from        */
+            $hdr->sender = is_array($arg_a[3]) ? $arg_a[3][0] : '';   /* argument 4: sender      */
+            $hdr->replyto = is_array($arg_a[4]) ? $arg_a[4][0] : '';  /* argument 5: reply-to    */
             $hdr->to = $arg_a[5];          /* argument 6: to          */
             $hdr->cc = $arg_a[6];          /* argument 7: cc          */
             $hdr->bcc = $arg_a[7];         /* argument 8: bcc         */
@@ -486,6 +486,10 @@ class Message {
              $i = $iPos;
              break;
           }
+       $iPos++;
+       if ($iPos > strlen($read)) {
+          break;
+       }
        }
         return $s;
     }