iliaa           Mon Jan 20 14:41:59 2003 EDT

  Modified files:              
    /php4/ext/imap      php_imap.c 
  Log:
  Changed php_error to php_error_docref.
  Removed pointless memory allocation checks.
  Memory leak fix inside quota functions.
  
  
Index: php4/ext/imap/php_imap.c
diff -u php4/ext/imap/php_imap.c:1.152 php4/ext/imap/php_imap.c:1.153
--- php4/ext/imap/php_imap.c:1.152      Sat Jan 18 02:00:47 2003
+++ php4/ext/imap/php_imap.c    Mon Jan 20 14:41:58 2003
@@ -26,7 +26,7 @@
    | PHP 4.0 updates:  Zeev Suraski <[EMAIL PROTECTED]>                       |
    +----------------------------------------------------------------------+
  */
-/* $Id: php_imap.c,v 1.152 2003/01/18 07:00:47 sniper Exp $ */
+/* $Id: php_imap.c,v 1.153 2003/01/20 19:41:58 iliaa Exp $ */
 
 #define IMAP41
 
@@ -609,7 +609,7 @@
                if (EG(error_reporting) & E_NOTICE) {
                        ecur = IMAPG(imap_errorstack);
                        while (ecur != NIL) {
-                               php_error(E_NOTICE, "%s(): %s (errflg=%d)", 
get_active_function_name(TSRMLS_C), ecur->LTEXT, ecur->errflg);
+                               php_error_docref(NULL TSRMLS_CC, E_NOTICE, "%s 
+(errflg=%d)", ecur->LTEXT, ecur->errflg);
                                ecur = ecur->next;
                        }
                }
@@ -621,7 +621,7 @@
                if (EG(error_reporting) & E_NOTICE) {
                        acur = IMAPG(imap_alertstack);
                        while (acur != NIL) {
-                               php_error(E_NOTICE, "%s(): %s", 
get_active_function_name(TSRMLS_C), acur->LTEXT);
+                               php_error_docref(NULL TSRMLS_CC, E_NOTICE, "%s", 
+acur->LTEXT);
                                acur = acur->next;
                        }
                }
@@ -698,7 +698,7 @@
        imap_stream = mail_open(NIL, Z_STRVAL_PP(mailbox), flags);
 
        if (imap_stream == NIL) {
-               php_error(E_WARNING, "%s(): Couldn't open stream %s", 
get_active_function_name(TSRMLS_C), Z_STRVAL_PP(mailbox));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Couldn't open stream %s", 
+Z_STRVAL_PP(mailbox));
                efree(IMAPG(imap_user)); IMAPG(imap_user) = 0;
                efree(IMAPG(imap_password)); IMAPG(imap_password) = 0;
                RETURN_FALSE;
@@ -750,7 +750,7 @@
        }
        imap_stream = mail_open(imap_le_struct->imap_stream, Z_STRVAL_PP(mailbox), 
flags);
        if (imap_stream == NIL) {
-               php_error(E_WARNING, "%s(): Couldn't re-open stream", 
get_active_function_name(TSRMLS_C));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Couldn't re-open stream");
                RETURN_FALSE;
        }
        imap_le_struct->imap_stream = imap_stream;
@@ -857,19 +857,16 @@
 
        convert_to_string_ex(qroot);
 
-       MAKE_STD_ZVAL(IMAPG(quota_return));
-       array_init(IMAPG(quota_return));
+       array_init(return_value);
+       *IMAPG(quota_return) = *return_value;
 
        /* set the callback for the GET_QUOTA function */
        mail_parameters(NIL, SET_QUOTA, (void *) mail_getquota);
        if(!imap_getquota(imap_le_struct->imap_stream, Z_STRVAL_PP(qroot))) {
-               php_error(E_WARNING, "%s(): c-client imap_getquota failed", 
get_active_function_name(TSRMLS_C));
-               FREE_ZVAL(IMAPG(quota_return));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "c-client imap_getquota 
+failed");
+               zval_dtor(return_value);
                RETURN_FALSE;
        }
-
-       *return_value = *IMAPG(quota_return);
-       FREE_ZVAL(IMAPG(quota_return));
 }
 /* }}} */
 
@@ -888,19 +885,16 @@
 
        convert_to_string_ex(mbox);
 
-       MAKE_STD_ZVAL(IMAPG(quota_return));
-       array_init(IMAPG(quota_return));
+       array_init(return_value);
+       *IMAPG(quota_return) = *return_value;
 
        /* set the callback for the GET_QUOTAROOT function */
        mail_parameters(NIL, SET_QUOTA, (void *) mail_getquota);
        if(!imap_getquotaroot(imap_le_struct->imap_stream, Z_STRVAL_PP(mbox))) {
-               php_error(E_WARNING, "%s(): c-client imap_getquotaroot failed", 
get_active_function_name(TSRMLS_C));
-               FREE_ZVAL(IMAPG(quota_return));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "c-client 
+imap_getquotaroot failed");
+               zval_dtor(return_value);
                RETURN_FALSE;
        }
-
-       *return_value = *IMAPG(quota_return);
-       FREE_ZVAL(IMAPG(quota_return));
 }
 /* }}} */
 
@@ -1081,7 +1075,7 @@
                msgindex = Z_LVAL_PP(msgno);
        }
        if ((msgindex < 1) || ((unsigned) msgindex > 
imap_le_struct->imap_stream->nmsgs)) {
-               php_error(E_WARNING, "%s(): Bad message number", 
get_active_function_name(TSRMLS_C));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Bad message number");
                RETURN_FALSE;
        }
 
@@ -1454,7 +1448,7 @@
        }
        
        if (!Z_LVAL_PP(msgno) || Z_LVAL_PP(msgno) < 1 || (unsigned) Z_LVAL_PP(msgno) > 
imap_le_struct->imap_stream->nmsgs) {
-               php_error(E_WARNING, "%s(): Bad message number", 
get_active_function_name(TSRMLS_C));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Bad message number");
                RETURN_FALSE;
        }
        
@@ -1705,14 +1699,14 @@
                msgindex = Z_LVAL_PP(msgno);
        }
        if ((msgindex < 1) || ((unsigned) msgindex > 
imap_le_struct->imap_stream->nmsgs)) {
-               php_error(E_WARNING, "%s(): Bad message number", 
get_active_function_name(TSRMLS_C));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Bad message number");
                RETURN_FALSE;
        }
 
        mail_fetchstructure_full(imap_le_struct->imap_stream, Z_LVAL_PP(msgno), &body 
, myargc == 3 ? Z_LVAL_PP(flags) : NIL);
        
        if (!body) {
-               php_error(E_WARNING, "%s(): No body information available", 
get_active_function_name(TSRMLS_C));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "No body information 
+available");
                RETURN_FALSE;
        }
        
@@ -1745,7 +1739,7 @@
        body = mail_fetchbody_full(imap_le_struct->imap_stream, Z_LVAL_PP(msgno), 
Z_STRVAL_PP(sec), &len, myargc==4 ? Z_LVAL_PP(flags) : NIL);
 
        if (!body) {
-               php_error(E_WARNING, "%s(): No body information available", 
get_active_function_name(TSRMLS_C));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "No body information 
+available");
                RETURN_FALSE;
        }
        RETVAL_STRINGL(body, len, 1);
@@ -2065,12 +2059,12 @@
                if (state == ST_NORMAL) {
                        /* process printable character */
                        if (SPECIAL(*inp)) {
-                               php_error(E_WARNING, "%s(): Invalid modified UTF-7 
character: `%c'", get_active_function_name(TSRMLS_C), *inp);
+                               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid 
+modified UTF-7 character: `%c'", *inp);
                                RETURN_FALSE;
                        } else if (*inp != '&') {
                                outlen++;
                        } else if (inp + 1 == endp) {
-                               php_error(E_WARNING, "%s(): Unexpected end of string", 
get_active_function_name(TSRMLS_C));
+                               php_error_docref(NULL TSRMLS_CC, E_WARNING, 
+"Unexpected end of string");
                                RETURN_FALSE;
                        } else if (inp[1] != '-') {
                                state = ST_DECODE0;
@@ -2081,12 +2075,12 @@
                } else if (*inp == '-') {
                        /* return to NORMAL mode */
                        if (state == ST_DECODE1) {
-                               php_error(E_WARNING, "%s(): Stray modified base64 
character: `%c'", get_active_function_name(TSRMLS_C), *--inp);
+                               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Stray 
+modified base64 character: `%c'", *--inp);
                                RETURN_FALSE;
                        }
                        state = ST_NORMAL;
                } else if (!B64CHAR(*inp)) {
-                       php_error(E_WARNING, "%s(): Invalid modified base64 character: 
`%c'", get_active_function_name(TSRMLS_C), *inp);
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid modified 
+base64 character: `%c'", *inp);
                        RETURN_FALSE;
                } else {
                        switch (state) {
@@ -2107,15 +2101,12 @@
 
        /* enforce end state */
        if (state != ST_NORMAL) {
-               php_error(E_WARNING, "%s(): Unexpected end of string", 
get_active_function_name(TSRMLS_C));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unexpected end of 
+string");
                RETURN_FALSE;
        }
 
        /* allocate output buffer */
-       if ((out = emalloc(outlen + 1)) == NULL) {
-               php_error(E_WARNING, "%s(): Unable to allocate result string", 
get_active_function_name(TSRMLS_C));
-               RETURN_FALSE;
-       }
+       out = emalloc(outlen + 1);
 
        /* decode input string */
        outp = out;
@@ -2167,7 +2158,7 @@
 #if PHP_DEBUG
        /* warn if we computed outlen incorrectly */
        if (outp - out != outlen) {
-               php_error(E_WARNING, "%s(): outp - out [%d] != outlen [%d]", 
get_active_function_name(TSRMLS_C), outp - out, outlen);
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "outp - out [%d] != outlen 
+[%d]", outp - out, outlen);
        }
 #endif
 
@@ -2233,10 +2224,7 @@
        }
 
        /* allocate output buffer */
-       if ((out = emalloc(outlen + 1)) == NULL) {
-               php_error(E_WARNING, "%s(): Unable to allocate result string", 
get_active_function_name(TSRMLS_C));
-               RETURN_FALSE;
-       }
+       out = emalloc(outlen + 1);
 
        /* encode input string */
        outp = out;
@@ -2289,7 +2277,7 @@
 #if PHP_DEBUG
        /* warn if we computed outlen incorrectly */
        if (outp - out != outlen) {
-               php_error(E_WARNING, "%s(): outp - out [%d] != outlen [%d]", 
get_active_function_name(TSRMLS_C), outp - out, outlen);
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "outp - out [%d] != outlen 
+[%d]", outp - out, outlen);
        }
 #endif
 
@@ -2373,7 +2361,7 @@
        convert_to_long_ex(rev);
        convert_to_long_ex(pgm);
        if (Z_LVAL_PP(pgm) > SORTSIZE) {
-               php_error(E_WARNING, "%s(): Unrecognized sort criteria", 
get_active_function_name(TSRMLS_C));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unrecognized sort 
+criteria");
                RETURN_FALSE;
        }
        if (myargc >= 4) {
@@ -2437,7 +2425,7 @@
        }
 
        if ((msgindex < 1) || ((unsigned) msgindex > 
imap_le_struct->imap_stream->nmsgs)) {
-               php_error(E_WARNING, "%s(): Bad message number", 
get_active_function_name(TSRMLS_C));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Bad message number");
                RETURN_FALSE;
        }
 
@@ -2463,7 +2451,7 @@
  
        msgindex = Z_LVAL_PP(msgno);
        if ((msgindex < 1) || ((unsigned) msgindex > 
imap_le_struct->imap_stream->nmsgs)) {
-               php_error(E_WARNING, "%s(): Bad message number", 
get_active_function_name(TSRMLS_C));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Bad message number");
                RETURN_FALSE;
        }
 
@@ -2553,7 +2541,7 @@
        convert_to_string_ex(section);
 
        if (!Z_LVAL_PP(msg) || Z_LVAL_PP(msg) < 1 || (unsigned) Z_LVAL_PP(msg) > 
imap_le_struct->imap_stream->nmsgs) {
-               php_error(E_WARNING, "%s(): Bad message number", 
get_active_function_name(TSRMLS_C));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Bad message number");
                RETURN_FALSE;
        }
 
@@ -2751,12 +2739,12 @@
        }
 
        if (Z_TYPE_PP(envelope) != IS_ARRAY) {
-               php_error(E_WARNING, "%s(): Expected Array as envelope parameter", 
get_active_function_name(TSRMLS_C));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Expected Array as 
+envelope parameter");
                RETURN_FALSE;
        }
 
        if (Z_TYPE_PP(body) != IS_ARRAY) {
-               php_error(E_WARNING, "%s(): Expected Array as body parameter", 
get_active_function_name(TSRMLS_C));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Expected Array as body 
+parameter");
                RETURN_FALSE;
        }
 
@@ -3220,10 +3208,10 @@
 
        if (TSendMail(INI_STR("SMTP"), &tsm_err, &tsm_errmsg, bufferHeader, subject, 
bufferTo, message, bufferCc, bufferBcc, rpath) != SUCCESS) {
                if (tsm_errmsg) {
-                       php_error(E_WARNING, "%s(): %s", 
get_active_function_name(TSRMLS_C), tsm_errmsg);
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", tsm_errmsg);
                        efree(tsm_errmsg);
                } else {
-                       php_error(E_WARNING, "%s(): %s", 
get_active_function_name(TSRMLS_C), GetSMErrorText(tsm_err));
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", 
+GetSMErrorText(tsm_err));
                }
                return 0;
        }
@@ -3261,7 +3249,7 @@
                        return 1;
                }
        } else {
-               php_error(E_WARNING, "%s(): Could not execute mail delivery program", 
get_active_function_name(TSRMLS_C));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Could not execute mail 
+delivery program");
                return 0;
        }
 #endif
@@ -3286,7 +3274,7 @@
        if (Z_STRVAL_PP(argv[0])) {
                to = Z_STRVAL_PP(argv[0]);
        } else {
-               php_error(E_WARNING, "%s(): No to field in mail command", 
get_active_function_name(TSRMLS_C));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "No to field in mail 
+command");
                RETURN_FALSE;
        }
 
@@ -3295,7 +3283,7 @@
        if (Z_STRVAL_PP(argv[1])) {
                subject = Z_STRVAL_PP(argv[1]);
        } else {
-               php_error(E_WARNING, "%s(): No subject field in mail command", 
get_active_function_name(TSRMLS_C));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "No subject field in mail 
+command");
                RETURN_FALSE;
        }
 
@@ -3305,7 +3293,7 @@
                message = Z_STRVAL_PP(argv[2]);
        } else {
                /* this is not really an error, so it is allowed. */
-               php_error(E_WARNING, "%s(): No message string in mail command", 
get_active_function_name(TSRMLS_C));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "No message string in mail 
+command");
                message = NULL;
        }
 
@@ -3487,80 +3475,77 @@
        string = Z_STRVAL_PP(str);
        end = Z_STRLEN_PP(str);
                        
-       if ((charset = ((char *)emalloc((end + 1) * 2)))) {
-               text = &charset[end + 1];
-               while (offset < end) {  /* Reached end of the string? */
-                       if ((charset_token = (long)php_memnstr(&string[offset], "=?", 
2, string + end))) {      /* Is there anything encoded in the string? */
-                               charset_token -= (long)string;
-                               if (offset != charset_token) {  /* Is there anything 
before the encoded data? */
-                                       /* Retrieve unencoded data that is found 
before encoded data */
-                                       memcpy(text, &string[offset], 
charset_token-offset);
-                                       text[charset_token - offset] = 0x00;
+       charset = (char *) emalloc((end + 1) * 2);
+       text = &charset[end + 1];
+       while (offset < end) {  /* Reached end of the string? */
+               if ((charset_token = (long)php_memnstr(&string[offset], "=?", 2, 
+string + end))) {      /* Is there anything encoded in the string? */
+                       charset_token -= (long)string;
+                       if (offset != charset_token) {  /* Is there anything before 
+the encoded data? */
+                               /* Retrieve unencoded data that is found before 
+encoded data */
+                               memcpy(text, &string[offset], charset_token-offset);
+                               text[charset_token - offset] = 0x00;
+                               MAKE_STD_ZVAL(myobject);
+                               object_init(myobject);
+                               add_property_string(myobject, "charset", "default", 1);
+                               add_property_string(myobject, "text", text, 1);
+                               zend_hash_next_index_insert(Z_ARRVAL_P(return_value), 
+(void *)&myobject, sizeof(zval *), NULL);
+                       }
+                       if ((encoding_token = 
+(long)php_memnstr(&string[charset_token+2], "?", 1, string+end))) {               /* 
+Find token for encoding */
+                               encoding_token -= (long)string;
+                               if ((end_token = 
+(long)php_memnstr(&string[encoding_token+3], "?=", 2, string+end))) {  /* Find token 
+for end of encoded data */
+                                       end_token -= (long)string;
+                                       memcpy(charset, &string[charset_token + 2], 
+encoding_token - (charset_token + 2));      /* Extract charset encoding */
+                                       charset[encoding_token-(charset_token + 2)] = 
+0x00;
+                                       encoding=string[encoding_token + 1];    /* 
+Extract encoding from string */
+                                       memcpy(text, &string[encoding_token + 3], 
+end_token - (encoding_token + 3));    /* Extract text */
+                                       text[end_token - (encoding_token + 3)] = 0x00;
+                                       decode = text;
+                                       if (encoding == 'q' || encoding == 'Q') {      
+ /* Decode 'q' encoded data */
+                                               for(i=0; text[i] != 0x00; i++) if 
+(text[i] == '_') text[i] = ' ';       /* Replace all *_' with space. */
+                                               decode = (char 
+*)rfc822_qprint((unsigned char *) text, strlen(text), &newlength);
+                                       } else if (encoding == 'b' || encoding == 'B') 
+{
+                                               decode = (char 
+*)rfc822_base64((unsigned char *) text, strlen(text), &newlength); /* Decode 'B' 
+encoded data */
+                                       }
+                                       if (decode == NULL) {
+                                               efree(charset);
+                                               zval_dtor(return_value);
+                                               RETURN_FALSE;
+                                       }
                                        MAKE_STD_ZVAL(myobject);
                                        object_init(myobject);
-                                       add_property_string(myobject, "charset", 
"default", 1);
-                                       add_property_string(myobject, "text", text, 1);
+                                       add_property_string(myobject, "charset", 
+charset, 1);
+                                       add_property_string(myobject, "text", decode, 
+1);
                                        
zend_hash_next_index_insert(Z_ARRVAL_P(return_value), (void *)&myobject, sizeof(zval 
*), NULL);
-                               }
-                               if ((encoding_token = 
(long)php_memnstr(&string[charset_token+2], "?", 1, string+end))) {               /* 
Find token for encoding */
-                                       encoding_token -= (long)string;
-                                       if ((end_token = 
(long)php_memnstr(&string[encoding_token+3], "?=", 2, string+end))) {  /* Find token 
for end of encoded data */
-                                               end_token -= (long)string;
-                                               memcpy(charset, &string[charset_token 
+ 2], encoding_token - (charset_token + 2));      /* Extract charset encoding */
-                                               charset[encoding_token-(charset_token 
+ 2)] = 0x00;
-                                               encoding=string[encoding_token + 1];   
 /* Extract encoding from string */
-                                               memcpy(text, &string[encoding_token + 
3], end_token - (encoding_token + 3));    /* Extract text */
-                                               text[end_token - (encoding_token + 3)] 
= 0x00;
-                                               decode = text;
-                                               if (encoding == 'q' || encoding == 
'Q') {       /* Decode 'q' encoded data */
-                                                       for(i=0; text[i] != 0x00; i++) 
if (text[i] == '_') text[i] = ' ';       /* Replace all *_' with space. */
-                                                       decode = (char 
*)rfc822_qprint((unsigned char *) text, strlen(text), &newlength);
-                                               } else if (encoding == 'b' || encoding 
== 'B') {
-                                                       decode = (char 
*)rfc822_base64((unsigned char *) text, strlen(text), &newlength); /* Decode 'B' 
encoded data */
-                                               }
-                                               if (decode == NULL) {
-                                                       efree(charset);
-                                                       zval_dtor(return_value);
-                                                       RETURN_FALSE;
-                                               }
-                                               MAKE_STD_ZVAL(myobject);
-                                               object_init(myobject);
-                                               add_property_string(myobject, 
"charset", charset, 1);
-                                               add_property_string(myobject, "text", 
decode, 1);
-                                               
zend_hash_next_index_insert(Z_ARRVAL_P(return_value), (void *)&myobject, sizeof(zval 
*), NULL);
-                                               fs_give((void**)&decode);
+                                       fs_give((void**)&decode);
                                                
-                                               offset = end_token+2;
-                                               for (i = 0; (string[offset + i] == ' 
') || (string[offset + i] == 0x0a) || (string[offset + i] == 0x0d); i++);
-                                               if ((string[offset + i] == '=') && 
(string[offset + i + 1] == '?') && (offset + i < end)) {
-                                                       offset += i;
-                                               }
-                                               continue;       /*/ Iterate the loop 
again please. */
+                                       offset = end_token+2;
+                                       for (i = 0; (string[offset + i] == ' ') || 
+(string[offset + i] == 0x0a) || (string[offset + i] == 0x0d); i++);
+                                       if ((string[offset + i] == '=') && 
+(string[offset + i + 1] == '?') && (offset + i < end)) {
+                                               offset += i;
                                        }
+                                       continue;       /*/ Iterate the loop again 
+please. */
                                }
-                       } else {
-                               /* Just some tweaking to optimize the code, and get 
the end statements work in a general manner.
-                                  If we end up here we didn't find a position for 
"charset_token",
-                                  so we need to set it to the start of the yet 
unextracted data. */
-                               charset_token = offset;
-                       }
-                       /* Return the rest of the data as unencoded, as it was either 
unencoded or was missing separators
-                          which rendered the the remainder of the string impossible 
for us to decode. */
-                       memcpy(text, &string[charset_token], end - charset_token);     
 /* Extract unencoded text from string */
-                       text[end - charset_token] = 0x00;
-                       MAKE_STD_ZVAL(myobject);
-                       object_init(myobject);
-                       add_property_string(myobject, "charset", "default", 1);
-                       add_property_string(myobject, "text", text, 1);
-                       zend_hash_next_index_insert(Z_ARRVAL_P(return_value), (void 
*)&myobject, sizeof(zval *), NULL);
-                       
-                       offset = end;   /* We have reached the end of the string. */
+                       }
+               } else {
+                       /* Just some tweaking to optimize the code, and get the end 
+statements work in a general manner.
+                        * If we end up here we didn't find a position for 
+"charset_token",
+                        * so we need to set it to the start of the yet unextracted 
+data.
+                        */
+                       charset_token = offset;
                }
-               efree(charset);
-       } else {
-               php_error(E_WARNING, "%s(): Unable to allocate temporary memory 
buffer", get_active_function_name(TSRMLS_C));
-               RETURN_FALSE;
+               /* Return the rest of the data as unencoded, as it was either 
+unencoded or was missing separators
+                  which rendered the the remainder of the string impossible for us to 
+decode. */
+               memcpy(text, &string[charset_token], end - charset_token);      /* 
+Extract unencoded text from string */
+               text[end - charset_token] = 0x00;
+               MAKE_STD_ZVAL(myobject);
+               object_init(myobject);
+               add_property_string(myobject, "charset", "default", 1);
+               add_property_string(myobject, "text", text, 1);
+               zend_hash_next_index_insert(Z_ARRVAL_P(return_value), (void 
+*)&myobject, sizeof(zval *), NULL);
+                       
+               offset = end;   /* We have reached the end of the string. */
        }
+       efree(charset);
 }
 /* }}} */
 
@@ -3923,7 +3908,7 @@
        top = mail_thread(imap_le_struct->imap_stream, "REFERENCES", NIL, 
mail_criteria(criteria), flags);
 
        if(top == NIL) {
-               php_error(E_WARNING, "%s(): Function returned an empty tree", 
get_active_function_name(TSRMLS_C));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Function returned an 
+empty tree");
                RETURN_FALSE;
        }
 

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to