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.

Reply via email to