Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package maildir-utils for openSUSE:Factory checked in at 2023-04-03 00:51:59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/maildir-utils (Old) and /work/SRC/openSUSE:Factory/.maildir-utils.new.9019 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "maildir-utils" Mon Apr 3 00:51:59 2023 rev:41 rq:1076762 version:1.10.1 Changes: -------- --- /work/SRC/openSUSE:Factory/maildir-utils/maildir-utils.changes 2023-03-27 18:16:57.051318920 +0200 +++ /work/SRC/openSUSE:Factory/.maildir-utils.new.9019/maildir-utils.changes 2023-04-03 00:52:00.506372031 +0200 @@ -1,0 +2,11 @@ +Sun Apr 2 18:13:32 UTC 2023 - Michael Vetter <[email protected]> + +- Update to 1.10.1: + * defcustom typing updates + * re-enable json output for mu-find + * restore emacs27 compatibility (buffer-local-boundp) + * avoid tramp cornercase for mu4e version check + * handle function-type bookmarks again + * restore terminal colors after error + +------------------------------------------------------------------- Old: ---- mu-1.10.0.tar.xz New: ---- mu-1.10.1.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ maildir-utils.spec ++++++ --- /var/tmp/diff_new_pack.7cllm8/_old 2023-04-03 00:52:01.226375695 +0200 +++ /var/tmp/diff_new_pack.7cllm8/_new 2023-04-03 00:52:01.230375716 +0200 @@ -17,7 +17,7 @@ Name: maildir-utils -Version: 1.10.0 +Version: 1.10.1 Release: 0 Summary: Maildir indexer and searcher License: GPL-3.0-or-later ++++++ mu-1.10.0.tar.xz -> mu-1.10.1.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.10.0/NEWS.org new/mu-1.10.1/NEWS.org --- old/mu-1.10.0/NEWS.org 2023-03-26 09:30:36.000000000 +0200 +++ new/mu-1.10.1/NEWS.org 2023-04-02 08:28:53.000000000 +0200 @@ -28,6 +28,10 @@ - Standardize on PCRE-flavored regular expressions throughout *mu*. + - ~mu~ no longer attempts to 'expand' the `~` (and some other characters) in + command line options that take filenames, since it was a bit unpredictable. + So write e.g. ~--option=/home/user/hello~ instead of ~--option=~/hello~ + - Experimental: as bit of a hack, html message bodies are processed as if they were plain text, similar how "old mu" would do it (1.6.x and earlier). A nicer solution would be to convert to text, but this something for the diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.10.0/lib/utils/mu-sexp.cc new/mu-1.10.1/lib/utils/mu-sexp.cc --- old/mu-1.10.0/lib/utils/mu-sexp.cc 2023-03-26 09:30:36.000000000 +0200 +++ new/mu-1.10.1/lib/utils/mu-sexp.cc 2023-04-02 08:28:53.000000000 +0200 @@ -1,5 +1,5 @@ /* -** Copyright (C) 2022 Dirk-Jan C. Binnema <[email protected]> +** Copyright (C) 2022-2023 Dirk-Jan C. Binnema <[email protected]> ** ** This program is free software; you can redistribute it and/or modify it ** under the terms of the GNU General Public License as published by the @@ -224,7 +224,7 @@ auto it{list().begin()}; bool first{true}; while (it != list().end()) { - sstrm << (first ? "" : ",") << quote(it->string()) << ":"; + sstrm << (first ? "" : ",") << quote(it->symbol()) << ":"; ++it; sstrm << it->to_json_string(); ++it; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.10.0/lib/utils/mu-test-utils.hh new/mu-1.10.1/lib/utils/mu-test-utils.hh --- old/mu-1.10.0/lib/utils/mu-test-utils.hh 2023-03-26 09:30:36.000000000 +0200 +++ new/mu-1.10.1/lib/utils/mu-test-utils.hh 2023-04-02 08:28:53.000000000 +0200 @@ -1,5 +1,5 @@ /* -** Copyright (C) 2008-2022 Dirk-Jan C. Binnema <[email protected]> +** Copyright (C) 2008-2023 Dirk-Jan C. Binnema <[email protected]> ** ** This program is free software; you can redistribute it and/or modify it ** under the terms of the GNU General Public License as published by the @@ -21,6 +21,7 @@ #define MU_TEST_UTILS_HH__ #include <string> +#include <utils/mu-utils.hh> namespace Mu { @@ -29,7 +30,10 @@ * * @return a random dir name, g_free when it's no longer needed */ -char* test_mu_common_get_random_tmpdir(); +char* test_mu_common_get_random_tmpdir(void); +static inline std::string test_random_tmpdir() { + return to_string_gchar(test_mu_common_get_random_tmpdir()); +} /** * mu wrapper for g_test_init diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.10.0/meson.build new/mu-1.10.1/meson.build --- old/mu-1.10.0/meson.build 2023-03-26 09:30:36.000000000 +0200 +++ new/mu-1.10.1/meson.build 2023-04-02 08:28:53.000000000 +0200 @@ -17,7 +17,7 @@ ################################################################################ # project setup project('mu', ['c', 'cpp'], - version: '1.10.0', + version: '1.10.1', meson_version: '>= 0.56.0', license: 'GPL-3.0-or-later', default_options : [ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.10.0/mu/mu-cmd.cc new/mu-1.10.1/mu/mu-cmd.cc --- old/mu-1.10.0/mu/mu-cmd.cc 2023-03-26 09:30:36.000000000 +0200 +++ new/mu-1.10.1/mu/mu-cmd.cc 2023-04-02 08:28:53.000000000 +0200 @@ -156,7 +156,12 @@ { using Format = Options::View::Format; - auto message{Message::make_from_path(fname, message_options(opts.view))}; + // make absolute. + const auto fpath{to_string_opt_gchar(g_canonicalize_filename(fname.c_str(), NULL))}; + if (!fpath) + return Err(Error::Code::File, "invalid file '%s'", fname.c_str()); + + auto message{Message::make_from_path(*fpath, message_options(opts.view))}; if (!message) return Err(message.error()); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.10.0/mu/mu-options.cc new/mu-1.10.1/mu/mu-options.cc --- old/mu-1.10.0/mu/mu-options.cc 2023-03-26 09:30:36.000000000 +0200 +++ new/mu-1.10.1/mu/mu-options.cc 2023-04-02 08:28:53.000000000 +0200 @@ -256,6 +256,9 @@ { Format::Sexp, {"sexp", "S-expressions"} }, + { Format::Json, + {"json", "JSON"} + }, { Format::XQuery, {"xquery", "Show Xapian query (for debugging)"} }, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.10.0/mu/mu.cc new/mu-1.10.1/mu/mu.cc --- old/mu-1.10.0/mu/mu.cc 2023-03-26 09:30:36.000000000 +0200 +++ new/mu-1.10.1/mu/mu.cc 2023-04-02 08:28:53.000000000 +0200 @@ -42,7 +42,7 @@ std::cerr << col.fg(Color::Red) << "error" << col.reset() << ": " << col.fg(Color::BrightYellow) - << what << "\n"; + << what << col.reset() << "\n"; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.10.0/mu/tests/test-mu-cmd.cc new/mu-1.10.1/mu/tests/test-mu-cmd.cc --- old/mu-1.10.0/mu/tests/test-mu-cmd.cc 2023-03-26 09:30:36.000000000 +0200 +++ new/mu-1.10.1/mu/tests/test-mu-cmd.cc 2023-04-02 08:28:53.000000000 +0200 @@ -25,6 +25,7 @@ #include <errno.h> #include <stdlib.h> +#include <type_traits> #include <unistd.h> #include <string.h> @@ -33,6 +34,7 @@ #include "mu-query.hh" #include "utils/mu-result.hh" #include "utils/mu-utils.hh" +#include "utils/mu-utils-file.hh" using namespace Mu; @@ -227,59 +229,59 @@ g_free(cmdline); } -G_GNUC_UNUSED static void +static void test_mu_find_links(void) { - gchar *cmdline, *output, *erroutput, *tmpdir; - - tmpdir = test_mu_common_get_random_tmpdir(); - - cmdline = g_strdup_printf("%s find --muhome=%s --format=links --linksdir=%s " - "mime:message/rfc822", - MU_PROGRAM, - DBPATH.c_str(), - tmpdir); - + char *output, *erroutput; + const auto tmpdir{test_random_tmpdir()}; + auto cmdline = format("%s find --muhome=%s --format=links --linksdir=%s " + "mime:message/rfc822", MU_PROGRAM, DBPATH.c_str(), tmpdir.c_str()); if (g_test_verbose()) - g_print("cmdline: %s\n", cmdline); + g_print("cmdline: %s\n", cmdline.c_str()); - g_assert(g_spawn_command_line_sync(cmdline, &output, &erroutput, NULL, NULL)); + g_assert(g_spawn_command_line_sync(cmdline.c_str(), &output, &erroutput, NULL, NULL)); /* there should be no errors */ g_assert_cmpuint(newlines_in_output(output), ==, 0); g_assert_cmpuint(newlines_in_output(erroutput), ==, 0); g_free(output); g_free(erroutput); + output = erroutput = NULL; + + /* furthermore, two symlinks should be there */ + const auto f1{format("%s/cur/3419760385_rfc822.1", tmpdir.c_str())}; + const auto f2{format("%s/cur/3419760386_rfc822.2", tmpdir.c_str())}; + + g_assert_cmpuint(determine_dtype(f1.c_str(), true), ==, DT_LNK); + g_assert_cmpuint(determine_dtype(f2.c_str(), true), ==, DT_LNK); /* now we try again, we should get a line of error output, * when we find the first target file already exists */ if (g_test_verbose()) - g_print("cmdline: %s\n", cmdline); + g_print("cmdline: %s\n", cmdline.c_str()); - g_assert(g_spawn_command_line_sync(cmdline, &output, &erroutput, NULL, NULL)); + g_assert(g_spawn_command_line_sync(cmdline.c_str(), &output, &erroutput, NULL, NULL)); g_assert_cmpuint(newlines_in_output(output), ==, 0); g_assert_cmpuint(newlines_in_output(erroutput), ==, 1); g_free(output); g_free(erroutput); + output = erroutput = NULL; /* now we try again with --clearlinks, and the we should be * back to 0 errors */ - g_free(cmdline); - cmdline = g_strdup_printf("%s find --muhome=%s --format=links --linksdir=%s --clearlinks " - "mime:message/rfc822", - MU_PROGRAM, - DBPATH.c_str(), - tmpdir); - g_assert(g_spawn_command_line_sync(cmdline, &output, &erroutput, NULL, NULL)); + cmdline = format("%s find --muhome=%s --format=links --linksdir=%s --clearlinks " + "mime:message/rfc822", MU_PROGRAM, DBPATH.c_str(), tmpdir.c_str()); + + g_assert(g_spawn_command_line_sync(cmdline.c_str(), &output, &erroutput, NULL, NULL)); if (g_test_verbose()) - g_print("cmdline: %s\n", cmdline); + g_print("cmdline: %s\n", cmdline.c_str()); g_assert_cmpuint(newlines_in_output(output), ==, 0); g_assert_cmpuint(newlines_in_output(erroutput), ==, 0); g_free(output); g_free(erroutput); - g_free(cmdline); - g_free(tmpdir); + g_assert_cmpuint(determine_dtype(f1.c_str(), true), ==, DT_LNK); + g_assert_cmpuint(determine_dtype(f2.c_str(), true), ==, DT_LNK); } /* some more tests */ @@ -837,11 +839,8 @@ g_test_add_func("/mu-cmd/test-mu-find-file", test_mu_find_file); g_test_add_func("/mu-cmd/test-mu-find-mime", test_mu_find_mime); - /* recently, this test breaks _sometimes_ when run on Travis; but it - * seems related to the setup there, as nothing has changed in the code. - * turn off for now. */ - /* g_test_add_func ("/mu-cmd/test-mu-find-links", - * test_mu_find_links); */ + + g_test_add_func ("/mu-cmd/test-mu-find-links", test_mu_find_links); g_test_add_func("/mu-cmd/test-mu-find-text-in-rfc822", test_mu_find_text_in_rfc822); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.10.0/mu4e/mu4e-bookmarks.el new/mu-1.10.1/mu4e/mu4e-bookmarks.el --- old/mu-1.10.0/mu4e/mu4e-bookmarks.el 2023-03-26 09:30:36.000000000 +0200 +++ new/mu-1.10.1/mu4e/mu4e-bookmarks.el 2023-04-02 08:28:53.000000000 +0200 @@ -53,11 +53,9 @@ Each of the list elements is a plist with at least: `:name' - the name of the query -`:query' - the query expression string (not a function) +`:query' - the query expression string or function `:key' - the shortcut key (single character) -Note that the :query parameter can be a function/lambda. - Optionally, you can add the following: - `:favorite' - if t, monitor the results of this query, and make diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.10.0/mu4e/mu4e-draft.el new/mu-1.10.1/mu4e/mu4e-draft.el --- old/mu-1.10.0/mu4e/mu4e-draft.el 2023-03-26 09:30:36.000000000 +0200 +++ new/mu-1.10.1/mu4e/mu4e-draft.el 2023-04-02 08:28:53.000000000 +0200 @@ -60,7 +60,7 @@ :group 'mu4e-compose) (defcustom mu4e-compose-keep-self-cc nil - "When non-nil. keep your e-mail address in Cc: when replying." + "When non-nil, keep your e-mail address in Cc: when replying." :type 'boolean :group 'mu4e-compose) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.10.0/mu4e/mu4e-folders.el new/mu-1.10.1/mu4e/mu4e-folders.el --- old/mu-1.10.0/mu4e/mu4e-folders.el 2023-03-26 09:30:36.000000000 +0200 +++ new/mu-1.10.1/mu4e/mu4e-folders.el 2023-04-02 08:28:53.000000000 +0200 @@ -116,7 +116,17 @@ Unlike in search queries, folder names with spaces in them must NOT be quoted, since mu4e does this for you." - :type '(repeat (cons (string :tag "Maildir") character)) + :type '(choice + (alist :key-type (string :tag "Maildir") + :value-type character + :tag "Alist (old format)") + (repeat (plist + :key-type (choice (const :tag "Maildir" :maildir) + (const :tag "Shortcut" :key) + (const :tag "Name of maildir" :name) + (const :tag "Hide from main view" :hide) + (const :tag "Do not count" :hide-unread)) + :tag "Plist (new format)"))) :version "1.3.9" :group 'mu4e-folders) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.10.0/mu4e/mu4e-headers.el new/mu-1.10.1/mu4e/mu4e-headers.el --- old/mu-1.10.0/mu4e/mu4e-headers.el 2023-03-26 09:30:36.000000000 +0200 +++ new/mu-1.10.1/mu4e/mu4e-headers.el 2023-04-02 08:28:53.000000000 +0200 @@ -1591,14 +1591,14 @@ ,(face-attribute 'default :background))) (overlay-put overlay 'priority 9998) - overlay))) - (setq mu4e--loading-overlay-text - (let ((overlay (make-overlay (point-min) (point-min)))) - (overlay-put overlay 'priority 9999) - (overlay-put overlay 'before-string - (propertize "Loadingâ¦\n" - 'face 'mu4e-header-title-face)) - overlay))) + overlay)) + (setq mu4e--loading-overlay-text + (let ((overlay (make-overlay (point-min) (point-min)))) + (overlay-put overlay 'priority 9999) + (overlay-put overlay 'before-string + (propertize "Loadingâ¦\n" + 'face 'mu4e-header-title-face)) + overlay)))) (when mu4e--loading-overlay-bg (delete-overlay mu4e--loading-overlay-bg)) (when mu4e--loading-overlay-text diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.10.0/mu4e/mu4e-helpers.el new/mu-1.10.1/mu4e/mu4e-helpers.el --- old/mu-1.10.0/mu4e/mu4e-helpers.el 2023-03-26 09:30:36.000000000 +0200 +++ new/mu-1.10.1/mu4e/mu4e-helpers.el 2023-04-02 08:28:53.000000000 +0200 @@ -38,7 +38,7 @@ ;;; Customization (defcustom mu4e-debug nil - "When set to non-nil, log debug information to the mu4e log buffer." + "When set to non-nil, log debug information to the mu4e log buffer." :type 'boolean :group 'mu4e) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.10.0/mu4e/mu4e-main.el new/mu-1.10.1/mu4e/mu4e-main.el --- old/mu-1.10.0/mu4e/mu4e-main.el 2023-03-26 09:30:36.000000000 +0200 +++ new/mu-1.10.1/mu4e/mu4e-main.el 2023-04-02 08:28:53.000000000 +0200 @@ -178,6 +178,7 @@ ;; reset the baseline and get updated results. (mu4e--query-items-refresh 'reset-baseline)))) + (defun mu4e--main-action (title cmd &optional bindstr alt) "Produce main view action string with TITLE. @@ -187,12 +188,13 @@ of [@] replaced by a textual replacement of a binding to CMD as per `mu4e-key-description', or, if specified, BINDSTR. -If ALT is specified, and BINDSTR is longer than a single character, -use ALT as a substitute. +If a string ALT is specified, and BINDSTR is longer than a single +character, use ALT as a substitute. ALT should be a string of +length 1. If the first letter after the [@] is equal to the last letter of the binding representation, remove that first letter." - (let* ((bindstr (or bindstr (mu4e-key-description cmd) (and alt (string alt)) + (let* ((bindstr (or bindstr (mu4e-key-description cmd) alt (mu4e-error "No binding for %s" cmd))) (bindstr (if (and alt (> (length bindstr) 1)) alt bindstr)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.10.0/mu4e/mu4e-query-items.el new/mu-1.10.1/mu4e/mu4e-query-items.el --- old/mu-1.10.0/mu4e/mu4e-query-items.el 2023-03-26 09:30:36.000000000 +0200 +++ new/mu-1.10.1/mu4e/mu4e-query-items.el 2023-04-02 08:28:53.000000000 +0200 @@ -46,7 +46,7 @@ For instance, we could change any instance of \"workmail\" into \"maildir:/long-path-to-work-related-emails\", by setting the function -(setq mu4e-query-rewrite-function +\\=(setq mu4e-query-rewrite-function (lambda(expr) (replace-regexp-in-string \"workmail\" \"maildir:/long-path-to-work-related-emails\" expr))) @@ -175,6 +175,7 @@ (query (if (equal type 'maildirs) (format "maildir:\"%s\"" maildir) (plist-get item :query))) + (query (if (functionp query) (funcall query) query)) (name (plist-get item :name)) ;; it is possible that the user has a rewrite function (effective-query (funcall mu4e-query-rewrite-function query)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.10.0/mu4e/mu4e-search.el new/mu-1.10.1/mu4e/mu4e-search.el --- old/mu-1.10.0/mu4e/mu4e-search.el 2023-03-26 09:30:36.000000000 +0200 +++ new/mu-1.10.1/mu4e/mu4e-search.el 2023-04-02 08:28:53.000000000 +0200 @@ -105,13 +105,20 @@ Note that when threading is enabled (through `mu4e-search-threads'), the headers are exclusively sorted chronologically (`:date') by the newest message in the thread." - :type 'symbol + :type '(radio (const :date) + (const :subject) + (const :size) + (const :prio) + (const :from) + (const :to) + (const :list)) :group 'mu4e-search) (defcustom mu4e-search-sort-direction 'descending "Direction to sort by; a symbol either `descending' (sorting Z->A) or `ascending' (sorting A->Z)." - :type 'symbol + :type '(radio (const ascending) + (const descending)) :group 'mu4e-search) ;; mu4e-query-rewrite-function lives in mu4e-query-items.el @@ -203,6 +210,7 @@ (or expr (mu4e-ask-bookmark (if edit "Select bookmark: " "Bookmark: ")))) + (expr (if (functionp expr) (funcall expr) expr)) (fav (mu4e--bookmark-query (mu4e-bookmark-favorite)))) ;; reset baseline when searching for the favorite bookmark query (when (and fav (string= fav expr)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.10.0/mu4e/mu4e-server.el new/mu-1.10.1/mu4e/mu4e-server.el --- old/mu-1.10.0/mu4e/mu4e-server.el 2023-03-26 09:30:36.000000000 +0200 +++ new/mu-1.10.1/mu4e/mu4e-server.el 2023-04-02 08:28:53.000000000 +0200 @@ -45,7 +45,7 @@ Changes to this value only take effect after (re)starting the mu session." - :type 'file + :type '(file :must-match t) :group 'mu4e :safe 'stringp) @@ -396,22 +396,23 @@ (defun mu4e--version-check () ;; sanity-check 1 - (unless (and mu4e-mu-binary (file-executable-p mu4e-mu-binary)) - (mu4e-error - "Cannot find mu, please set `mu4e-mu-binary' to the mu executable path")) - ;; sanity-check 2 - (let ((version (let ((s (shell-command-to-string - (concat mu4e-mu-binary " --version")))) - (and (string-match "version \\([.0-9]+\\)" s) - (match-string 1 s))))) - (if (not (string= version mu4e-mu-version)) + (let ((default-directory temporary-file-directory)) ;;ensure it's local. + (unless (and mu4e-mu-binary (file-executable-p mu4e-mu-binary)) (mu4e-error - (concat - "Found mu version %s, but mu4e needs version %s" - "; please set `mu4e-mu-binary' " - "accordingly") - version mu4e-mu-version) - (mu4e-message "Found mu version %s" version)))) + "Cannot find mu, please set `mu4e-mu-binary' to the mu executable path")) + ;; sanity-check 2 + (let ((version (let ((s (shell-command-to-string + (concat mu4e-mu-binary " --version")))) + (and (string-match "version \\([.0-9]+\\)" s) + (match-string 1 s))))) + (if (not (string= version mu4e-mu-version)) + (mu4e-error + (concat + "Found mu version %s, but mu4e needs version %s" + "; please set `mu4e-mu-binary' " + "accordingly") + version mu4e-mu-version) + (mu4e-message "Found mu version %s" version))))) (defun mu4e-server-repl () "Start a mu4e-server repl. @@ -433,24 +434,23 @@ (defun mu4e--server-start () "Start the mu server process." (mu4e--version-check) - (let ((default-directory temporary-file-directory)) ;;ensure it's local. - ;; kill old/stale servers, if any. - (mu4e--kill-stale) - (let* ((process-connection-type nil) ;; use a pipe - (args (mu4e--server-args))) - (setq mu4e--server-buf "") - (mu4e-log 'misc "* invoking '%s' with parameters %s" mu4e-mu-binary - (mapconcat (lambda (arg) (format "'%s'" arg)) args " ")) - (setq mu4e--server-process (apply 'start-process - mu4e--server-name mu4e--server-name - mu4e-mu-binary args)) - ;; register a function for (:info ...) sexps - (unless mu4e--server-process - (mu4e-error "Failed to start the mu4e backend")) - (set-process-query-on-exit-flag mu4e--server-process nil) - (set-process-coding-system mu4e--server-process 'binary 'utf-8-unix) - (set-process-filter mu4e--server-process 'mu4e--server-filter) - (set-process-sentinel mu4e--server-process 'mu4e--server-sentinel)))) + ;; kill old/stale servers, if any. + (mu4e--kill-stale) + (let* ((process-connection-type nil) ;; use a pipe + (args (mu4e--server-args))) + (setq mu4e--server-buf "") + (mu4e-log 'misc "* invoking '%s' with parameters %s" mu4e-mu-binary + (mapconcat (lambda (arg) (format "'%s'" arg)) args " ")) + (setq mu4e--server-process (apply 'start-process + mu4e--server-name mu4e--server-name + mu4e-mu-binary args)) + ;; register a function for (:info ...) sexps + (unless mu4e--server-process + (mu4e-error "Failed to start the mu4e backend")) + (set-process-query-on-exit-flag mu4e--server-process nil) + (set-process-coding-system mu4e--server-process 'binary 'utf-8-unix) + (set-process-filter mu4e--server-process 'mu4e--server-filter) + (set-process-sentinel mu4e--server-process 'mu4e--server-sentinel))) (defun mu4e--server-kill () "Kill the mu server process." diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.10.0/mu4e/mu4e-vars.el new/mu-1.10.1/mu4e/mu4e-vars.el --- old/mu-1.10.0/mu4e/mu4e-vars.el 2023-03-26 09:30:36.000000000 +0200 +++ new/mu-1.10.1/mu4e/mu4e-vars.el 2023-04-02 08:28:53.000000000 +0200 @@ -70,7 +70,8 @@ (defcustom mu4e-dim-when-loading t "Dim buffer text when loading new data. -If non-nil, dim some buffers during data retrieval and rendering." +If non-nil, dim some buffers during data retrieval and rendering, +and show some \"Loading\" banner." :type 'boolean :group 'mu4e) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.10.0/mu4e/mu4e-view.el new/mu-1.10.1/mu4e/mu4e-view.el --- old/mu-1.10.0/mu4e/mu4e-view.el 2023-03-26 09:30:36.000000000 +0200 +++ new/mu-1.10.1/mu4e/mu4e-view.el 2023-04-02 08:28:53.000000000 +0200 @@ -69,11 +69,11 @@ shown; you can further tweak the other fields using e.g., `gnus-article-hide-boring-headers', `gnus-article-hide-headers' etc., see the gnus documentation for details." - :type (list 'symbol) + :type '(repeat symbol) :group 'mu4e-view) (defcustom mu4e-view-actions - (seq-filter 'identity + (seq-filter #'identity `( ("capture message" . mu4e-action-capture-message) ("view in browser" . mu4e-action-view-in-browser) ,(when (fboundp 'xwidget-webkit-browse-url) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mu-1.10.0/mu4e/mu4e-window.el new/mu-1.10.1/mu4e/mu4e-window.el --- old/mu-1.10.0/mu4e/mu4e-window.el 2023-03-26 09:30:36.000000000 +0200 +++ new/mu-1.10.1/mu4e/mu4e-window.el 2023-04-02 08:28:53.000000000 +0200 @@ -172,6 +172,17 @@ buffer's major mode." (eq (mu4e--get-current-buffer-type) type)) + +;; backward-compat; buffer-local-boundp was introduced in emacs 28. +(defun mu4e--buffer-local-boundp (symbol buffer) + "Return non-nil if SYMBOL is bound in BUFFER. +Also see `local-variable-p'." + (condition-case nil + (buffer-local-value symbol buffer) + (:success t) + (void-variable nil))) + + (defun mu4e-get-view-buffer (&optional headers-buffer create) "Return a view buffer belonging optionally to HEADERS-BUFFER. @@ -197,8 +208,9 @@ ;; Search all view buffers and return those that are linked to ;; `headers-buffer'. (linked-buffer (mu4e-get-view-buffers - (lambda (buf) (and (buffer-local-boundp 'mu4e-linked-headers-buffer buf) - (eq mu4e-linked-headers-buffer headers-buffer)))))) + (lambda (buf) + (and (mu4e--buffer-local-boundp 'mu4e-linked-headers-buffer buf) + (eq mu4e-linked-headers-buffer headers-buffer)))))) ;; If such a linked buffer exists and its buffer is live, we use that buffer. (if (and linked-buffer (buffer-live-p (car linked-buffer))) ;; NOTE: It's possible for there to be more than one linked view buffer.
