<feed xmlns='http://www.w3.org/2005/Atom'>
<title>notmuch/lib/notmuch-private.h, branch 0.13.2</title>
<subtitle>thread-based email index, search, and tagging</subtitle>
<id>https://git.notmuchmail.org/git/notmuch/atom?h=0.13.2</id>
<link rel='self' href='https://git.notmuchmail.org/git/notmuch/atom?h=0.13.2'/>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/'/>
<updated>2012-05-24T01:30:55Z</updated>
<entry>
<title>lib: Make notmuch_database_get_directory return NULL if the directory is not found</title>
<updated>2012-05-24T01:30:55Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@MIT.EDU</email>
</author>
<published>2012-05-18T04:13:37Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=fe1ca1410423d99db09543f4a97bc2ba0c6ade81'/>
<id>urn:sha1:fe1ca1410423d99db09543f4a97bc2ba0c6ade81</id>
<content type='text'>
Using the new support from _notmuch_directory_create, this makes
notmuch_database_get_directory a read-only operation that simply
returns the directory object if it exists or NULL otherwise.  This
also means that notmuch_database_get_directory can work on read-only
databases.

This change breaks the directory mtime workaround in notmuch-new.c by
fixing the exact issue it was working around.  This permits mtime
update races to prevent scans of changed directories, which
non-deterministically breaks a few tests.  The next patch fixes this.
</content>
</entry>
<entry>
<title>lib: Perform the same transformation to _notmuch_database_filename_to_direntry</title>
<updated>2012-05-24T01:30:43Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@MIT.EDU</email>
</author>
<published>2012-05-18T04:13:36Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=67ae2377a9ec2da296a2e012352f962664a4d1a8'/>
<id>urn:sha1:67ae2377a9ec2da296a2e012352f962664a4d1a8</id>
<content type='text'>
Now _notmuch_database_filename_to_direntry takes a flags argument and
can indicate if the necessary directory documents do not exist.
Again, callers have been updated, but retain their original behavior.
</content>
</entry>
<entry>
<title>lib: Perform the same transformation to _notmuch_database_find_directory_id</title>
<updated>2012-05-24T01:30:32Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@MIT.EDU</email>
</author>
<published>2012-05-18T04:13:35Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=0c950146a14fa2bb0a0bf542073b2cdca141afd1'/>
<id>urn:sha1:0c950146a14fa2bb0a0bf542073b2cdca141afd1</id>
<content type='text'>
Now _notmuch_database_find_directory_id takes a flags argument, which
it passes through to _notmuch_directory_create and can indicate if the
directory does not exist.  Again, callers have been updated, but
retain their original behavior.
</content>
</entry>
<entry>
<title>lib: Make directory document creation optional for _notmuch_directory_create</title>
<updated>2012-05-24T01:30:20Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@MIT.EDU</email>
</author>
<published>2012-05-18T04:13:34Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=f69314fbd37f403a395b7c1c44595c8f696b05b7'/>
<id>urn:sha1:f69314fbd37f403a395b7c1c44595c8f696b05b7</id>
<content type='text'>
Previously this function would create directory documents if they
didn't exist.  As a result, it could only be used on writable
databases.  This adds an argument to make creation optional and to
make this function work on read-only databases.  We use a flag
argument to avoid a bare boolean and to permit future expansion.

Both callers have been updated, but currently retain the old behavior.
We'll take advantage of the new argument in the following patches.
</content>
</entry>
<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>
</feed>
