lib: Fix name reordering to handle commas without spaces

Notmuch automatically re-orders names of the format "Last, First" to
"First Last" when the associated email address is
First.Last@example.com. But, if a name is of the format "Last,First"
then notmuch will format the name as "irst Last". Handle any number of
spaces after the comma, including none.
This commit is contained in:
Adam Wolfe Gordon 2013-02-25 15:47:13 -07:00 committed by David Bremner
parent a629b2e1cb
commit f55b35b3df

View file

@ -190,8 +190,16 @@ _thread_cleanup_author (notmuch_thread_t *thread,
if (comma && strlen(comma) > 1) { if (comma && strlen(comma) > 1) {
/* let's assemble what we think is the correct name */ /* let's assemble what we think is the correct name */
lname = comma - author; lname = comma - author;
fname = strlen(author) - lname - 2;
strncpy(clean_author, comma + 2, fname); /* Skip all the spaces after the comma */
fname = strlen(author) - lname - 1;
comma += 1;
while (*comma == ' ') {
fname -= 1;
comma += 1;
}
strncpy(clean_author, comma, fname);
*(clean_author+fname) = ' '; *(clean_author+fname) = ' ';
strncpy(clean_author + fname + 1, author, lname); strncpy(clean_author + fname + 1, author, lname);
*(clean_author+fname+1+lname) = '\0'; *(clean_author+fname+1+lname) = '\0';