notmuch-index-message: Use local-part of email addres in lieu of name.

If there's no name given, take the portion of the email addres
before the '@' sign.

One step closer to matching sup's terms in the database.
This commit is contained in:
Carl Worth 2009-10-14 13:46:01 -07:00
parent be72bf3070
commit 535b14dcba

View file

@ -139,11 +139,29 @@ gen_terms_address_name (Xapian::TermGenerator term_gen,
const char *prefix_name) const char *prefix_name)
{ {
const char *name; const char *name;
int own_name = 0;
name = internet_address_get_name (address); name = internet_address_get_name (address);
/* In the absence of a name, we'll strip the part before the @
* from the address. */
if (! name) {
InternetAddressMailbox *mailbox = INTERNET_ADDRESS_MAILBOX (address);
const char *addr = internet_address_mailbox_get_addr (mailbox);
const char *at;
at = strchr (addr, '@');
if (at) {
name = strndup (addr, at - addr);
own_name = 1;
}
}
if (name) if (name)
gen_terms (term_gen, prefix_name, name); gen_terms (term_gen, prefix_name, name);
if (own_name)
free ((void *) name);
} }
static void static void