<feed xmlns='http://www.w3.org/2005/Atom'>
<title>notmuch/tag-util.c, branch 0.15</title>
<subtitle>thread-based email index, search, and tagging</subtitle>
<id>https://git.notmuchmail.org/git/notmuch/atom?h=0.15</id>
<link rel='self' href='https://git.notmuchmail.org/git/notmuch/atom?h=0.15'/>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/'/>
<updated>2013-01-08T00:42:21Z</updated>
<entry>
<title>notmuch-tag.c: convert to use tag-util</title>
<updated>2013-01-08T00:42:21Z</updated>
<author>
<name>David Bremner</name>
<email>bremner@debian.org</email>
</author>
<published>2012-12-25T19:42:39Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=e9b6e464745fdebd4c6367dfc731859fe390b531'/>
<id>urn:sha1:e9b6e464745fdebd4c6367dfc731859fe390b531</id>
<content type='text'>
Command line parsing is factored out into a function
parse_tag_command_line in tag-util.c.

There is some duplicated code eliminated in tag_query, and a bunch of
translation from using the bare tag_op structs to using that tag-utils
API.
</content>
</entry>
<entry>
<title>tag-util: factor out rules for illegal tags, use in parse_tag_line</title>
<updated>2013-01-07T02:57:41Z</updated>
<author>
<name>David Bremner</name>
<email>bremner@debian.org</email>
</author>
<published>2012-12-25T19:42:38Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=e13e2591470f849c86d410f50ec8103d2a5daf5b'/>
<id>urn:sha1:e13e2591470f849c86d410f50ec8103d2a5daf5b</id>
<content type='text'>
This will allow us to be consistent between batch tagging and command
line tagging as far as what is an illegal tag.
</content>
</entry>
<entry>
<title>dump/restore: Use Xapian queries for batch-tag format</title>
<updated>2013-01-07T02:40:32Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@MIT.EDU</email>
</author>
<published>2013-01-06T20:22:41Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=425e2bc81263230df301c67d93c64ff9685ff840'/>
<id>urn:sha1:425e2bc81263230df301c67d93c64ff9685ff840</id>
<content type='text'>
This switches the new batch-tag format away from using a home-grown
hex-encoding scheme for message IDs in the dump to simply using Xapian
queries with Xapian quoting syntax.

This has a variety of advantages beyond presenting a cleaner and more
consistent interface.  Foremost is that it will dramatically simplify
the quoting for batch tagging, which shares the same input format.
While the hex-encoding is no better or worse for the simple ID queries
used by dump/restore, it becomes onerous for general-purpose queries
used in batch tagging.  It also better handles strange cases like
"id:foo and bar", since this is no longer syntactically valid.
</content>
</entry>
<entry>
<title>parse_tag_line: use enum for return value.</title>
<updated>2012-12-26T13:44:31Z</updated>
<author>
<name>David Bremner</name>
<email>bremner@debian.org</email>
</author>
<published>2012-12-25T19:42:37Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=1325e1afb9d93a26644803ec396ed2d87bf8b340'/>
<id>urn:sha1:1325e1afb9d93a26644803ec396ed2d87bf8b340</id>
<content type='text'>
This is essentially cosmetic, since success=0 is promised by
the comments in tag-utils.h.
</content>
</entry>
<entry>
<title>tag-utils: use the tag_opt_list_t as talloc context, if possible.</title>
<updated>2012-12-23T03:13:15Z</updated>
<author>
<name>David Bremner</name>
<email>bremner@debian.org</email>
</author>
<published>2012-12-16T19:58:15Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=ba4e8565294fc0a197b4c08082ad912c31888008'/>
<id>urn:sha1:ba4e8565294fc0a197b4c08082ad912c31888008</id>
<content type='text'>
The memory usage discipline of tag_op_list_t is never to free the
internal array of tag operations before freeing the whole list, so it
makes sense to take advantage of hierarchical de-allocation by talloc.

By not relying on the context passed into tag_parse_line, we can allow
tag_op_list_t structures to live longer than that context.
</content>
</entry>
<entry>
<title>tag-util: optimization of tag application</title>
<updated>2012-12-09T17:33:34Z</updated>
<author>
<name>David Bremner</name>
<email>bremner@debian.org</email>
</author>
<published>2012-11-13T04:23:49Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=5c7990f2510e2783ba4d02ad893d712ef201336d'/>
<id>urn:sha1:5c7990f2510e2783ba4d02ad893d712ef201336d</id>
<content type='text'>
The idea is not to bother with restore operations if they don't change
the set of tags. This is actually a relatively common case.

In order to avoid fancy datastructures, this method is quadratic in
the number of tags; at least on my mail database this doesn't seem to
be a big problem.
</content>
</entry>
<entry>
<title>tag-util.[ch]: New files for common tagging routines</title>
<updated>2012-12-09T17:33:34Z</updated>
<author>
<name>David Bremner</name>
<email>bremner@debian.org</email>
</author>
<published>2012-11-13T01:54:16Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=fb50cc41fe6f508118697d65a44e8f742a466ca0'/>
<id>urn:sha1:fb50cc41fe6f508118697d65a44e8f742a466ca0</id>
<content type='text'>
These are meant to be shared between notmuch-tag and notmuch-restore.

The bulk of the routines implement a "tag operation list" abstract
data type act as a structured representation of a set of tag
operations (typically coming from a single tag command or line of
input).
</content>
</entry>
</feed>
