<feed xmlns='http://www.w3.org/2005/Atom'>
<title>notmuch/lib, branch debian/0.39_rc2-1</title>
<subtitle>thread-based email index, search, and tagging</subtitle>
<id>https://git.notmuchmail.org/git/notmuch/atom?h=debian%2F0.39_rc2-1</id>
<link rel='self' href='https://git.notmuchmail.org/git/notmuch/atom?h=debian%2F0.39_rc2-1'/>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/'/>
<updated>2024-07-26T06:59:11Z</updated>
<entry>
<title>config: allow custom separators in author lists</title>
<updated>2024-07-26T06:59:11Z</updated>
<author>
<name>Lars Kotthoff</name>
<email>larsko@uwyo.edu</email>
</author>
<published>2023-12-22T21:06:34Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=d34720e7b35da771d9a06ee8dbdc158680684e99'/>
<id>urn:sha1:d34720e7b35da771d9a06ee8dbdc158680684e99</id>
<content type='text'>
Allow distinguishing between commas separating authors and separating
first and last names.

Amended by db: reformat NEWS entry and commit message. Tweaked
whitespace in lib/thread.cc.
</content>
</entry>
<entry>
<title>lib: thread-safe s-expression query parser</title>
<updated>2024-07-25T10:15:02Z</updated>
<author>
<name>Kevin Boulain</name>
<email>kevin@boula.in</email>
</author>
<published>2023-08-27T12:31:02Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=a1921a25b71b23335ac01db7fc2f5462bf5edd3a'/>
<id>urn:sha1:a1921a25b71b23335ac01db7fc2f5462bf5edd3a</id>
<content type='text'>
Follow-up of 6273966d, now that sfsexp 1.4.1 doesn't rely on globals
anymore by default (https://github.com/mjsottile/sfsexp/issues/21).

This simply defers the initial query generation to use the thread-safe
helper (xapian_query_match_all) instead of Xapian::Query::MatchAll.
</content>
</entry>
<entry>
<title>lib: clear error message on success in _choose_database_path</title>
<updated>2023-12-06T11:33:05Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2023-12-03T18:56:44Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=b97cd90040a8353e6f94c317af2020f3d6e67a2e'/>
<id>urn:sha1:b97cd90040a8353e6f94c317af2020f3d6e67a2e</id>
<content type='text'>
Previously we both found a database and returned a message saying that
the database could not be found (along with a success code). This
change should prevent spurious error output.
</content>
</entry>
<entry>
<title>lib/string_map: simulate stable sorting</title>
<updated>2023-11-28T13:19:21Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2023-11-25T12:33:52Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=4f82acce17ca51b03bea2abe3eefb7c3026138fe'/>
<id>urn:sha1:4f82acce17ca51b03bea2abe3eefb7c3026138fe</id>
<content type='text'>
qsort(3) does not promise stability, and recent versions of glibc have
been showing more unstable behaviour [2]. Michael Gruber observed [1] test
breakage due to changing output order for message properties.

We provide a sorting order of (key,value) pairs that _looks_ stable by
breaking ties based on value if keys are equal. Internally there may
be some instability in the case of duplicate (key,value) pairs, but it
should not be observable via the iterator API.

[1]: id:CAA19uiSHjVFmwH0pMC7WwDYCOSzu3yqNbuYhu3ZMeNNRh313eA@mail.gmail.com
[2]: id:87msv3i44u.fsf@oldenburg.str.redhat.com
</content>
</entry>
<entry>
<title>Pass error message from GLib ini parser to CLI</title>
<updated>2023-09-23T11:34:48Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2023-09-15T12:50:04Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=1c10d91d8e4a3e5bc76ca4c6b9939f3759e6ef5e'/>
<id>urn:sha1:1c10d91d8e4a3e5bc76ca4c6b9939f3759e6ef5e</id>
<content type='text'>
The function _notmuch_config_load_from_file is only called in two
places in open.cc. Update internal API to match the idiom in open.cc.
Adding a newline is needed for consistency with other status strings.

Based in part on a patch [1] from Eric Blake.

[1]: id:20230906153402.101471-1-eblake@redhat.com
</content>
</entry>
<entry>
<title>lib/n_d_remove_message: do not remove unique filename</title>
<updated>2023-07-22T10:15:59Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2023-07-20T12:08:01Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=b6f144abe1f5aa3519240cf52f4cb9907fefcd0e'/>
<id>urn:sha1:b6f144abe1f5aa3519240cf52f4cb9907fefcd0e</id>
<content type='text'>
It is wasteful to remove a filename term when the whole message
document is about to be removed from the database. Profiling with perf
shows this takes a significant portion of the time when cleaning up
removed files in the database.

The logic of n_d_remove_message becomes a bit more convoluted here in
order to make the change minimal.

It is possible that this function can be further optimized, since the
expansion of filename terms into filenames is probably not needed
here.
</content>
</entry>
<entry>
<title>lib/message: check message type before deleting document</title>
<updated>2023-07-22T10:11:46Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2023-07-20T12:08:00Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=d93d49b6aed5b3f71651ffe79225da08c7d8f1aa'/>
<id>urn:sha1:d93d49b6aed5b3f71651ffe79225da08c7d8f1aa</id>
<content type='text'>
It isn't really clear how this worked before. Traversing the terms of
a document after deleting it from the database seems likely to be
undefined behaviour at best
</content>
</entry>
<entry>
<title>doc/lib: clarify ownership for notmuch_database_get_revision</title>
<updated>2023-07-09T15:08:28Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2023-05-29T11:01:40Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=a62b8a95c0e890f11cb39cc2aaea3a4893c8268d'/>
<id>urn:sha1:a62b8a95c0e890f11cb39cc2aaea3a4893c8268d</id>
<content type='text'>
The ownership is implicit in the const declaration (I think!), but
that does not show up in the doxygen generated API docs.
</content>
</entry>
<entry>
<title>lib: index attachments with mime types matching index.as_text</title>
<updated>2023-04-02T22:24:43Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2023-01-06T00:02:06Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=a554690d6af0ac8cb55166a20efd0f449abde389'/>
<id>urn:sha1:a554690d6af0ac8cb55166a20efd0f449abde389</id>
<content type='text'>
Instead of skipping indexing all attachments, we check of a (user
configured) mime type that is indexable as text.
</content>
</entry>
<entry>
<title>lib: parse index.as_text</title>
<updated>2023-04-02T22:22:36Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2023-01-06T00:02:05Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=3f5809bf28becbddfed9ff33d6f1242346904c23'/>
<id>urn:sha1:3f5809bf28becbddfed9ff33d6f1242346904c23</id>
<content type='text'>
We pre-parse into a list of compiled regular expressions to avoid
calling regexc on the hot (indexing) path.  As explained in the code
comment, this cannot be done lazily with reasonable error reporting,
at least not without touching a lot of the code in index.cc.
</content>
</entry>
</feed>
