pField++, sField++)
{
if ((*sField=='\r') || (*sField=='\n')) {
- while (isspace(*sField))
- sField++;
- *pField = *sField;
+ sField++;
+ if (*sField == '\n')
+ sField++;
+ *pField = *sField;
}
else {
if (*sField=='\"') quote = 1 - quote;
processed = 1;
}
+ else if (!strcasecmp(key, "Reply-To")) {
+ if (msg->cm_fields['K'] != NULL) {
+ free(msg->cm_fields['K']);
+ }
+ msg->cm_fields['K'] = strndup(value, valuelen);
+ processed = 1;
+ }
+
else if (!strcasecmp(key, "In-reply-to")) {
if (msg->cm_fields['W'] == NULL) { /* References: supersedes In-reply-to: */
msg->cm_fields['W'] = strndup(value, valuelen);
(done == 0) )
{
- if ((*pos=='\n') &&
- (!isspace(*(pos+1))))
+ if ( (*pos=='\n') && ((*(pos+1))!=0x20) && ((*(pos+1))!=0x09) )
{
end = pos;
}
snprintf(fieldhdr, sizeof fieldhdr, "%s:", fieldname);
/* Locate the end of the headers, so we don't run past that point */
- end_of_headers = bmstrcasestr(rfc822, "\n\r\n");
+ end_of_headers = cbmstrcasestr(rfc822, "\n\r\n");
if (end_of_headers == NULL) {
- end_of_headers = bmstrcasestr(rfc822, "\n\n");
+ end_of_headers = cbmstrcasestr(rfc822, "\n\n");
}
if (end_of_headers == NULL) return (NULL);
- field_start = bmstrcasestr(rfc822, fieldhdr);
+ field_start = cbmstrcasestr(rfc822, fieldhdr);
if (field_start == NULL) return(NULL);
if (field_start > end_of_headers) return(NULL);
strcpy(fieldbuf, "");
ptr = field_start;
- ptr = memreadline(ptr, fieldbuf, SIZ-strlen(fieldbuf) );
+ ptr = cmemreadline(ptr, fieldbuf, SIZ-strlen(fieldbuf) );
while ( (isspace(ptr[0])) && (ptr < end_of_headers) ) {
strcat(fieldbuf, " ");
cont = &fieldbuf[strlen(fieldbuf)];
- ptr = memreadline(ptr, cont, SIZ-strlen(fieldbuf) );
+ ptr = cmemreadline(ptr, cont, SIZ-strlen(fieldbuf) );
striplt(cont);
}