* ( key + (colonpos - beg) ) = '\0';
value = &key[(colonpos - beg) + 1];
unfold_rfc822_field(&value, &valueend);
- valuelen = valueend - value;
+ valuelen = valueend - value + 1;
/*
* Here's the big rfc822-to-citadel loop.
/* Strip the field out of the RFC822 header if we used it */
if (!converted) {
StrBufAppendBufPlain(OtherHeaders, beg, end - beg, 0);
+ StrBufAppendBufPlain(OtherHeaders, HKEY("\n"), 0);
}
/* If we've hit the end of the message, bail out */
if (pos >= totalend)
alldone = 1;
}
+ StrBufAppendBufPlain(OtherHeaders, HKEY("\n"), 0);
if (pos < totalend)
StrBufAppendBufPlain(OtherHeaders, pos, totalend - pos, 0);
FreeStrBuf(rfc822);
* The caller is responsible for freeing the returned buffer. If the requested
* field is not present, or anything else goes wrong, it returns NULL.
*/
-char *rfc822_fetch_field(char *rfc822, char *fieldname) {
+char *rfc822_fetch_field(const char *rfc822, const char *fieldname) {
char *fieldbuf = NULL;
- char *end_of_headers;
- char *field_start;
- char *ptr;
+ const char *end_of_headers;
+ const char *field_start;
+ const char *ptr;
char *cont;
char fieldhdr[SIZ];