cvs: /php4/ext/imap php_imap.c
| From: | Charles Hagenbuch | Date: | Fri, 07 Apr 2000 04:43:57 +0000 |
| Subject: | cvs: /php4/ext/imap php_imap.c | ||
| Groups: | php.version4 | ||
| Request: | Send a blank email to php-version4+get-13265@lists.php.net to get a copy of this message | ||
chagenbu Thu Apr 6 21:43:57 2000 EDT
Modified files:
/php4/ext/imap php_imap.c
Log:
cleaning up some small off-by-one errors and argcount follies. Can someone
take a look at the errors imap_mime_header_decode() generates when
compiling? I took a quick look, but don't have time to puzzle through that
code.
Index: php4/ext/imap/php_imap.c
diff -u php4/ext/imap/php_imap.c:1.7 php4/ext/imap/php_imap.c:1.8
--- php4/ext/imap/php_imap.c:1.7 Thu Apr 6 09:57:32 2000
+++ php4/ext/imap/php_imap.c Thu Apr 6 21:43:26 2000
@@ -22,7 +22,7 @@
| PHP 4.0 updates: Zeev Suraski <zeev@zend.com> |
+----------------------------------------------------------------------+
*/
-/* $Id: php_imap.c,v 1.7 2000/04/06 16:57:32 cmv Exp $ */
+/* $Id: php_imap.c,v 1.8 2000/04/07 04:43:26 chagenbu Exp $ */
#define IMAP41
@@ -1058,23 +1058,23 @@
tmp[3] = cache->answered ? 'A' : ' ';
tmp[4] = cache->deleted ? 'D' : ' ';
tmp[5] = cache->draft ? 'X' : ' ';
- sprintf(tmp+5, "%4ld) ", cache->msgno);
- mail_date(tmp+11,cache);
- tmp[17] = ' ';
- tmp[18] = '\0';
- mail_fetchfrom(tmp+18,imap_le_struct->imap_stream,msgno, (long) 20);
- strcat(tmp," ");
+ sprintf(tmp + 6, "%4ld) ", cache->msgno);
+ mail_date(tmp+11, cache);
+ tmp[18] = ' ';
+ tmp[19] = '\0';
+ mail_fetchfrom(tmp+19, imap_le_struct->imap_stream, msgno, (long)20);
+ strcat(tmp, " ");
if ((i = cache->user_flags)) {
strcat(tmp, "{");
while (i) {
strcat(tmp,imap_le_struct->imap_stream->user_flags[find_rightmost_bit (&i)]);
if (i) strcat(tmp," ");
}
- strcat(tmp,"} ");
+ strcat(tmp, "} ");
}
- mail_fetchsubject(t=tmp+strlen(tmp),imap_le_struct->imap_stream,msgno,(long)25);
- sprintf(t+=strlen(t)," (%ld chars)",cache->rfc822_size);
- add_next_index_string(return_value,tmp,1);
+ mail_fetchsubject(t = tmp + strlen(tmp), imap_le_struct->imap_stream, msgno, (long)25);
+ sprintf(t += strlen(t), " (%ld chars)", cache->rfc822_size);
+ add_next_index_string(return_value, tmp, 1);
}
}
/* }}} */
@@ -1167,7 +1167,7 @@
Move specified message to a mailbox */
PHP_FUNCTION(imap_mail_move)
{
- pval *streamind,*seq, *folder, *options;
+ pval *streamind, *seq, *folder, *options;
int ind, ind_type;
pils *imap_le_struct;
int myargcount = ARG_COUNT(ht);
@@ -1179,15 +1179,18 @@
convert_to_long(streamind);
convert_to_string(seq);
convert_to_string(folder);
-
+ if (myargcount == 4) {
+ convert_to_long(options);
+ }
+
ind = streamind->value.lval;
-
+
imap_le_struct = (pils *)zend_list_find(ind, &ind_type);
- if(!imap_le_struct || !IS_STREAM(ind_type)) {
+ if (!imap_le_struct || !IS_STREAM(ind_type)) {
php_error(E_WARNING, "Unable to find stream pointer");
RETURN_FALSE;
}
- if (
mail_copy_full(imap_le_struct->imap_stream,seq->value.str.val,folder->value.str.val,myargcount
== 4 ? ( options->value.lval | CP_MOVE ) : CP_MOVE )==T ) {
+ if (mail_copy_full(imap_le_struct->imap_stream, seq->value.str.val,
folder->value.str.val, myargcount == 4 ? (options->value.lval | CP_MOVE) : CP_MOVE) == T) {
RETURN_TRUE;
} else {
RETURN_FALSE;
@@ -1278,7 +1281,7 @@
php_error(E_WARNING, "Unable to find stream pointer");
RETURN_FALSE;
}
- if ( mail_delete(imap_le_struct->imap_stream,folder->value.str.val)==T ) {
+ if (mail_delete(imap_le_struct->imap_stream,folder->value.str.val)==T ) {
RETURN_TRUE;
} else {
RETURN_FALSE;
@@ -1482,19 +1485,21 @@
int ind, ind_type;
pils *imap_le_struct;
int myargc=ARG_COUNT(ht);
-
+
if (myargc < 2 || myargc > 3 ||
zend_get_parameters(ht,myargc,&streamind,&sequence,&flags) == FAILURE) {
- WRONG_PARAM_COUNT;
+ WRONG_PARAM_COUNT;
}
-
+
convert_to_long(streamind);
convert_to_string(sequence);
- if(myargc==3) convert_to_long(flags);
-
+ if (myargc == 3) {
+ convert_to_long(flags);
+ }
+
ind = streamind->value.lval;
-
+
imap_le_struct = (pils *)zend_list_find(ind, &ind_type);
- if(!imap_le_struct || !IS_STREAM(ind_type)) {
+ if (!imap_le_struct || !IS_STREAM(ind_type)) {
php_error(E_WARNING, "Unable to find stream pointer");
RETURN_FALSE;
}
@@ -1513,11 +1518,15 @@
pils *imap_le_struct;
int myargc=ARG_COUNT(ht);
- if ( myargc < 2 || myargc > 3 ||
zend_get_parameters(ht,myargc,&streamind,&sequence,&flags) == FAILURE) {
+ if (myargc < 2 || myargc > 3 ||
zend_get_parameters(ht,myargc,&streamind,&sequence,&flags) == FAILURE) {
WRONG_PARAM_COUNT;
}
+
convert_to_long(streamind);
convert_to_string(sequence);
+ if (myargc == 3) {
+ convert_to_long(flags);
+ }
ind = streamind->value.lval;
@@ -1632,9 +1641,11 @@
}
convert_to_string_ex(headers);
- if (myargc == 2) convert_to_string_ex(defaulthost);
+ if (myargc == 2) {
+ convert_to_string_ex(defaulthost);
+ }
- if (myargc == 5) {
+ if (myargc == 2) {
rfc822_parse_msg(&en, NULL, (*headers)->value.str.val, (*headers)->value.str.len, NULL,
(*defaulthost)->value.str.val, NIL);
} else {
rfc822_parse_msg(&en, NULL, (*headers)->value.str.val, (*headers)->value.str.len, NULL,
"UNKNOWN", NIL);
@@ -2802,18 +2813,18 @@
pils *imap_le_struct;
pval *myoverview;
char address[MAILTMPLEN];
- int myargc=ARG_COUNT(ht);
- long status,flags=0L;
+ long status, flags=0L;
switch (ZEND_NUM_ARGS()) {
case 2:
- if (zend_get_parameters(ht, 2, &streamind, &sequence)==FAILURE) {
+ if (zend_get_parameters(ht, 2, &streamind, &sequence) == FAILURE) {
ZEND_WRONG_PARAM_COUNT();
}
break;
case 3:
- if (zend_get_parameters(ht, 3, &streamind, &sequence, &pflags)==FAILURE) {
+ if (zend_get_parameters(ht, 3, &streamind, &sequence, &pflags) == FAILURE) {
ZEND_WRONG_PARAM_COUNT();
+ } else {
convert_to_long(pflags);
flags = pflags->value.lval;
}
@@ -2825,7 +2836,7 @@
convert_to_long(streamind);
convert_to_string(sequence);
-
+
ind = streamind->value.lval;
imap_le_struct = (pils *)zend_list_find(ind, &ind_type);
@@ -2834,36 +2845,36 @@
RETURN_FALSE;
}
array_init(return_value);
-
- status = (flags & FT_UID)
- ? mail_uid_sequence (imap_le_struct->imap_stream,sequence->value.str.val)
- : mail_sequence (imap_le_struct->imap_stream,sequence->value.str.val)
- ;
-
-
- if (status) {
+
+ status = (flags & FT_UID)
+ ? mail_uid_sequence (imap_le_struct->imap_stream,sequence->value.str.val)
+ : mail_sequence (imap_le_struct->imap_stream,sequence->value.str.val)
+ ;
+
+
+ if (status) {
MESSAGECACHE *elt;
ENVELOPE *env;
unsigned long i;
-
+
for (i = 1; i <= imap_le_struct->imap_stream->nmsgs; i++) {
if (((elt = mail_elt (imap_le_struct->imap_stream,i))->sequence) &&
(env = mail_fetch_structure (imap_le_struct->imap_stream,i,NIL,NIL))) {
MAKE_STD_ZVAL(myoverview);
object_init(myoverview);
if(env->subject)
- add_property_string(myoverview,"subject",env->subject,1);
+ add_property_string(myoverview,"subject",env->subject,1);
if(env->from) {
- env->from->next=NULL;
- rfc822_write_address(address,env->from);
- add_property_string(myoverview,"from",address,1);
+ env->from->next=NULL;
+ rfc822_write_address(address,env->from);
+ add_property_string(myoverview,"from",address,1);
}
if(env->date)
- add_property_string(myoverview,"date",env->date,1);
+ add_property_string(myoverview,"date",env->date,1);
if(env->message_id)
- add_property_string(myoverview,"message_id",env->message_id,1);
+ add_property_string(myoverview,"message_id",env->message_id,1);
if(env->references)
- add_property_string(myoverview,"references",env->references,1);
+ add_property_string(myoverview,"references",env->references,1);
add_property_long(myoverview,"size",elt->rfc822_size);
add_property_long(myoverview,"uid",mail_uid(imap_le_struct->imap_stream,i));
add_property_long(myoverview,"msgno",i);
@@ -3396,7 +3407,7 @@
text=&charset[end+1];
while(offset<end) { // Reached end of the string?
if((charset_token=php_memnstr(&string[offset],"=?",2,string+end))) { // Is there
anything encoded in the string?
- charset_token-=(unsigned long)string;
+ charset_token -= (unsigned long)string;
if(offset!=charset_token) { // Is there anything before the encoded data?
// Retrieve unencoded data that is found at the beginning
memcpy(text,&string[offset],charset_token-offset);