index: Store "Full Name <user@example.com>" addressses in the database

We put these is as a separate term so that they can be extracted.
We don't actually need this for searching, since typing an email
address in as a search term will already trigger a phrase search
that does exactly what's wanted.
This commit is contained in:
Carl Worth 2009-10-28 13:09:08 -07:00
parent f9bbd7baa0
commit 3a91df21ca
2 changed files with 17 additions and 4 deletions

View file

@ -106,6 +106,7 @@ prefix_t BOOLEAN_PREFIX_INTERNAL[] = {
{ "type", "T" },
{ "ref", "XREFERENCE" },
{ "timestamp", "XTIMESTAMP" },
{ "contact", "XCONTACT" }
};
prefix_t BOOLEAN_PREFIX_EXTERNAL[] = {

View file

@ -30,13 +30,23 @@ _index_address_mailbox (notmuch_message_t *message,
InternetAddress *address)
{
InternetAddressMailbox *mailbox = INTERNET_ADDRESS_MAILBOX (address);
const char *name, *addr = internet_address_mailbox_get_addr (mailbox);
const char *name, *addr;
char *contact;
int own_name = 0;
if (addr)
_notmuch_message_gen_terms (message, prefix_name, addr);
name = internet_address_get_name (address);
addr = internet_address_mailbox_get_addr (mailbox);
if (addr) {
if (name) {
contact = talloc_asprintf (message, "\"%s\" <%s>",
name, addr);
_notmuch_message_add_term (message, "contact", contact);
talloc_free (contact);
} else {
_notmuch_message_add_term (message, "contact", addr);
}
}
/* In the absence of a name, we'll strip the part before the @
* from the address. */
@ -52,6 +62,8 @@ _index_address_mailbox (notmuch_message_t *message,
if (name)
_notmuch_message_gen_terms (message, prefix_name, name);
if (addr)
_notmuch_message_gen_terms (message, prefix_name, addr);
}
static void