<feed xmlns='http://www.w3.org/2005/Atom'>
<title>notmuch/lib/notmuch-private.h, branch 0.13</title>
<subtitle>thread-based email index, search, and tagging</subtitle>
<id>https://git.notmuchmail.org/git/notmuch/atom?h=0.13</id>
<link rel='self' href='https://git.notmuchmail.org/git/notmuch/atom?h=0.13'/>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/'/>
<updated>2012-04-15T12:42:15Z</updated>
<entry>
<title>lib: work around talloc_steal usage from C++ code</title>
<updated>2012-04-15T12:42:15Z</updated>
<author>
<name>Jani Nikula</name>
<email>jani@nikula.org</email>
</author>
<published>2012-04-12T20:57:39Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=de0557477d908be26615e8fda9f5eb62bed68b65'/>
<id>urn:sha1:de0557477d908be26615e8fda9f5eb62bed68b65</id>
<content type='text'>
Implicit typecast from 'void *' to 'T *' is okay in C, but not in
C++. In talloc_steal, an explicit cast is provided for type safety in
some GCC versions. Otherwise, a cast is required. Provide a template
function for this to maintain type safety, and redefine talloc_steal
to use it.

The template must be outside the extern "C" block (NOTMUCH_BEGIN_DECLS
and NOTMUCH_END_DECLS), but keep it within the GCC visibility #pragma.

No functional changes, apart from making the library build with
compilers other than recent GCC.

Signed-off-by: Jani Nikula &lt;jani@nikula.org&gt;
</content>
</entry>
<entry>
<title>lib: Add the exclude flag to notmuch_query_search_threads</title>
<updated>2012-03-02T12:28:39Z</updated>
<author>
<name>Mark Walters</name>
<email>markwalters1009@gmail.com</email>
</author>
<published>2012-03-01T22:30:38Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=1a53f9f116fa7c460cda3df532be921baaafb082'/>
<id>urn:sha1:1a53f9f116fa7c460cda3df532be921baaafb082</id>
<content type='text'>
Add the NOTMUCH_MESSAGE_FLAG_EXCLUDED flag to
notmuch_query_search_threads. Implemented by inspecting the tags
directly in _notmuch_thread_create/_thread_add_message rather than as
a Xapian query for speed reasons.

Note notmuch_thread_get_matched_messages now returns the number of
non-excluded matching messages. This API is not totally desirable but
fixing it means breaking binary compatibility so we delay that.
</content>
</entry>
<entry>
<title>lib: Make notmuch_query_search_messages set the exclude flag</title>
<updated>2012-03-02T12:27:47Z</updated>
<author>
<name>Mark Walters</name>
<email>markwalters1009@gmail.com</email>
</author>
<published>2012-03-01T22:30:37Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=c9eb94d7fb520612374870dda9b9058a85c9b03d'/>
<id>urn:sha1:c9eb94d7fb520612374870dda9b9058a85c9b03d</id>
<content type='text'>
Add a flag NOTMUCH_MESSAGE_FLAG_EXCLUDED which is set by
notmuch_query_search_messages for excluded messages. Also add an
option omit_excluded_messages to the search that we do not want the
excludes at all.

This exclude flag will be added to notmuch_query_search threads in the
next patch.
</content>
</entry>
<entry>
<title>lib: Add support for automatically excluding tags from queries</title>
<updated>2012-01-17T01:06:35Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@MIT.EDU</email>
</author>
<published>2012-01-15T00:17:33Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=3b76adf9e2c026dd03b820f4c6eab50e25444113'/>
<id>urn:sha1:3b76adf9e2c026dd03b820f4c6eab50e25444113</id>
<content type='text'>
This is useful for tags like "deleted" and "spam" that people
generally want to exclude from query results.  These exclusions will
be overridden if a tag is explicitly mentioned in a query.
</content>
</entry>
<entry>
<title>Store "from" and "subject" headers in the database.</title>
<updated>2011-11-14T21:10:58Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@MIT.EDU</email>
</author>
<published>2011-11-06T17:17:36Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=567bcbc294b3aed632d18eb22056840292bdeb1e'/>
<id>urn:sha1:567bcbc294b3aed632d18eb22056840292bdeb1e</id>
<content type='text'>
This is a rebase and cleanup of Istvan Marko's patch from
id:m3pqnj2j7a.fsf@zsu.kismala.com

Search retrieves these headers for every message in the search
results.  Previously, this required opening and parsing every message
file.  Storing them directly in the database significantly reduces IO
and computation, speeding up search by between 50% and 10X.

Taking full advantage of this requires a database rebuild, but it will
fall back to the old behavior for messages that do not have headers
stored in the database.
</content>
</entry>
<entry>
<title>xutil.c: remove duplicate copies, create new library libutil.a to contain xutil.</title>
<updated>2011-10-31T02:09:49Z</updated>
<author>
<name>David Bremner</name>
<email>bremner@debian.org</email>
</author>
<published>2011-10-23T15:05:13Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=1dedfc90f6eee7cad10f1a1ceb39a7a1c4dbd1b1'/>
<id>urn:sha1:1dedfc90f6eee7cad10f1a1ceb39a7a1c4dbd1b1</id>
<content type='text'>
We keep the lib/xutil.c version. As a consequence, also factor out
_internal_error and associated macros.  It might be overkill to make a
new file error_util.c for this, but _internal_error does not really
belong in database.cc.
</content>
</entry>
<entry>
<title>lib: Remove message document directly after removing the last file name.</title>
<updated>2011-09-24T01:50:39Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@mit.edu</email>
</author>
<published>2011-06-11T04:07:54Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=bfe4555325086d5cb99e3962424128f94d1c921d'/>
<id>urn:sha1:bfe4555325086d5cb99e3962424128f94d1c921d</id>
<content type='text'>
Previously, notmuch_database_remove_message would remove the message
file name, sync the change to the message document, re-find the
message document, and then delete it if there were no more file names.
An interruption after sync'ing would result in a file-name-less,
permanently un-removable zombie message that would produce errors and
odd results in searches.  We could wrap this in an atomic section, but
it's much simpler to eliminate the round-about approach and just
delete the message document instead of sync'ing it if we removed the
last filename.
</content>
</entry>
<entry>
<title>Mark some structures in the library interface with visibility=default attribute.</title>
<updated>2011-05-11T20:27:15Z</updated>
<author>
<name>Carl Worth</name>
<email>cworth@cworth.org</email>
</author>
<published>2011-05-11T20:23:13Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=d5523ead90b6be2b07d4af745b8ed9b980a6b9f1'/>
<id>urn:sha1:d5523ead90b6be2b07d4af745b8ed9b980a6b9f1</id>
<content type='text'>
As of gcc 4.6, there are new warnings from -Wattributes along the lines of:

	warning: ‘_notmuch_messages’ declared with greater visibility
	than the type of its field ‘_notmuch_messages::iterator’
	[-Wattributes]

To squelch these, we decorate all such containing structs with
__attribute__((visibility("default"))). We take care to let only the
C++ compiler see this, (since the C compiler would otherwise warn
about ignored visibility attributes on types).
</content>
</entry>
<entry>
<title>Implement an internal generic string list and use it.</title>
<updated>2011-03-21T06:45:18Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@mit.edu</email>
</author>
<published>2010-12-09T00:26:05Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=f3c1eebfaf8526129ae6946cbcd44a3c602563d6'/>
<id>urn:sha1:f3c1eebfaf8526129ae6946cbcd44a3c602563d6</id>
<content type='text'>
This replaces the guts of the filename list and tag list, making those
interfaces simple iterators over the generic string list.  The
directory, message filename, and tags-related code now build generic
string lists and then wraps them in specific iterators.  The real wins
come in later patches, when we use these for even more generic
functionality.

As a nice side-effect, this also eliminates the annoying dependency on
GList in the tag list.
</content>
</entry>
<entry>
<title>Add support for folder-based searching.</title>
<updated>2011-01-15T23:37:43Z</updated>
<author>
<name>Carl Worth</name>
<email>cworth@cworth.org</email>
</author>
<published>2011-01-15T22:09:04Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=99cfa2703080c2474e6b8aec0cae86135ae23f1d'/>
<id>urn:sha1:99cfa2703080c2474e6b8aec0cae86135ae23f1d</id>
<content type='text'>
A new "folder:" prefix in the query string can now be used to match
the directories in which mail files are stored.

The addition of this feature causes the recently added
search-by-folder tests to now pass.
</content>
</entry>
</feed>
