int is_or = 0;
int pos = 0;
int i;
+ char *fieldptr;
if (num_items == 0) return(0);
}
else if (!strcasecmp(itemlist[pos], "BCC")) {
- /* FIXME */
+ fieldptr = rfc822_fetch_field(msg->cm_fields['M'], "Bcc");
+ if (fieldptr != NULL) {
+ if (bmstrstr(fieldptr, itemlist[pos+1], strncasecmp)) {
+ match = 1;
+ }
+ phree(fieldptr);
+ }
pos += 2;
}
}
else if (!strcasecmp(itemlist[pos], "BODY")) {
- if (bmstrcasestr(msg->cm_fields['M'], itemlist[pos+1])) {
+ if (bmstrstr(msg->cm_fields['M'], itemlist[pos+1], strncasecmp)) {
match = 1;
}
pos += 2;
}
else if (!strcasecmp(itemlist[pos], "CC")) {
- /* FIXME */
+ fieldptr = rfc822_fetch_field(msg->cm_fields['M'], "Cc");
+ if (fieldptr != NULL) {
+ if (bmstrstr(fieldptr, itemlist[pos+1], strncasecmp)) {
+ match = 1;
+ }
+ phree(fieldptr);
+ }
pos += 2;
}
}
else if (!strcasecmp(itemlist[pos], "FROM")) {
- if (bmstrcasestr(msg->cm_fields['A'], itemlist[pos+1])) {
+ if (bmstrstr(msg->cm_fields['A'], itemlist[pos+1], strncasecmp)) {
match = 1;
}
pos += 2;
}
else if (!strcasecmp(itemlist[pos], "SUBJECT")) {
- if (bmstrcasestr(msg->cm_fields['U'], itemlist[pos+1])) {
+ if (bmstrstr(msg->cm_fields['U'], itemlist[pos+1], strncasecmp)) {
match = 1;
}
pos += 2;
else if (!strcasecmp(itemlist[pos], "TEXT")) {
for (i='A'; i<='Z'; ++i) {
- if (bmstrcasestr(msg->cm_fields[i], itemlist[pos+1])) {
+ if (bmstrstr(msg->cm_fields[i], itemlist[pos+1], strncasecmp)) {
match = 1;
}
}
}
else if (!strcasecmp(itemlist[pos], "TO")) {
- if (bmstrcasestr(msg->cm_fields['R'], itemlist[pos+1])) {
+ if (bmstrstr(msg->cm_fields['R'], itemlist[pos+1], strncasecmp)) {
match = 1;
}
pos += 2;
CtdlFreeMessage(msg);
}
else {
- lprintf(1, "SEARCH internal error\n");
+ lprintf(CTDL_ERR, "SEARCH internal error\n");
}
}
cprintf("\r\n");