Commit Graph

347 Commits

Author SHA1 Message Date
Dirk-Jan C. Binnema ed1fcda81a server: use MU_QUERY_FLAG_SKIP_UNREADABLE by default 2020-02-21 01:42:37 +02:00
Dirk-Jan C. Binnema 8d6d151090 server: support readline history / persistence
When using readline, remember the last 50 commands; persist.
2020-02-21 01:17:23 +02:00
Dirk-Jan C. Binnema 000c19e505 server: improve error message 2020-02-18 12:03:42 +02:00
Dirk-Jan C. Binnema 6b07819d9a mu4e/mu-server: use :descending, :no-view parameters
There was some confusion between mu4e and mu-server.
2020-02-18 12:03:42 +02:00
Dirk-Jan C. Binnema 62cc675a51 server: explicitly flush after indexing 2020-02-15 18:26:45 +02:00
Dirk-Jan C. Binnema 10fa0727ef server: clear up move_docid
Ensure all paths free resources
2020-02-15 14:12:21 +02:00
Dirk-Jan C. Binnema a4a682e578 mu: add memcheck script for valgrinding 2020-02-15 14:09:30 +02:00
Dirk-Jan C. Binnema c22eb434b7 mu: improve crypto handling 2020-02-14 00:36:54 +02:00
Dirk-Jan C. Binnema b77b536d81
Merge pull request #1444 from JulienMasson/threads-sorting
mu: add an option to ignore leader when sorting childs of a thread
2020-02-10 21:58:33 +02:00
Dirk-Jan C. Binnema d90d2ce8ef mu/mu4e: pass muhome to server (and provide some better error info) 2020-02-10 18:07:54 +02:00
Julien Masson c4ccaf0fdb mu: sort childs of thread based on the sortfield only
Today when we query a find cmd with the `--threads` option, all the
childs of each thread are sorted according to their leader based on
the sortfield.

This patch change the way of how the childs of a thread are sorted.
The threads are still sorted according to their leader but all the
childs of each thread are now sorted based on the sortfield only.

Here is an example of what happened with the previous sorting:

Example with random kernel thread sorted by date:

[PATCH 0/4] drm/panel: jh057n0090: Add regulators and drop magic value in init
  ┣━▶[PATCH 1/4] MAINTAINERS: Add Purism mail alias as reviewer for their devkit's panel
  ┣━▶[PATCH 2/4] drm/panel: jh057n0090: Don't use magic constant
  ┣━▶[PATCH 3/4] dt-bindings: display/panel: jh057n0090: Document power supply properties
  ┗━▶[PATCH 4/4] drm/panel: jh057n0090: Add regulator support

If someone reply to one of these emails in the middle, this email
become the leader and the thread is displayed like this:

[PATCH 0/4] drm/panel: jh057n0090: Add regulators and drop magic value in init
  ┣━▶[PATCH 2/4] drm/panel: jh057n0090: Don't use magic constant
  ┃  ┗━▶ Re: [PATCH 2/4] drm/panel: jh057n0090: Don't use magic constant
  ┣━▶[PATCH 1/4] MAINTAINERS: Add Purism mail alias as reviewer for their devkit's panel
  ┣━▶[PATCH 3/4] dt-bindings: display/panel: jh057n0090: Document power supply properties
  ┗━▶[PATCH 4/4] drm/panel: jh057n0090: Add regulator support

With this patch, we will have the following output:

[PATCH 0/4] drm/panel: jh057n0090: Add regulators and drop magic value in init
  ┣━▶[PATCH 1/4] MAINTAINERS: Add Purism mail alias as reviewer for their devkit's panel
  ┣━▶[PATCH 2/4] drm/panel: jh057n0090: Don't use magic constant
  ┃  ┗━▶ Re: [PATCH 2/4] drm/panel: jh057n0090: Don't use magic constant
  ┣━▶[PATCH 3/4] dt-bindings: display/panel: jh057n0090: Document power supply properties
  ┗━▶[PATCH 4/4] drm/panel: jh057n0090: Add regulator support

The tests cases concerning threads have also been updated.

Signed-off-by: Julien Masson <massonju.eseo@gmail.com>
2020-02-10 15:42:39 +01:00
Dirk-Jan C. Binnema 36b31eeb0a mu: check --maildir parameter for init
Fixes #1568.
2020-02-09 22:40:57 +02:00
Dirk-Jan C. Binnema 85df5524f3 server: fix typo 2020-02-09 18:07:30 +02:00
Dirk-Jan C. Binnema 876f70d50d mu: update unit tests
They need to use 'mu init' as well.
2020-02-09 18:01:06 +02:00
Dirk-Jan C. Binnema 451309697d server: 'sent' does not use 'maildir' anymore
So don't require it.
2020-02-09 15:07:22 +02:00
Dirk-Jan C. Binnema 4e5f6b4b0a mu: make command output more useful 2020-02-09 00:15:49 +02:00
Dirk-Jan C. Binnema e1e26d1da2 mu4e: update to use server maildir/database/addresses
Mkae mu4e-maildir and mu4e-personal-addresses obsolete, we get those
from the server.
2020-02-09 00:15:49 +02:00
Dirk-Jan C. Binnema dea4789e0e server: pass root-maildir, personal-addresses, dbpath to mu4e
Tell mu4e about the parameters, so users do not need to explicitly set
them.
2020-02-09 00:15:49 +02:00
Dirk-Jan C. Binnema f51846eefc mu: implement init, info commands
'init' is for the inital database setup

'info' is for gettting information about the mu database.
2020-02-08 14:28:55 +02:00
Dirk-Jan C. Binnema 2575b2d0e3 mu: better error handling for opening database read-only
Be a bit clearer for the user.
2020-02-04 21:14:30 +02:00
Dirk-Jan C. Binnema 3fc2a5f3f8 server: re-introduce signal handler
This still needed to be ported from the old server code.
2020-02-04 01:05:35 +02:00
Dirk-Jan C. Binnema 029a4c245e mu/mu4e: handle personal addresses as server cmdline params
So we don't need to pass them to index; they can't change anyway.
2020-02-04 01:05:35 +02:00
Dirk-Jan C. Binnema 38779cfade mu: no need to pass 'maildir' when we can deduce it
Only needed when setting up the database.
2020-02-04 01:05:35 +02:00
Dirk-Jan C. Binnema ee4730382d mu-cmd-index: Avoid unneeded compiler warning 2020-02-02 00:23:34 +02:00
Dirk-Jan C. Binnema 0f81c86083 server: implement the :after parameter for contacts
Parse the :after parameter as an iso-8601-like parameter, and use it for
limiting the amount of contacts.
2020-01-25 19:36:31 +02:00
Dirk-Jan C. Binnema 7d83a1c5d6 server: improve command documentation output
required args come first, then alphabetic.
2020-01-25 11:51:38 +02:00
Dirk-Jan C. Binnema 24e94afe2f server: handle move 'rename' parameter
Fix the confusion between names.
2020-01-24 14:21:25 +02:00
Dirk-Jan C. Binnema ff958907d4 server: improve 'help' output 2020-01-24 14:21:17 +02:00
Dirk-Jan C. Binnema e119ac919b mu: fix clang compilation 2020-01-24 00:21:53 +02:00
Dirk-Jan C. Binnema 2e07fcf591 mu/mu4e: add sorting for 'find'.
Was missing after the parser changes.
2020-01-23 23:09:19 +02:00
Dirk-Jan C. Binnema aba328c930 server: support 'queries' parameter in 'ping'
Calculate the read/all numbers for matches for a list of queries in
:queries. This is used to implement the features where we should those
counts for bookmarks.
2020-01-22 11:42:15 +02:00
Dirk-Jan C. Binnema bb932fa217 mu: don't need a path argument for index
We get it from the store.
2020-01-22 11:42:15 +02:00
Dirk-Jan C. Binnema d2ec85f01c mu4e: use the new command-parser
Update mu4e-proc to use the new mu4e <-> mu protocol
2020-01-22 11:42:15 +02:00
Dirk-Jan C. Binnema c71f683e39 mu: use new command-parser 2020-01-22 11:42:15 +02:00
Dirk-Jan C. Binnema b2014fe93e use g_snprintf instead of snprintf
Seems the latter cannot be found on some platforms; perhaps a
c++/namespace thing?

Use g_snprintf instead.
2020-01-07 23:17:15 +02:00
Dirk-Jan C. Binnema ad63044915 mu: Fix some compiler warnings 2020-01-01 15:56:48 +02:00
Dirk-Jan C. Binnema 80c5e25b08 mu: move mu/mu/tests, lib/tests one level up
Makes it easier to generator code-coverage reports
2020-01-01 15:56:48 +02:00
Dirk-Jan C. Binnema a39668e00b add 'mfind' command, like 'find' with mu4e defaults
Add a command 'mfind' which follows the mu4e defaults, i.e.
--include-related, --skip-dups.
2019-12-28 11:19:12 +02:00
Dirk-Jan C. Binnema 8cef8ac69c Revert "mu: default to include related, skip dups"
Changing the default for 'mu find' turns out to be  a bit too disruptive for people
that use `mu find` for scripting... so let's revert this for now.

This reverts commit f86ed12eb3.
2019-12-28 07:49:22 +02:00
Dirk-Jan C. Binnema 9f93526884 move parser/utils to utils, Mux->Mu
Move the parser utils to utils/ and rename the Mux namespace into Mu.
2019-12-22 15:26:45 +02:00
Dirk-Jan C. Binnema b55e191421 update for lib/utils split
Update sources with the new paths
2019-12-22 15:26:45 +02:00
Dirk-Jan C. Binnema e5337e7658 lib: split out utils to lib/utils 2019-12-22 15:26:45 +02:00
Dirk-Jan C. Binnema f86ed12eb3 mu: default to include related, skip dups
Add optioins --include-dups and --skip-related that are the reverse of
the previous ones. Leave the old options (hidden) for backward
compat (ie., scripts that use those options)
2019-12-10 18:09:03 +02:00
Derek Schrock db2cd81d02 tests: fix cmd test_mu_find_04 stderr output
Fix test_mu_find_04 such that stderr has expected output.
With the mu command after options/expression nothing was printed.
We now have expected nonexistent muhome error.
2019-11-16 22:40:48 -05:00
Jonas Bernoulli f31d1b065d Fix typos 2019-11-06 16:13:39 +01:00
Dirk-Jan C. Binnema 22fafa4b1d mu view: report errors
Don't set error to NULL. Fixes #1469.
2019-09-26 23:17:39 +03:00
Dirk-Jan C. Binnema 7b1d798344 mu-server: improve error expressions 2019-09-08 17:21:16 +03:00
Dirk-Jan C. Binnema be4860befe tests: update for lib/mu-store changes 2019-07-30 08:51:04 +03:00
Dirk-Jan C. Binnema afde8811b6 mu-cmd: update for lib/mu-store changes
* some small API updates
 * in with_store, try to rebuild automatically when possible
2019-07-30 08:51:04 +03:00
Dirk-Jan C. Binnema 632f383c38 mu: Default to XDG Base Directory Specification
Instead of using ~/.mu, use the XDG Base Directory Specification, typically:
  ~/.cache/xapian
  ~/.cache/mu.log
  ~/.cache/parts
  ~/.config/bookmarks

Update dependencies, documentation.
2019-07-13 16:00:28 +03:00
Dirk-Jan C. Binnema 125176d397 mu/lib: merge mu-contacts.h => mu-contacts.hh 2019-07-13 13:43:57 +03:00
Dirk-Jan C. Binnema 5440747ba4 mu: require glib >= 2.38; remove g_type_init calls
Minor cleanup.
2019-07-11 23:30:27 +03:00
djcb bd52902290 contacts: update test cases for updated contacts
Remove the old ones, add new ones.
2019-05-11 13:41:03 +03:00
djcb e9a0939f8f update cfind, server for new contacts-cache
Use the new APIs.
2019-05-11 13:41:03 +03:00
djcb 6e8378ddcd mu: update crypto verify test 2019-03-24 11:54:12 +02:00
Piotr Oleskiewicz c7ea01304f
mu-config: put environmental variable in inverted commas 2019-01-28 15:50:47 +00:00
Piotr Oleskiewicz 5faad10451
mu-config: add NO_COLOR environment variable 2019-01-22 17:08:24 +00:00
djcb e4a769ee02 mu: support json output for 'find'
Support output in json format for mu-find.
2018-11-11 12:47:47 +02:00
djcb 93bd1b8ce7 mu: add soft dependency on json-glib
If it's available it will be used.
2018-11-11 12:12:36 +02:00
djcb 164b9e99dd mu: fix tests Makefile.am 2018-11-05 18:39:22 +02:00
djcb f333c6046d Fix leak in mu_config_show_help
valgrind to the rescue!
2018-11-04 12:31:32 +02:00
djcb 052a228be7 add optional support for building with asan 2018-11-04 12:31:32 +02:00
djcb 16fa5d9a22 server: maybe mark updates with :maybe-view
Don't updates messages when it's not needed, but don't use :view, since
it confuses mu4e's handlers.
2018-08-18 11:40:16 +03:00
djcb aa70bf1920 Merge branch 'pr-1111'
Fix a bunch of conflicts, tests.
2018-08-18 10:29:40 +03:00
djcb c5a17a9699 mu: make attachment size tests a bit more lenient (for gmime-3.0)
Or we won't pass. Not sure what exactly explains the 2-byte diff.
2018-08-18 10:05:31 +03:00
djcb 82e7d7c65d mu: better handle updating mail being viewed
instead of the the 'noupdate', add 'noview', so the headers still get
update but we don't render unread mail twice.
2018-08-14 21:59:41 +03:00
djcb 93c6ff1f85 mu: protect against overly long keys
We got some errors when some of the key values exceeded the Xapian
maximum; in particular the message-id.

So make all the key-methods check, and truncate the message-id if
necessary.
2018-08-14 21:57:33 +03:00
djcb a4398ac93d mu4e/mu: optimize mark-as-read
Since cd649efb6b, opening an unread message first does a proc-move,
then proc-view.

Reason is that while we get the (:update ... ) from the move, that only
contains a skeleton message; we need the full view get images etc. This
means that we render the message _twice_.

Here we change add a flag for move to _not_ send the (:update ..), so
only the (:view ...) will trigger rendering of the message.
2018-08-12 14:00:59 +03:00
djcb 99df588d41 update compiler warnings, fix them
Update the compiler warnings, and fix all the ones outside the guile/.
2018-06-11 10:49:07 +03:00
djcb 2d954e9647 mu: fix strncpy usage
Ensure the resulting strings are \0-terminated.
2018-06-11 09:18:27 +03:00
djcb c410ebfc45 mu: update copyright year in --version 2018-04-28 09:33:46 +03:00
djcb 7a62758afa mu: handle funny msgids
Query msgids without trying to parse them. Also, clean up some code.
2017-12-03 22:17:30 +02:00
djcb 363075a6fd doc: tickle
Don't error out when asked for tickle docs.
2017-10-30 21:15:47 +02:00
djcb 4ee8c5e1d6 mu4e: work around quoting issues
Use base-64 for now.
2017-10-28 18:23:08 +03:00
djcb 2d966ee2ad tests: remove obsolete tests 2017-10-25 23:50:17 +03:00
djcb aa07c4a27c update commands for new query parser 2017-10-25 23:50:17 +03:00
djcb 4014e3d210 mu: cosmetics 2017-07-02 10:46:08 +03:00
djcb 855a8a5c5e mu: properly escape include file-names (forward)
We weren't properly escaping filenames when returning them for
forwarding. Let's do so now.
2017-04-09 11:31:39 +03:00
djcb 786e7c3d1f mu: add 'tickle' command, for renaming messages
The new command 'tickle' renames message files in place, which can be
useful for 3rd-party tools.
2017-01-14 13:09:17 +02:00
djcb f91969e0b7 mu: refactor add/remove commands
Most of their code is shared, so let's combine them.
2017-01-14 12:32:20 +02:00
djcb b6a1674522 mu: make 'mu' shortcut for 'mu help' 2016-12-27 17:45:19 +02:00
djcb 30dab7c312 cfind: uniquify nicks
Ensure uniqueness of nicks by adding a numerical suffix when the root
nicks are not unique (up to 1000).

Fixes issue #987.
2016-12-27 16:21:10 +02:00
djcb 78275278cf mu: fix some compiler warnings 2016-12-11 18:33:31 +02:00
Stig Brautaset e9c6568a57 mu: swap begin and end if begin is _numerically_ bigger than end
The old behaviour would compare the strings, so would swap the start and end
ranges if start was 3K and end was 2M.

Fixes: 964
2016-12-03 23:19:27 +00:00
djcb 632ae465f4 mu: unbreak travis tests
disable test that seems to fail on travis sometimes, recently; hard to
investigate what goes on there; no changes in the mu code related to
this.
2016-11-05 13:35:26 +02:00
djcb 7526f118ba mu: some cosmetics / minor cleanup 2016-10-26 22:36:40 +03:00
djcb 6a421f4d85 mu: fix C-d handler for mu server 2016-08-27 18:58:31 +03:00
djcb c9f8ac5beb crypto: prefer gpg2
Can't say I fully understand what's going on, but it seems gpg-before-2
has some trouble with its agent, at least when using
gnome-session (which stopped using gnome-keyring as a gpg-agent since
Fedora 23 at least).

Sanity seems to be restored when preferring gpg2 instead. "gpg" is used
when gpg2 isn't there; and there's the MU_GPG_PATH env variable to
override all of that.
2016-07-24 16:00:04 +03:00
djcb eb7888cdb1 mu4e: support mu indexing performance options
Add two variables mu4e-index-cleanup and mu4e-index-lazy-check, which
correspond to mu index option --lazy-check and --nocleanup.

Extend the mu server protocol a bit to handle this.

The defaults keep things behaving as they done before.
2016-07-23 21:33:10 +03:00
djcb 9477071e63 mu: add '--lazy-check' option for indexing
Add an option --lazy-check to ignore any directories that don't have
their ctime changed since the last indexing operation.

There are a few corner-cases (such as editing a message outside mu's
control) where this might miss a change, but apart from that, makes
indexing in for a maildir (and its sub-maildirs) almost a no-op if there
were no changes.
2016-07-23 21:33:10 +03:00
djcb 54b6230adf tests: fix unit tests
Some tests weren't yet update for the new test message.
2016-05-16 13:38:10 +03:00
djcb a81270583f Add unit-test for multi-to/cc recipients
To check for the report in Issue #826.
2016-05-15 16:21:20 +03:00
djcb cf9970ccd4 mu: server: add compose-type 'resend'
Add a type 'resend', for resending existing messages.
2016-02-16 08:28:59 +02:00
Maximilian Matthé 784d8c8cfe mu: smaller string chunkss for server on Cygwin
Add check for CYGWIN and in this case only print out 64K-sized
string-chunks from mu server.

Fixes issue #764.

fixup
2016-01-15 21:07:35 +02:00
djcb 02620af4c2 mu/mu4e: improve in contacts completion
mu: cleanup server side; make sure not to loose 'personal' flag when
    seeing same contact in non-personal context
mu4e: tweak the sorting algorithm a bit to take the personal flag into
    account
2015-12-30 15:33:27 +02:00
Ævar Arnfjörð Bjarmason 049e182e0c Correctly spell the word "quitting" in the protocol & documentation 2015-12-09 22:40:52 +01:00
djcb 26955ebe78 mu4e: remove duplicated line 2015-11-02 09:05:42 +02:00
djcb 1c98835815 Guile: don't insist on Gnuplot (Fixes #664)
Many of the scripts require Gnuplot, but some don't, so don't add a hard
requirement for it.
2015-09-20 11:49:22 +03:00
djcb 2d75b3d3ec mu: improve mu verify output, update man page 2015-06-14 11:40:07 +03:00
djcb 7eb244b3b0 mu: don't use __FUNCTION__, use __func__
__FUNCTION__ is deprecated and gives compilation warnings. __func__ is
standardized in c99.
2015-04-22 21:06:31 +03:00