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 2024-04-16 20:05:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/maildir-utils (Old)
 and      /work/SRC/openSUSE:Factory/.maildir-utils.new.26366 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "maildir-utils"

Tue Apr 16 20:05:00 2024 rev:53 rq:1167921 version:1.12.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/maildir-utils/maildir-utils.changes      
2024-04-09 16:53:24.213739150 +0200
+++ /work/SRC/openSUSE:Factory/.maildir-utils.new.26366/maildir-utils.changes   
2024-04-16 20:10:59.068196625 +0200
@@ -1,0 +2,13 @@
+Tue Apr 16 06:09:50 UTC 2024 - Michael Vetter <mvet...@suse.com>
+
+- Update to 1.12.4:
+  * query when quitting emacs with unhandled marks in a headers buffer
+  * fix mime-handling
+  * update sent handling (simplifying it)
+  * some internal improvements
+  * number of small fixes / updates
+  * documentation updates
+  * re-enable a specific database lock; this makes indexing a bit slower,
+    but hopefully avoids some db corruption.
+
+-------------------------------------------------------------------

Old:
----
  mu-1.12.3.tar.xz

New:
----
  mu-1.12.4.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ maildir-utils.spec ++++++
--- /var/tmp/diff_new_pack.jeYAcr/_old  2024-04-16 20:11:00.920264685 +0200
+++ /var/tmp/diff_new_pack.jeYAcr/_new  2024-04-16 20:11:00.920264685 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           maildir-utils
-Version:        1.12.3
+Version:        1.12.4
 Release:        0
 Summary:        Maildir indexer and searcher
 License:        GPL-3.0-or-later

++++++ mu-1.12.3.tar.xz -> mu-1.12.4.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mu-1.12.3/IDEAS.org new/mu-1.12.4/IDEAS.org
--- old/mu-1.12.3/IDEAS.org     2024-04-08 22:22:35.000000000 +0200
+++ new/mu-1.12.4/IDEAS.org     2024-04-15 18:05:22.000000000 +0200
@@ -5,9 +5,7 @@
 the Github issue list, i.e. without any clear plan for adding in the near
 future.
 
-- Ability to _mute_ message threads. This is useful but also requires quite 
bit of
-  extra infra; we could add some blacklist for "muted" messages, perhaps on the
-  'mu server' side, but then we'd need some way to manage that (ie., unmute).
+- Ability to _mute_ message threads. This is useful but also requires quite 
bit of extra infra; we could add some blacklist for "muted" messages, perhaps 
on the 'mu server' side, but then we'd need some way to manage that (ie., 
unmute).
   https://github.com/djcb/mu/issues/636
 
 - Support automatic handling for List-Unsubscribe headers
@@ -23,10 +21,6 @@
   https://github.com/djcb/mu/issues/2308
   Shouldn't be _too_ hard, for someone that uses the functionality.
 
-- Support mu4e-mark-handle-when also for when leaving emacs
-  (kill-emacs-query-functions).
-  https://github.com/djcb/mu/issues/2649
-
 - Make sorting stable if there are multiple messages with the same date. We
   _could_ do this by adding some random millisecs to each messasge's 
timestamp; _or_
   complicating the search (i.e., the message hash?). Maybe leave as is?
@@ -42,3 +36,14 @@
   PDF-specific, we could pipe a PDF through some tool to extract text; and we'd
   need some way for users to specify a MIME-type => tool mapping  (in Config).
   https://github.com/djcb/mu/issues/2117
+
+- Support "aggregate actions" apply to a set of messages, e.g. apply patch-set
+  in a set of messages. That'll require some advanced scripting, maybe using
+  Guile.
+  https://github.com/djcb/mu/issues/301
+
+* Done
+
+- Support mu4e-mark-handle-when also for when leaving emacs
+  (kill-emacs-query-functions).
+  https://github.com/djcb/mu/issues/2649
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mu-1.12.3/lib/mu-indexer.cc 
new/mu-1.12.4/lib/mu-indexer.cc
--- old/mu-1.12.3/lib/mu-indexer.cc     2024-04-08 22:22:35.000000000 +0200
+++ new/mu-1.12.4/lib/mu-indexer.cc     2024-04-15 18:05:22.000000000 +0200
@@ -242,8 +242,9 @@
         * but it believed those are _false alarms_
         * https://gitlab.gnome.org/GNOME/glib/-/issues/2662
         *
-        *      std::unique_lock lock{w_lock_};
+        * For now, set the lock as we were seeing some db corruption.
         */
+       std::unique_lock lock{w_lock_};
        auto msg{Message::make_from_path(path, store_.message_options())};
        if (!msg) {
                mu_warning("failed to create message from {}: {}", path, 
msg.error().what());
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mu-1.12.3/lib/mu-server.cc 
new/mu-1.12.4/lib/mu-server.cc
--- old/mu-1.12.3/lib/mu-server.cc      2024-04-08 22:22:35.000000000 +0200
+++ new/mu-1.12.4/lib/mu-server.cc      2024-04-15 18:05:22.000000000 +0200
@@ -184,7 +184,6 @@
        void queries_handler(const Command& cmd);
        void quit_handler(const Command& cmd);
        void remove_handler(const Command& cmd);
-       void sent_handler(const Command& cmd);
        void view_handler(const Command& cmd);
 
 private:
@@ -415,12 +414,6 @@
                [&](const auto& params) { remove_handler(params); }});
 
        cmap.emplace(
-           "sent",
-           CommandInfo{ArgMap{{":path", ArgInfo{Type::String, true, "path to 
the message file"}}},
-                       "tell mu about a message that was sent",
-                       [&](const auto& params) { sent_handler(params); }});
-
-       cmap.emplace(
            "view",
            CommandInfo{ArgMap{
                            {":docid", ArgInfo{Type::Number, false, 
"document-id"}},
@@ -984,21 +977,6 @@
 }
 
 void
-Server::Private::sent_handler(const Command& cmd)
-{
-       const auto path{cmd.string_arg(":path").value_or("")};
-       const auto docid = store().add_message(path);
-       if (!docid)
-               throw Error{Error::Code::Store, "failed to add path: {}: {}",
-                       path, docid.error().what()};
-
-       output_sexp(Sexp().put_props(
-                           ":sent", Sexp::t_sym,
-                           ":path", path,
-                           ":docid", docid.value()));
-}
-
-void
 Server::Private::view_mark_as_read(Store::Id docid, Message&& msg, bool rename)
 {
        auto new_flags = [](const Message& m)->Option<Flags> {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mu-1.12.3/lib/utils/mu-utils.cc 
new/mu-1.12.4/lib/utils/mu-utils.cc
--- old/mu-1.12.3/lib/utils/mu-utils.cc 2024-04-08 22:22:35.000000000 +0200
+++ new/mu-1.12.4/lib/utils/mu-utils.cc 2024-04-15 18:05:22.000000000 +0200
@@ -489,7 +489,7 @@
 {
        struct tm tbuf{};
        GDateTime *dtime{};
-       ::time_t t;
+       gint64 t;
 
        /* one-sided dates */
        if (dstr.empty())
@@ -531,7 +531,7 @@
        t = g_date_time_to_unix(dtime);
        g_date_time_unref(dtime);
 
-       return std::max<::time_t>(t, 0);
+       return to_time_t(t);
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mu-1.12.3/lib/utils/mu-utils.hh 
new/mu-1.12.4/lib/utils/mu-utils.hh
--- old/mu-1.12.3/lib/utils/mu-utils.hh 2024-04-08 22:22:35.000000000 +0200
+++ new/mu-1.12.4/lib/utils/mu-utils.hh 2024-04-15 18:05:22.000000000 +0200
@@ -36,7 +36,6 @@
 
 #include "mu-option.hh"
 
-
 #ifndef FMT_HEADER_ONLY
 #define FMT_HEADER_ONLY
 #endif /*FMT_HEADER_ONLY*/
@@ -269,6 +268,26 @@
 }
 
 /**
+ * Convert an int64_t to a time_t, clamping it within the range.
+ *
+ * This is only doing anything when using a 32-bit time_t value. This doesn't
+ * solve the 3038 problem, but at least allows for clearly marking where we
+ * convert
+ *
+ * @param t some 64-bit value that encodes a Unix time.
+ *
+ * @return a time_t value
+ */
+constexpr ::time_t time_t_min = 0;
+constexpr ::time_t time_t_max = std::numeric_limits<::time_t>::max();
+constexpr ::time_t to_time_t(int64_t t) {
+       return std::clamp(t,
+                         static_cast<int64_t>(time_t_min),
+                         static_cast<int64_t>(time_t_max));
+}
+
+
+/**
  * Parse a date string to the corresponding time_t
  * *
  * @param date the date expressed a YYYYMMDDHHMMSS or any n... of the first
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mu-1.12.3/lib/utils/tests/test-utils.cc 
new/mu-1.12.4/lib/utils/tests/test-utils.cc
--- old/mu-1.12.3/lib/utils/tests/test-utils.cc 2024-04-08 22:22:35.000000000 
+0200
+++ new/mu-1.12.4/lib/utils/tests/test-utils.cc 2024-04-15 18:05:22.000000000 
+0200
@@ -62,7 +62,7 @@
        }
 
        g_setenv("TZ", hki, TRUE);
-       std::vector<std::tuple<const char*, bool/*is_first*/, int64_t>> cases = 
{{
+       std::vector<std::tuple<const char*, bool/*is_first*/, ::time_t>> cases 
= {{
                        {"2015-09-18T09:10:23", true, 1442556623},
                        {"1972-12-14T09:10:23", true, 93165023},
                        {"1972-12-14T09:10", true,    93165000},
@@ -82,8 +82,8 @@
 
                        // {"fnorb", true,  -1},
                        // {"fnorb", false, -1},
-                       {"", false, G_MAXINT64},
-                       {"", true, 0}
+                       {"", false, time_t_max},
+                       {"", true, time_t_min}
                }};
 
        for (auto& test: cases) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mu-1.12.3/meson.build new/mu-1.12.4/meson.build
--- old/mu-1.12.3/meson.build   2024-04-08 22:22:35.000000000 +0200
+++ new/mu-1.12.4/meson.build   2024-04-15 18:05:22.000000000 +0200
@@ -17,7 +17,7 @@
 
################################################################################
 # project setup
 project('mu', ['c', 'cpp'],
-        version: '1.12.3',
+        version: '1.12.4',
         meson_version: '>= 0.56.0',
         license: 'GPL-3.0-or-later',
         default_options : [
@@ -28,7 +28,7 @@
 
 # hard-code the date here (for reproduciblity); we derive the dates used in 
e.g.
 # documentation from this.
-mu_date='2024-04-08'
+mu_date='2024-04-15'
 
 # installation paths
 prefixdir = get_option('prefix')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mu-1.12.3/mu4e/mu4e-compose.el 
new/mu-1.12.4/mu4e/mu4e-compose.el
--- old/mu-1.12.3/mu4e/mu4e-compose.el  2024-04-08 22:22:35.000000000 +0200
+++ new/mu-1.12.4/mu4e/mu4e-compose.el  2024-04-15 18:05:22.000000000 +0200
@@ -369,8 +369,8 @@
 I.e., either \"name <email>\" or \"email\". Return nil if not found.
 
 This function can be used for `completion-at-point-functions', to
-complete addresses. This can be used outside mu4e, but mu4e must
-be active (running) for this to work."
+complete addresses. This can be used from outside mu4e, but mu4e
+must be active (running) for this to work."
   (let* ((end (point))
          (start (save-excursion
                   (re-search-backward "\\(\\`\\|[\n:,]\\)[ \t]*")
@@ -526,6 +526,9 @@
   "Handler called with DOCID and PATH for the just-sent message.
 For Forwarded ('Passed') and Replied messages, try to set the
 appropriate flag at the message forwarded or replied-to."
+  ;; XXX we don't need this function anymore here, but
+  ;; we have an external caller in mu4e-icalendar... we should
+  ;; update that.
   (mu4e--set-parent-flags path)
   ;; if the draft file exists, remove it now.
   (when (file-exists-p path)
@@ -549,15 +552,23 @@
       (unless (message-fetch-field "In-Reply-To")
         (message-remove-header "References")))
     (when use-hard-newlines
-      (mu4e--send-harden-newlines)))
-  ;; for safety, always save the draft before sending
-  (set-buffer-modified-p t)
-  (save-buffer))
-
-(defun mu4e--compose-after-send ()
-  "Function called just after sending a message."
-  (setq mu4e-sent-func #'mu4e-sent-handler)
-  (mu4e--server-sent (buffer-file-name)))
+      (mu4e--send-harden-newlines))
+    ;; now handle what happens _after_ sending; typically, draft is gone and
+    ;; the sent message appears in sent. Update flags for related messages,
+    ;; i.e. for Forwarded ('Passed') and Replied messages, try to set the
+    ;; appropriate flag at the message forwarded or replied-to.
+    (add-hook 'message-sent-hook
+              (lambda ()
+                (save-restriction
+                  (message-narrow-to-headers)
+                  (when-let ((fcc-path (message-fetch-field "Fcc")))
+                    (mu4e--set-parent-flags fcc-path)
+                    ;; we end up with a ((buried) buffer here, visiting
+                    ;; the fcc-path; not quite sure why. But let's
+                    ;; get rid of it (#2681)
+                    (when-let ((buf (find-buffer-visiting fcc-path)))
+                      (kill-buffer buf)))))
+              nil t)))
 
 ;;; Crypto
 (defun mu4e--compose-setup-crypto (parent compose-type)
@@ -793,12 +804,11 @@
       ;; annoyingly, various message- functions call `message-pop-to-buffer`
       ;; (showing the message. But we're not ready for that yet. So
       ;; temporarily override that.
-      (advice-add 'message-pop-to-buffer
-                  :override #'mu4e--fake-pop-to-buffer)
-      (funcall compose-func parent)
+      (cl-letf (((symbol-function #'message-pop-to-buffer)
+                  #'mu4e--fake-pop-to-buffer))
+        (funcall compose-func parent))
       ;; add some more headers, if needed.
       (message-generate-headers (mu4e--headers compose-type))
-      (advice-remove 'message-pop-to-buffer #'mu4e--fake-pop-to-buffer)
       (current-buffer)))) ;; returns new buffer (this is not the tmp buf)
 
 
@@ -842,7 +852,6 @@
   (add-hook 'before-save-hook  #'mu4e--compose-before-save nil t)
   (add-hook 'after-save-hook   #'mu4e--compose-after-save nil t)
   (add-hook 'message-send-hook #'mu4e--compose-before-send nil t)
-  (add-hook 'message-sent-hook #'mu4e--compose-after-send nil t)
 
   (when-let ((fcc-path (mu4e--fcc-path (mu4e--message-basename) parent)))
     (message-add-header (concat "Fcc: " fcc-path "\n")))
@@ -1002,8 +1011,10 @@
     (mu4e--compose-setup
      'edit
      (lambda (parent)
-       (find-file (plist-get parent :path))
-       (mu4e--delimit-headers)))))
+       (let ((buf (find-file-noselect (plist-get parent :path))))
+         (with-current-buffer buf
+           (mu4e--delimit-headers))
+         (switch-to-buffer buf))))))
 
 ;;;###autoload
 (defun mu4e-compose-resend (address)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mu-1.12.3/mu4e/mu4e-contacts.el 
new/mu-1.12.4/mu4e/mu4e-contacts.el
--- old/mu-1.12.3/mu4e/mu4e-contacts.el 2024-04-08 22:22:35.000000000 +0200
+++ new/mu-1.12.4/mu4e/mu4e-contacts.el 2024-04-15 18:05:22.000000000 +0200
@@ -149,25 +149,39 @@
          (eq t (compare-strings addr nil nil m nil nil 'case-insensitive))))
      (mu4e-personal-addresses))))
 
+
 (defun mu4e-personal-or-alternative-address-p (addr)
   "Is ADDR either a personal or an alternative address?
 
 That is, does it match either `mu4e-personal-address-p' or
 `message-alternative-emails'.
 
-Note that this expanded definition of user-addresses not used for
- indexing mu does not know about `message-alternative-emails' so
- it cannot use it for indexing."
+Note that this expanded definition of user-addresses is only used
+in emacs, not in `mu' (e.g. when indexing).
+
+Also see `mu4e-personal-or-alternative-address-or-empty-p'."
   (let ((alts message-alternative-emails))
     (or (mu4e-personal-address-p addr)
         (cond
          ((functionp alts) (funcall alts addr))
          ((stringp alts)   (string-match alts addr))
          (t nil)))))
+
+(defun mu4e-personal-or-alternative-address-or-empty-p (addr)
+  "Is ADDR either a personal, alternative address or nil?
+
+This is like `mu4e-personal-or-alternative-address-p' but also
+return t for _empty_ ADDR. This can be useful for use with
+`message-dont-reply-to-names' since it can receive empty strings;
+those can be filtered-out by returning t here.
+
+See #2680 for further details. "
+  (or (and addr (string= addr ""))
+      (mu4e-personal-or-alternative-address-p addr)))
+
 
 ;; Helpers
 
-
 ;;; RFC2822 handling of phrases in mail-addresses
 ;;
 ;; The optional display-name contains a phrase, it sits before the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mu-1.12.3/mu4e/mu4e-icalendar.el 
new/mu-1.12.4/mu4e/mu4e-icalendar.el
--- old/mu-1.12.3/mu4e/mu4e-icalendar.el        2024-04-08 22:22:35.000000000 
+0200
+++ new/mu-1.12.4/mu4e/mu4e-icalendar.el        2024-04-15 18:05:22.000000000 
+0200
@@ -135,21 +135,19 @@
                         (plist-get (car (plist-get msg :reply-to)) :email)
                         (plist-get (car (plist-get msg :from)) :email)
                         (mu4e-warn "Cannot find organizer"))))
-              (mu4e--compose-setup
-               'reply
-               (lambda (_parent)
-                 (message-reply organizer)
-                 (goto-char (point-max))
-                 (message-goto-body)
-                 (mml-insert-multipart "alternative")
-                 (mml-insert-empty-tag 'part 'type "text/plain")
-                 (mml-attach-buffer ical-name
-                                    "text/calendar; method=REPLY; 
charset=UTF-8")
-                 (when mu4e-icalendar-trash-after-reply
-                   ;; Override `mu4e-sent-handler' set by `mu4e-compose-mode' 
to
-                   ;; also trash the message (thus must be appended to hooks).
-                   (add-hook 'message-sent-hook
-                             (mu4e--icalendar-trash-message-hook msg) 90 t))))
+              (message-reply organizer)
+              (goto-char (point-max))
+              (message-goto-body)
+              (mml-insert-multipart "alternative")
+              (mml-insert-empty-tag 'part 'type "text/plain")
+              (mml-attach-buffer ical-name
+                                 "text/calendar; method=REPLY; charset=UTF-8")
+              (mu4e-compose-mode)
+              (when mu4e-icalendar-trash-after-reply
+                ;; Override `mu4e-sent-handler' set by `mu4e-compose-mode' to
+                ;; also trash the message (thus must be appended to hooks).
+                (add-hook 'message-sent-hook
+                          (mu4e--icalendar-trash-message-hook msg) 90 t))
 
               (when gnus-icalendar-org-enabled-p
                 (if (gnus-icalendar-find-org-event-file event)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mu-1.12.3/mu4e/mu4e-mark.el 
new/mu-1.12.4/mu4e/mu4e-mark.el
--- old/mu-1.12.3/mu4e/mu4e-mark.el     2024-04-08 22:22:35.000000000 +0200
+++ new/mu-1.12.4/mu4e/mu4e-mark.el     2024-04-15 18:05:22.000000000 +0200
@@ -1,6 +1,6 @@
 ;;; mu4e-mark.el --- Marking messages -*- lexical-binding: t -*-
 
-;; Copyright (C) 2011-2022 Dirk-Jan C. Binnema
+;; Copyright (C) 2011-2024 Dirk-Jan C. Binnema
 
 ;; Author: Dirk-Jan C. Binnema <d...@djcbsoftware.nl>
 ;; Maintainer: Dirk-Jan C. Binnema <d...@djcbsoftware.nl>
@@ -39,8 +39,11 @@
 ;;; Variables & constants
 
 (defcustom mu4e-headers-leave-behavior 'ask
-  "What to do when user leaves the headers view.
-That is when he e.g. quits, refreshes or does a new search.
+  "What to do when user leaves the current headers view.
+
+\"Leaving\" here means quitting the headers views, refreshing it
+or even quitting mu4e or Emacs.
+
 Value is one of the following symbols:
 - `ask'     ask user whether to ignore the marks
 - `apply'   automatically apply the marks before doing anything else
@@ -90,7 +93,13 @@
 
 (defun mu4e--mark-initialize ()
   "Initialize the marks-subsystem."
-  (set (make-local-variable 'mu4e--mark-map) (make-hash-table)))
+  (set (make-local-variable 'mu4e--mark-map) (make-hash-table))
+  ;; ask user when kill buffer / emacs with live marks.
+  ;; (subject to mu4e-headers-leave-behavior)
+  (add-hook 'kill-buffer-query-functions
+            #'mu4e-mark-handle-when-leaving nil t)
+  (add-hook 'kill-emacs-query-functions
+            #'mu4e-mark-handle-when-leaving nil t))
 
 (defun mu4e--mark-clear ()
   "Clear the marks-subsystem."
@@ -454,7 +463,8 @@
                         ("ignore marks?" . ignore)))))
        ;; we determined what to do... now do it
        (when (eq what 'apply)
-         (mu4e-mark-execute-all t))))))
+         (mu4e-mark-execute-all t)))))
+  t) ;; return t for compat with `kill-buffer-query-functions
 
 ;;; _
 (provide 'mu4e-mark)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mu-1.12.3/mu4e/mu4e-mime-parts.el 
new/mu-1.12.4/mu4e/mu4e-mime-parts.el
--- old/mu-1.12.3/mu4e/mu4e-mime-parts.el       2024-04-08 22:22:35.000000000 
+0200
+++ new/mu-1.12.4/mu4e/mu4e-mime-parts.el       2024-04-15 18:05:22.000000000 
+0200
@@ -361,7 +361,7 @@
                        ;; - index: the index number of the mime part (default)
                        ;; - temp: the full path to the mime part in a
                        ;;         temporary file, which is deleted immediately
-                       ;;         after invoking handler
+                       ;;         after the handler returns
                        ;; - pipe:  the attachment is piped to some shell 
command
                        ;;          or as a string parameter to a function
 ).")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mu-1.12.3/mu4e/mu4e-server.el 
new/mu-1.12.4/mu4e/mu4e-server.el
--- old/mu-1.12.3/mu4e/mu4e-server.el   2024-04-08 22:22:35.000000000 +0200
+++ new/mu-1.12.4/mu4e/mu4e-server.el   2024-04-15 18:05:22.000000000 +0200
@@ -664,7 +664,7 @@
   (unless (or (not maildir)
               (file-exists-p
                (mu4e-join-paths (mu4e-root-maildir) maildir)))
-    (mu4e-error "Target dir does not exist"))
+    (mu4e-error "Target directory does not exist"))
   (mu4e--server-call-mu
    `(move
      :docid ,(if (stringp docid-or-msgid) nil docid-or-msgid)
@@ -679,24 +679,17 @@
   (mu4e--server-call-mu `(ping)))
 
 (defun mu4e--server-queries (queries)
-  "Sends queries to the mu server, expecting a (:queries ...) in response.
+  "Sends queries to the mu server, expecting a (:queries ...) sexp in response.
 QUERIES is a list of queries for the number of results with
 read/unread status are returned in the pong-response."
   (mu4e--server-call-mu `(queries :queries ,queries)))
 
 (defun mu4e--server-remove (docid)
-  "Remove message  with DOCID.
-The results are reporter through either (:update ... )
-or (:error) sexp, which are handled my `mu4e-error-func',
-respectively."
+  "Remove message with DOCID.
+The results are reported through either (:update ... )
+or (:error) sexps."
   (mu4e--server-call-mu `(remove :docid ,docid)))
 
-(defun mu4e--server-sent (path)
-  "Tell the mu server we sent a message at PATH.
-If this works, we will receive (:info add :path <path> :docid
-<docid> :fcc <path>)."
-  (mu4e--server-call-mu `(sent :path ,path)))
-
 (defun mu4e--server-view (docid-or-msgid &optional mark-as-read)
   "View a message referred to by DOCID-OR-MSGID.
 Optionally, if MARK-AS-READ is non-nil, the backend marks the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mu-1.12.3/mu4e/mu4e-view.el 
new/mu-1.12.4/mu4e/mu4e-view.el
--- old/mu-1.12.3/mu4e/mu4e-view.el     2024-04-08 22:22:35.000000000 +0200
+++ new/mu-1.12.4/mu4e/mu4e-view.el     2024-04-15 18:05:22.000000000 +0200
@@ -709,6 +709,7 @@
 
 (defun mu4e--view-render-buffer (msg)
   "Render current buffer with MSG using Gnus' article mode."
+  (setq gnus-summary-buffer (get-buffer-create " *appease-gnus*"))
   (let* ((inhibit-read-only t)
          (max-specpdl-size mu4e-view-max-specpdl-size)
          (mm-decrypt-option 'known)
@@ -730,6 +731,8 @@
           (ignore-errors (run-hooks 'gnus-article-decode-hook))
           (gnus-article-prepare-display)
           (mu4e--view-activate-urls)
+          ;; `gnus-summary-bookmark-make-record' does not work properly when 
"appeased."
+          (kill-local-variable 'bookmark-make-record-function)
           (setq mu4e~gnus-article-mime-handles gnus-article-mime-handles
                 gnus-article-decoded-p gnus-article-decode-hook)
           (set-buffer-modified-p nil)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mu-1.12.3/mu4e/mu4e.texi new/mu-1.12.4/mu4e/mu4e.texi
--- old/mu-1.12.3/mu4e/mu4e.texi        2024-04-08 22:22:35.000000000 +0200
+++ new/mu-1.12.4/mu4e/mu4e.texi        2024-04-15 18:05:22.000000000 +0200
@@ -2984,14 +2984,12 @@
 @node MIME-part actions
 @section MIME-part actions
 
-Finally, let's define a MIME-part action. As mentioned, MIME-part
-functions receive @emph{2} arguments, the message and the attachment
-number to use.
+Finally, let's define a MIME-part action.
 
 The following example action counts the number of lines in an attachment, and
 defines @key{n} as its shortcut key (the @key{n} is prefixed to the
-description). See the the @code{mu4e-view-mime-part-actions} for the details
-of the format.
+description). See the the @code{mu4e-view-mime-part-actions} for the details of
+the format.
 
 @lisp
 (add-to-list 'mu4e-view-mime-part-actions
@@ -2999,6 +2997,14 @@
     '(:name "line-count" :handler "wc -l" :receives pipe))
 @end lisp
 
+Or another one, to import a calendar invitation into the venerable emacs diary:
+@lisp
+(add-to-list 'mu4e-view-mime-part-actions
+    ;; import into calendar;
+    '(:name "dimport-in-diary" :handler (lambda(file) (icalendar-import-file 
file diary-file))
+      :receives temp))
+@end lisp
+
 @node Example actions
 @section Example actions
 
@@ -3606,6 +3612,21 @@
   (setq mu4e-view-show-addresses t)
 @end lisp
 
+For recent emacs (29 and later), address-completion may need some extra setup:
+@lisp
+(add-hook 'message-mode-hook
+          (lambda ()
+            (add-to-list 'completion-at-point-functions
+                         #'eudc-capf-complete)))
+@end lisp
+or, if that does not work:
+@lisp
+(add-hook 'message-mode-hook
+          (lambda ()
+            (add-to-list 'completion-at-point-functions
+                         #'message-expand-name)))
+@end lisp
+
 @noindent
 After this, you should be able to:
 @itemize
@@ -3615,6 +3636,7 @@
 @end itemize
 
 
+
 @node Sauron
 @section Sauron
 

Reply via email to