notmuch setup: Collapse internal whitespace within message-id

I'm too lazy to see what the RFC says, but I know that having
whitespace inside a message-ID is sure to confuse things. And
besides, this makes things more compatible with sup so that
I have some hope of importing sup labels.
This commit is contained in:
Carl Worth 2009-10-21 10:07:34 -07:00
parent 65baa4f4e7
commit d29a6ec791

View file

@ -305,6 +305,7 @@ static char *
parse_message_id (const char *message_id, const char **next) parse_message_id (const char *message_id, const char **next)
{ {
const char *s, *end; const char *s, *end;
char *result;
if (message_id == NULL) if (message_id == NULL)
return NULL; return NULL;
@ -339,10 +340,23 @@ parse_message_id (const char *message_id, const char **next)
if (end > s && *end == '>') if (end > s && *end == '>')
end--; end--;
if (end > s) if (end <= s)
return strndup (s, end - s + 1);
else
return NULL; return NULL;
result = strndup (s, end - s + 1);
/* Finally, collapse any whitespace that is within the message-id
* itself. */
{
char *r;
int len;
for (r = result, len = strlen (r); *r; r++, len--)
if (*r == ' ' || *r == '\t')
memmove (r, r+1, len);
}
return result;
} }
/* Parse a References header value, putting a copy of each referenced /* Parse a References header value, putting a copy of each referenced