Commit graph

7528 commits

Author SHA1 Message Date
Lars Kotthoff
d34720e7b3 config: allow custom separators in author lists
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.
2024-07-26 15:59:11 +09:00
Tony Zorman
199e2de224 test/emacs: test notmuch-mua-subject-check
Amended by db: rename test file to avoid collision.
2024-07-25 19:44:49 +09:00
Tony Zorman
fefc7a9474 emacs/mua: optionally check for erroneous subjects
This works much like notmuch-mua-attachment-regexp, but for the
subject instead. By default, check for empty subjects, as that seems a
reasonable thing to safeguard against.
2024-07-25 19:37:08 +09:00
David Bremner
14150416dd CLI: update commentary in config file to better match code
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.
2024-07-25 19:30:54 +09:00
Kevin Boulain
a1921a25b7 lib: thread-safe s-expression query parser
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.
2024-07-25 19:15:02 +09:00
David Bremner
b8fe20f339 emacs/hello: refresh hello directly
According to the now deleted commentary, the hack of using run-at-time
was needed for Emacs 24. It seems to be no longer needed for Emacs
28.2, and removing it makes further changes to the code simpler.
2024-07-25 17:43:43 +09:00
David Bremner
30740296e7 CLI/git: add reset command
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.
2024-07-25 17:39:50 +09:00
Michael J Gruber
6b9fccb2e2 Replace delete-line with its definition
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.
2024-06-19 07:38:34 -03:00
Michael J Gruber
b526c5ef0e Replace without-restriction with save-restriction
37c022ae ("Use `without-restriction` in `with-temporary-notmuch-message-buffer`", 2024-03-14)
introduced a fix for draft saving in a way which is supported on Emacs
29 and above only. Replace this with a construct which we have used
before, so that we keep the same compatibility level.
2024-06-19 07:38:23 -03:00
Marc Fargas
37c022aea0 Use without-restriction in with-temporary-notmuch-message-buffer
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.
2024-06-15 14:54:04 -03:00
David Bremner
0d2a964ea3 test/cli: Add known broken test for (missing) quoting in From
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
2024-06-15 14:46:12 -03:00
David Bremner
b02a53a5cc emacs/show: fix for text/calendar display
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
2024-06-15 14:40:01 -03:00
David Bremner
cccee90095 test/emacs: add tests for rendering text/calendar parts
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
2024-06-15 14:40:01 -03:00
David Bremner
4b5be817a7 test/emacs: add regression test for display of calendar parts.
This will hopefully catch breakage due to either changes in
Emacs (especially Gnus) or changes to the notmuch-show code.
2024-06-15 14:40:01 -03:00
David Bremner
55d259a114 test/corpora: add example with text/calendar attachment
Initially for testing rendering in Emacs.
2024-06-15 14:40:00 -03:00
Mohsin Kaleem
e8e2d5247e emacs: Allow customizing :excluded in notmuch-saved-searches
Provide customize support for the new feature introduced in
cd89065d.

Commit message expanded by: db
2024-05-29 07:54:50 -03:00
David Bremner
c6bbb67070 test: re-enable duplicate UI tests in T460-emacs-tree
These were disabled (accidentally?) in f63d14a8c1.
2024-05-29 07:38:27 -03:00
Mohsin Kaleem
cd89065dc3 emacs: Add new option notmuch-search-hide-excluded
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
2024-04-06 15:03:45 -03:00
David Bremner
de23409704 perf-test/tag: add maildir sync tests
Today someone asked me the (reasonable) question of how much
performance impact there is from synching tags to maildir flags. It
turns out it is noticeable, about a 50% overhead compared to
non-synched tags (according to these tests).  In practice I don't know
if it's a big problem for users, since I don't know what fraction of
tagging operations involve "special" tags.
2024-04-05 07:33:41 -03:00
Jelle Licht
8d06dfce17 emacs: Autoload notmuch-user-agent related functions
With this change, users with mail-user-agent set to
'notmuch-user-agent can start composing emails without having to
require 'notmuch-mua first.
2024-04-04 08:20:51 -03:00
Dmitry Bogatov
d1ba5d6342 emacs: Mark "notmuch-tree" command for autoloading
Some people (e.g: me) prefer to read their email with threaded
representation by default.

Without this commit, I have to run "notmuch-search" (autoloaded)
first to get "notmuch-tree" loaded.
2024-04-04 08:16:36 -03:00
Tomi Ollila
baaad2a267 NEWS: aspell(1)d few words
Executed aspell -l en -c NEWS

and replaced few obvious cases.
2024-03-12 09:42:13 -03:00
David Bremner
0c7726dc19 notmuch release 0.38.3-1 for unstable (sid) [dgit]
[dgit distro=debian no-split --quilt=linear]
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEkiyHYXwaY0SiY6fqA0U5G1WqFSEFAmXtJngACgkQA0U5G1Wq
 FSGvmxAAuo67Qx5uJVX44xrLY3PFkor8MwDtguu+F94IYtqiLT3zCx6LTmp8jMFM
 SJp6P8DJkj9sJoHoru2mKdXRHDJPmcsJ0cNxUBSubO/KLoJeYS0KJi+5kOnQwKBs
 LkJxZA4IR0HUK4X6A77+9nWADnc2mKdkB+arfPH/hJPbf3mjEJd1r2E/DVtdyZi1
 CrTISv0vsepvSUxnPqrC/vlj6NmN9Pi9vnYVwze7FAWtPoo1sssLTqjn7eLVpole
 rTsGEV5SB45u2OHrmAlrnQNfCC/6k1d5Zt7c3FL3uStKkKlgqba37x3XRXnJ+swt
 XRCpV5Nga/sISRwTFRnQl80BYc14RXGDvoHgXBoOozRTZoD9UfsuMEQN7/DYdINC
 W5LM0+MapgV4uohCn5s+zf51USQRem+wExcgm36lz3d4Sla9dVkDlgVe69nL2mmm
 bySt4i1a8cb1UUQdQQQc68PY9Qj/anCJBmua6TqRmnBlKcy2Gh6MxAozJLJLlCCf
 JszAD5OWPAfB51KsfRvWnXloTqYrnADp1FsDGOOtz56NrjzoAqrOSnP56JXJVV5+
 89AiXxvrHzLPYxoiXmFGGAKPWbFVTb7xPViOX8YlfPeH+2h+thPFRaHwmSPvP8PO
 HvJkJ9fQquViA7p4h63U8x78X30eQ/HWjBgTCgAQi+52pShBSOs=
 =8eFE
 -----END PGP SIGNATURE-----

Merge tag 'debian/0.38.3-1'

notmuch release 0.38.3-1 for unstable (sid) [dgit]

[dgit distro=debian no-split --quilt=linear]
2024-03-11 08:17:40 -03:00
David Bremner
78f9c6ebd1 debian: update changelog date
It is a bit weird to have debian changelog before upstream release date.
2024-03-09 23:13:32 -04:00
David Bremner
f825336320 Merge from sid [dgit] 2024-03-09 23:07:21 -04:00
David Bremner
801ca7fa86 Revert "debian: start changelog for 0.38.3-1"
This reverts commit 522b279e46.

Remove duplicate changelog stanza
2024-03-09 23:01:43 -04:00
David Bremner
d0469c5b4c version: bump to 0.38.3 2024-03-09 22:51:31 -04:00
David Bremner
522b279e46 debian: start changelog for 0.38.3-1 2024-03-09 22:49:50 -04:00
David Bremner
da6fa670e6 doc: update copyright years to include 2024 2024-03-09 22:47:37 -04:00
David Bremner
a49174b395 NEWS: update for 0.38.3 2024-03-09 22:47:14 -04:00
Benjamin Drung
63d1a100a6 Record notmuch (0.38.2-1.1) in archive suite sid 2024-02-28 23:56:48 +00:00
Benjamin Drung
2babd3eb76 notmuch (0.38.2-1.1) unstable; urgency=medium
* Non-maintainer upload.
  * Rename libraries for 64-bit time_t transition.  Closes: #1063205

[dgit import unpatched notmuch 0.38.2-1.1]
2024-02-28 23:56:48 +00:00
Benjamin Drung
3dd88a8d73 Import notmuch_0.38.2-1.1.debian.tar.xz
[dgit import tarball notmuch 0.38.2-1.1 notmuch_0.38.2-1.1.debian.tar.xz]
2024-02-28 23:56:48 +00:00
David Bremner
3b8c0dee22 debian: recommend gpg-agent instead of gnupg agent 2024-02-17 09:04:32 -04:00
Jakub Wilk
2f0320c5f2 CLI/git: remove no-op format() call 2024-01-14 08:55:20 -04:00
Jakub Wilk
e310df7093 CLI/git: fix name error 2024-01-14 08:55:06 -04:00
Jakub Wilk
5f3e5dd411 CLI/git: remove unused import
shutil was used only for the tempfile.TemporaryDirectory backport,
which was removed in commit b7c31f6581 ("CLI/git: drop support for
python < 3.2").
2024-01-14 08:54:39 -04:00
David Bremner
52a5446150 Merge branch 'release' 2023-12-06 07:39:24 -04:00
David Bremner
b97cd90040 lib: clear error message on success in _choose_database_path
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.
2023-12-06 07:33:05 -04:00
David Bremner
5a582e8ed9 test: add known broken test for incorrect error message
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.
2023-12-06 07:33:05 -04:00
David Bremner
b49377e509 Merge branch 'release' 2023-12-01 08:11:39 -04:00
David Bremner
c769658360 debian: changelog for 0.38.2-1 2023-12-01 07:51:40 -04:00
David Bremner
126347b694 Import notmuch_0.38.2.orig.tar.xz
[dgit import orig notmuch_0.38.2.orig.tar.xz]
2023-12-01 07:51:09 -04:00
David Bremner
b413eb805e NEWS for 0.38.2 2023-12-01 07:50:27 -04:00
David Bremner
21daefc178 version: bump to 0.38.2 2023-12-01 07:38:55 -04:00
Jani Nikula
67990376b7 notmuch-emacs-mua: avoid extra separators at the end of the line
Currently the --to/--cc/--bcc options add "user@example.com, " to the
message headers, with the the unnecessary ", " separator after the
last address, regardless of how many addresses are being added.

This used to be fine, but with recent emacs mm, trying to send the
email with the trailing commas leads to prompt:

  Email address  looks invalid; send anyway? (y or n)

Fix this by only adding the commas between addresses, avoiding the
trailing commas.
2023-12-01 07:22:26 -04:00
David Bremner
22eebce431 Merge branch 'release' 2023-11-28 09:21:11 -04:00
David Bremner
4f82acce17 lib/string_map: simulate stable sorting
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
2023-11-28 09:19:21 -04:00
David Bremner
bddeb20110 notmuch 0.38.1 release
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEkiyHYXwaY0SiY6fqA0U5G1WqFSEFAmU69GwACgkQA0U5G1Wq
 FSEQUQ/8CikZvEARbd7XnOVtzIIPml4pqg7v1dWEVcBjKrzYNpm67aOcJnYxT7nw
 5NKA/t+nG5gYvu2dkZs4QrPJXBF5wU9ODUy78Z8kwsXkrzIit85LOZOGGxrH2O+/
 qnfl3mhXbd+jCcvhHwRJtPlQ6+hAJmzDNGezoA6fOh7M+TGehCPjQ7MZo7DvUXyR
 RfTHOFXepsv9t4R2Q5HvbtyN1a3cKxfwmEoIQFrUCuzIWyJsZfV1bi9BAaOVBj72
 lwLMbLOrznFq7fEmvaRygc0E6k/UvAHsvH8aMPzD42W4MhErsWrVCmqOD3TGEss9
 CQ17mr/KxtTAldMwucHCTfdUEgTaCCQqiUnyC5nurbwUuEhQEFREooVNR7hgy+d9
 gHf6k9i3YhMURmysHqcrDBb8rUruNyIqIiAS+b/lTIxTWFfZsR6BULiytWKeGUwG
 jpRBkpzaGJ3uA/dBppbNKuFVWCvyUhJIT0EjaKuwOu9Qldz5iaQujqEFbqAMu/gB
 DbbWjEJQBdQ6JpEvzZM0E5FSaoqP7tbykh8QHm15HXZLyGsaf3HJJ5NrcVG9xYFI
 pUFlDy/xj0N0a6vSgw29LWiEFRWS+xWyOn2TRvCLmTxczo9mPXdUeLea+KnFlN/A
 WGsJ25qRmPrDZSycHzw6a+N8K+1U7xBpCx2ltSXeTaOmj27oUac=
 =4aEL
 -----END PGP SIGNATURE-----

Merge tag '0.38.1'

notmuch 0.38.1 release
2023-10-26 20:34:31 -03:00
David Bremner
356ad39271 debian: update changelog for 0.38.1-1 2023-10-26 20:18:20 -03:00