From: Carl Worth Date: Wed, 21 Oct 2009 17:07:34 +0000 (-0700) Subject: notmuch setup: Collapse internal whitespace within message-id X-Git-Tag: 0.1~798 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=d29a6ec79167e87e4958d9500956668c430db4c6;p=notmuch.git 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. --- diff --git a/database.cc b/database.cc index 31afe7cc..1aef2a96 100644 --- a/database.cc +++ b/database.cc @@ -305,6 +305,7 @@ static char * parse_message_id (const char *message_id, const char **next) { const char *s, *end; + char *result; if (message_id == NULL) return NULL; @@ -339,10 +340,23 @@ parse_message_id (const char *message_id, const char **next) if (end > s && *end == '>') end--; - if (end > s) - return strndup (s, end - s + 1); - else + if (end <= s) 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