| Age | Commit message (Collapse) | Author |
|
This allows tests to pass on systems where the readelf executable is
prefixed with a target triple.
Signed-off-by: Lucio Sauer <watermanpaint@posteo.net>
|
|
In cases where a given 'export' both adds and deletes messages, we may
not know what messages are actually missing until the end of
processing. We thus do single pass of all remaining message-ids, and
report any that are still missing at the end of the "export"
operation.
|
|
There are two main possibilities. One is explicit delete ('D' command
in the stream from git fast-export) and one is files disappearing
between commits. It is less clear the latter can happen in well formed
sequence of commits, but it could result e.g. from manual changes to
the repo.
|
|
Two (sub)features are stubbed out in this initial implementation:
deleting messages (as opposed to tags), and missing messages. There
are two corresponding tests marked as broken in T860-git-remote.sh.
A third test passes with the stub, which is maybe not ideal, but at
least it acts as a regression test.
|
|
The output in default.import is based on a modified version
of Felipe's git-remote-nm with Blake2 hashing replaced by SHA1
(for portability). This enable fetch/pull/clone, so test that as well.
|
|
This is closely based on git-remote-nm (in ruby) by Felipe Contreras.
Initially just implement the commands 'capabilities' and 'list'. This
isn't enough to do anything useful but we can run some simple unit tests. Testing
of URL passing will be done after clone (import command) support is
added.
|
|
The precise function will be explained in a future update to
notmuch-config(1).
|
|
`message-cite-reply-position' affects the position of the email body
and signature relative to the email citation in email replies.
Test each of the three possible values of
`message-cite-reply-position'. If `message-cite-reply-position' is
'traditional or 'below, place the email signature below the
citation. If `message-cite-reply-position' is 'above, place the email
signature above the citation (as in Gmail-style email replies).
|
|
As reported by "lh" on IRC.
|
|
In the search box (and recent searches), notmuch-search-hide-excluded
was not being passed to notmuch-search. This means that excluded
messages were always shown in the results. Fix this by passing the
extra argument.
|
|
One of the places notmuch-search is called did not get the new
'hide-excluded' argument.
|
|
'hide-excluded' argument.
|
|
While a number of errors can happen when iterating over threads
(DatabaseModifiedError, memory allocation errors, etc.), the API
currently cannot signal them to the caller, and either triggers an
internal error (aborting the caller) or returns NULL from
notmuch_threads_get() with no information on what actually went wrong.
Add a new public function notmuch_threads_status() - similar to
previously added notmuch_messages_status() - that allows propagating
those errors to the caller.
Use this to remove the INTERNAL_ERROR() in _notmuch_thread_create()
(triggered by T642).
Fixes: https://github.com/pazz/alot/issues/1460
Amended-By: db. Resolved whitespace disagreement between emacs and
uncrustify in favour of uncrustify.
|
|
This is similar to previously added T641, except here we iterate over
threads rather than messages.
After f375ea1add121c428f261473512831a169dfe335, the
DatabaseModifiedError raised by Xapian is now handled in
_notmuch_message_create(), resulting in a NULL message being returned to
_notmuch_thread_create(), which currently triggers an internal error.
|
|
If an open database is modified sufficiently by other callers, the open
instance becomes invalid and operations on it throw
DatabaseModifiedError. Per Xapian documentation, the caller is then
supposed to reopen the database and restart the query. This exception is
currently not handled in _notmuch_message_create(), leading to the
default handler abort()ing the process.
Catch this exception in _notmuch_message_create() and return an error
instead of crashing. Since the entire query becomes invalid - including
results that have already been read by the caller - this situation
cannot be handled by libnotmuch transparently. A new public function -
notmuch_messages_status() - is added to allow the callers to check
whether the messages iterator was exhausted or terminated early due to
a runtime error. This also allows memory allocation failure to be
signalled to the caller.
Amended-By: David Bremner <david@tethera.net>
[replace use of notmuch_messages_valid]
|
|
This one is raised from _notmuch_message_create().
See also https://github.com/pazz/alot/issues/1460#issuecomment-2994101019
|
|
d526797a ("python: move legacy python bindings to contrib.", 2025-02-15)
moved the legacy python bindings away from the location in `bindingss/`.
Do not add that location to the PYTHONPATH since it is obsolete.
|
|
There is a a perceptible gap between when the tree shows up and when
the hl-line is visible, but this is better than the previous state
where the line did not show up at all until the user moved the cursor.
|
|
It isn't clear that this call to hl-line-mode will survive the coming
re-organization to stop relying on hooks, but incrementally this at
least makes the disabling behaviour consistent.
|
|
In the thread at id:87fsfuuxwn.fsf@thinkbox, a bug is discussed where
the point and hl-line overlay get out of sync, leading the user to
open the wrong message. As far as I can tell this is caused by
notmuch-hl-mode being invoked too early.
This change bypasses the logic preventing notmuch-search-hook being
called only once, so that the overlay is updated later after the
buffer is full(er).
This change may lead to the overlay being updated multiple times; if
this is annoying we can add a similar buffer local variable to ensure
it is only called once.
The extra logic to check notmuch-search-target-line reduces the
flicker somewhat by not highlighting the first line every time.
|
|
Most of the known broken tests replicate (my intepretation of) the bug
reported at id:87fsfuuxwn.fsf@thinkbox (or some unreported, but
probably related bugs in tree/unthreaded view). The last 3 broken
tests are just unimplimented planned functionality.
|
|
We have traditionally expected a signature to show up as "revoked"
when the signing key is revoked. However, GnuPG's recent fix to avoid
a denial of service against legitimate signatures appears to have
changed the status of signature verification from keys which happen to
have been revoked.
See https://bugs.debian.org/1098995 and https://dev.gnupg.org/T7547
This change makes the test suite a little bit less brittle while we
look for a resolution from upstream. It should probably also be
backported to debian unstable unless a notmuch release to unstable is
imminent.
Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
|
|
This relies on the fact that setting pp-default-function has no effect
for Emacs <30.
|
|
One test is deleted since that method is not provided by the new
bindings. Similar things can be done by accessing the PropertiesMap
returned by properties.
This change is a prelude to removing the legacy bindings from the build.
|
|
The new python bindings do not support modifying query objects, so
convert to C. There is a bit more boilerplate to handle errors but
otherwise it is essentially a line by line translation.
|
|
This is a prelude to removing the legacy bindings from the build.
|
|
This fixes the bug reported in
id:6F2EF901-8B4B-44FF-83C5-22F732BA95A6@gmail.com
Unfortunately it turns out our test data has several tabs in the
subject lines. The expected output was updated to reflect their
removal and the ripple effect of several more subjects matching the
previous ones.
|
|
The test is intentionally vague as it's hard to pin down the correct
output before the code is fixed.
|
|
This subject is known to be problematic for notmuch-tree.
|
|
This limitation seems somewhat hard to fix, but at least try to warn
users when combining crypto operations with mbox output format.
Because the default is --decrypt=auto, the warning is omitted if
--decrypt=auto is specified. While this is not great, it seems more
wrong to always warn, or to change the default because of this.
|
|
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.
|
|
Amended by db: rename test file to avoid collision.
|
|
This comment has been out of date since notmuch 0.32. Although it
isn't really possible to explain all the options here, explain both
one new "split" way of doing things and the traditional one with
database inside $MAIL_ROOT/.notmuch.
|
|
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.
|
|
Sometimes merging is not what we want with tags; in particular it
tends to keep tags in the local repo that have been removed elsewhere.
This commit provides a new reset command; the reset itself is trivial,
but the work is to provide a safety check that uses the existing
--force and git.safe_fraction machinery.
|
|
37c022ae ("Use `without-restriction` in `with-temporary-notmuch-message-buffer`", 2024-03-14)
introduced `delete-line` in a test, but this is Emacs 29 and above only.
Replace it with its (almost) definition.
|
|
This ensures that the temporary copy of the current message-mode
buffer is whole and not limited by a current restriction.
An example of such restriction is the default one established by
message-mode when composing a reply, that hides the References,
In-Reply-To and similar headers.
|
|
In [1], Jakub Wilk observes that the current behaviour is confusing
since it looks like there are two mailboxes in From, while in fact
there is only one. It seems to me that notmuch should at least quote
the display-name part of a mailbox if it has "funny" characters in it,
and perhaps always quote it. Either way will require changing the
indexing code, since the structure is lost when writing the headers to
the database.
[1]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1021614
|
|
In certain scenarios involving symlinks and setting
find-file-visit-truename, text/calendar parts were not displayed
properly.
Following a suggestion of Al Haji-Ali [1], replace the use of
get-file-buffer with find-buffer-visiting.
[1]: id:m2wmneguh8.fsf@gmail.com
|
|
The first test is just a general regression test, while the second
duplicates the problem discussed in the thread starting at [1].
[1]: id:m2leo2u0uo.fsf@gmail.com
|
|
This will hopefully catch breakage due to either changes in
Emacs (especially Gnus) or changes to the notmuch-show code.
|
|
Initially for testing rendering in Emacs.
|
|
These were disabled (accidentally?) in f63d14a8c12a.
|
|
The new notmuch-search-hide-excluded option allows users to configure whether
to show or hide excluded messages (as determined by search.exclude_tags
in the local notmuch config file). It defaults to true for now to maintain
backwards-compatibility with how notmuch-{search,tree} already worked.
New commands notmuch-search-toggle-hide-excluded and
notmuch-tree-toggle-exclude have also been added. They toggle the value
of notmuch-search-hide-excluded for the search in the current search or
tree buffer. It's bound to "i" in the respective keymaps for these
modes.
Lastly I've amended some calls to notmuch-tree and notmuch-unthreaded
which didn't pass through the buffer local value of
notmuch-search-oldest-first (and now notmuch-search-exclude).
Examples of where I've done this include:
+ notmuch-jump-search
+ notmuch-tree-from-search-current-query
+ notmuch-unthreaded-from-search-current-query
+ notmuch-tree-from-search-thread
A new test file for Emacs has been added which covers the usage of the
new `notmuch-search-hide-excluded' option and interactively hiding or
showing mail with excluded tags. These test cover the basic usage of
the `notmuch-search-toggle-hide-excluded' command in notmuch-search,
notmuch-tree and notmuch-unthreaded searches. These tests also cover
the persistence of the current value of the hide-excluded mail option
as a user switches from between these different search commands.
[1]: id:87ilxlxsng.fsf@kisara.moe
Amended-by: db, fix indentation in T461-emacs-search-exclude.sh
|
|
|
|
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.
|
|
Duplicate bug reported in id:87wmtvcor5.fsf@alyssa.is
The error message is nonsense, because notmuch config list actually
includes the database in those two cases.
|
|
|
|
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
|
|
This is a bit fragile w.r.t. glib changing their error message, but it
already helped me find one formatting bug, so for now I think it's
worth it, instead of just grepping for "UTF-8".
|