Re: [notmuch] [patch] store folder information

Subject: Re: [notmuch] [patch] store folder information

Date: Tue, 15 Dec 2009 13:22:19 -0800

To: Andreas Klöckner, notmuch@notmuchmail.org

Cc:

From: Carl Worth


On Mon, 14 Dec 2009 14:21:50 -0500, Andreas Klöckner <lists@informa.tiker.net> wrote:
> I've patched notmuch to retain information on which folder emails are stored 
> in. This makes the transition from a folders-and-procmail model somewhat 
> easier. The resulting changes are attached.

Very nice. I like this idea very much.

(We recently had discussions about automatically adding tags based on
the directories in which mail files were found, and I said I'd prefer a
solution which allowed the user to search on the directory name
instead.)

> @@ -116,6 +116,8 @@ skip_re_in_subject (const char *subject)
>  	    s++;
>  	if (strncasecmp (s, "re:", 3) == 0)
>  	    s += 3;
> +        else if (strncasecmp (s, "aw:", 3) == 0)
> +	    s += 3;
>  	else
>  	    break;
>      }

This hunk looks unrelated to the rest. Could you submit that separately,
please?

> +    gchar *full_folder_name = NULL;
> +    gchar *folder_base_name = NULL;
> +
> +    /* Find name of "folder" containing the email. */
> +    full_folder_name = g_strdup(path);
> +    while (1)
> +    {
> +        folder_base_name = g_path_get_basename(full_folder_name);

The trailing directory name is available already during the
traversal. So you don't need to search it back out again. See the patch
in the following message:

	id:87fx8bygi7.fsf@linux.vnet.ibm.com

which simply passes the trailing directory name along, (but skipping a
name of "cur" or "new" while traversing).

That kind of approach looks a lot nice to me.

Beyond that, though, I imagine some people have hierarchical folders as
well, so it probably makes sense to store them as well.

To do that, it's probably just a matter of calling gen_terms on the
complete filename. I haven't tested, but doing that should allow
Xapian's phrase searching to do the right thing for something like:

	filename:portion/of/the/path/name

I think something like that is what I would like to see.

-Carl
part-000.sig (application/pgp-signature)

Thread: