From 0390ebf5a9cbd40284a23800aa7166b2e5ba3945 Mon Sep 17 00:00:00 2001 From: Andreas Gerler Date: Wed, 24 Dec 2025 13:44:20 +0100 Subject: [PATCH] update mew --- .../dir | 0 .../etc/Mew.img | 0 .../etc/Mew.png | Bin .../etc/Mew.xbm | 0 .../etc/Mew.xpm | 0 .../etc/mew-Audio.xpm | 0 .../etc/mew-Blank.xpm | 0 .../etc/mew-External.xpm | 0 .../etc/mew-Folder.xpm | 0 .../etc/mew-Image.xpm | 0 .../etc/mew-Octet-Stream.xpm | 0 .../etc/mew-Postscript.xpm | 0 .../etc/mew-Rfc822.xpm | 0 .../etc/mew-Text.xpm | 0 .../etc/mew-Unknown.xpm | 0 .../etc/mew-Video.xpm | 0 .../etc/mew-attach.xpm | 0 .../etc/mew-cite.xpm | 0 .../etc/mew-forward.xpm | 0 .../etc/mew-inc.xpm | 0 .../etc/mew-lock.xpm | 0 .../etc/mew-next.xpm | 0 .../etc/mew-pgp-enc.xpm | 0 .../etc/mew-pgp-sigenc.xpm | 0 .../etc/mew-pgp-sign.xpm | 0 .../etc/mew-prev.xpm | 0 .../etc/mew-queue.xpm | 0 .../etc/mew-refile.xpm | 0 .../etc/mew-reply.xpm | 0 .../etc/mew-send.xpm | 0 .../etc/mew-sep.xpm | 0 .../etc/mew-show.xpm | 0 .../etc/mew-write.xpm | 0 .../etc/mew-yank.xpm | 0 .../mew-addrbook.el | 11 +- .../mew-attach.el | 17 +- .../mew-auth.el | 1 + .../mew-autoloads.el | 0 .../mew-blvs.el | 1 + .../mew-bq.el | 1 + .../mew-cache.el | 1 + .../mew-complete.el | 23 +- .../mew-config.el | 1 + .../mew-const.el | 6 +- .../mew-darwin.el | 1 + .../mew-decode.el | 10 +- .../mew-demo.el | 37 +- .../mew-draft.el | 17 +- .../mew-edit.el | 11 +- .../mew-encode.el | 9 +- .../mew-env.el | 1 + .../mew-env0.el | 1 + .../mew-exec.el | 5 +- .../mew-ext.el | 51 +-- .../mew-fib.el | 1 + .../mew-func.el | 55 +-- .../mew-gemacs.el | 68 +-- .../mew-header.el | 26 +- .../mew-highlight.el | 49 +++ .../mew-imap.el | 13 +- .../mew-imap2.el | 5 +- .../mew-key.el | 33 +- .../mew-lang-jp.el | 1 + .../mew-lang-kr.el | 1 + .../mew-lang-latin.el | 1 + .../mew-local.el | 1 + .../mew-mark.el | 21 +- .../mew-message.el | 5 +- .../mew-mime.el | 31 +- .../mew-minibuf.el | 1 + .../mew-mule.el | 1 + .../mew-mule3.el | 9 +- .../mew-net.el | 21 +- .../mew-nntp.el | 1 + .../mew-nntp2.el | 1 + .../mew-oauth2.el | 7 + .../mew-passwd.el | 73 ++-- .../mew-pgp.el | 5 +- .../mew-pick.el | 9 +- .../mew-pkg.el | 6 +- .../mew-pop.el | 9 +- .../mew-refile.el | 23 +- .../mew-scan.el | 3 +- .../mew-search.el | 49 +-- .../mew-smime.el | 1 + .../mew-smtp.el | 406 ++++++++---------- .../mew-sort.el | 1 + .../mew-ssh.el | 1 + .../mew-ssl.el | 7 +- .../mew-summary.el | 1 + .../mew-summary2.el | 1 + .../mew-summary3.el | 1 + .../mew-summary4.el | 24 +- .../mew-syntax.el | 5 +- .../mew-thread.el | 27 +- .../mew-unix.el | 1 + .../mew-vars.el | 36 +- .../mew-vars2.el | 17 +- .../mew-vars3.el | 1 + .../mew-varsx.el | 1 + .../mew-virtual.el | 1 + .../mew-win32.el | 19 +- .../mew.el | 9 +- .../mew.info | 278 ++++++------ .../mew.ja.info | 274 ++++++------ 105 files changed, 1025 insertions(+), 821 deletions(-) rename elpa/{mew-20240911.749 => mew-20251127.544}/dir (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/Mew.img (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/Mew.png (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/Mew.xbm (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/Mew.xpm (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/mew-Audio.xpm (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/mew-Blank.xpm (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/mew-External.xpm (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/mew-Folder.xpm (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/mew-Image.xpm (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/mew-Octet-Stream.xpm (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/mew-Postscript.xpm (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/mew-Rfc822.xpm (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/mew-Text.xpm (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/mew-Unknown.xpm (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/mew-Video.xpm (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/mew-attach.xpm (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/mew-cite.xpm (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/mew-forward.xpm (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/mew-inc.xpm (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/mew-lock.xpm (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/mew-next.xpm (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/mew-pgp-enc.xpm (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/mew-pgp-sigenc.xpm (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/mew-pgp-sign.xpm (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/mew-prev.xpm (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/mew-queue.xpm (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/mew-refile.xpm (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/mew-reply.xpm (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/mew-send.xpm (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/mew-sep.xpm (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/mew-show.xpm (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/mew-write.xpm (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/etc/mew-yank.xpm (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-addrbook.el (98%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-attach.el (98%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-auth.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-autoloads.el (100%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-blvs.el (98%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-bq.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-cache.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-complete.el (97%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-config.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-const.el (98%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-darwin.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-decode.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-demo.el (81%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-draft.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-edit.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-encode.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-env.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-env0.el (94%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-exec.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-ext.el (93%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-fib.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-func.el (98%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-gemacs.el (92%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-header.el (97%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-highlight.el (88%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-imap.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-imap2.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-key.el (97%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-lang-jp.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-lang-kr.el (98%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-lang-latin.el (98%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-local.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-mark.el (98%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-message.el (98%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-mime.el (98%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-minibuf.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-mule.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-mule3.el (98%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-net.el (98%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-nntp.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-nntp2.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-oauth2.el (96%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-passwd.el (84%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-pgp.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-pick.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-pkg.el (53%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-pop.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-refile.el (98%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-scan.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-search.el (96%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-smime.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-smtp.el (77%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-sort.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-ssh.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-ssl.el (98%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-summary.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-summary2.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-summary3.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-summary4.el (98%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-syntax.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-thread.el (98%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-unix.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-vars.el (98%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-vars2.el (98%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-vars3.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-varsx.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-virtual.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew-win32.el (95%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew.el (99%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew.info (98%) rename elpa/{mew-20240911.749 => mew-20251127.544}/mew.ja.info (98%) diff --git a/elpa/mew-20240911.749/dir b/elpa/mew-20251127.544/dir similarity index 100% rename from elpa/mew-20240911.749/dir rename to elpa/mew-20251127.544/dir diff --git a/elpa/mew-20240911.749/etc/Mew.img b/elpa/mew-20251127.544/etc/Mew.img similarity index 100% rename from elpa/mew-20240911.749/etc/Mew.img rename to elpa/mew-20251127.544/etc/Mew.img diff --git a/elpa/mew-20240911.749/etc/Mew.png b/elpa/mew-20251127.544/etc/Mew.png similarity index 100% rename from elpa/mew-20240911.749/etc/Mew.png rename to elpa/mew-20251127.544/etc/Mew.png diff --git a/elpa/mew-20240911.749/etc/Mew.xbm b/elpa/mew-20251127.544/etc/Mew.xbm similarity index 100% rename from elpa/mew-20240911.749/etc/Mew.xbm rename to elpa/mew-20251127.544/etc/Mew.xbm diff --git a/elpa/mew-20240911.749/etc/Mew.xpm b/elpa/mew-20251127.544/etc/Mew.xpm similarity index 100% rename from elpa/mew-20240911.749/etc/Mew.xpm rename to elpa/mew-20251127.544/etc/Mew.xpm diff --git a/elpa/mew-20240911.749/etc/mew-Audio.xpm b/elpa/mew-20251127.544/etc/mew-Audio.xpm similarity index 100% rename from elpa/mew-20240911.749/etc/mew-Audio.xpm rename to elpa/mew-20251127.544/etc/mew-Audio.xpm diff --git a/elpa/mew-20240911.749/etc/mew-Blank.xpm b/elpa/mew-20251127.544/etc/mew-Blank.xpm similarity index 100% rename from elpa/mew-20240911.749/etc/mew-Blank.xpm rename to elpa/mew-20251127.544/etc/mew-Blank.xpm diff --git a/elpa/mew-20240911.749/etc/mew-External.xpm b/elpa/mew-20251127.544/etc/mew-External.xpm similarity index 100% rename from elpa/mew-20240911.749/etc/mew-External.xpm rename to elpa/mew-20251127.544/etc/mew-External.xpm diff --git a/elpa/mew-20240911.749/etc/mew-Folder.xpm b/elpa/mew-20251127.544/etc/mew-Folder.xpm similarity index 100% rename from elpa/mew-20240911.749/etc/mew-Folder.xpm rename to elpa/mew-20251127.544/etc/mew-Folder.xpm diff --git a/elpa/mew-20240911.749/etc/mew-Image.xpm b/elpa/mew-20251127.544/etc/mew-Image.xpm similarity index 100% rename from elpa/mew-20240911.749/etc/mew-Image.xpm rename to elpa/mew-20251127.544/etc/mew-Image.xpm diff --git a/elpa/mew-20240911.749/etc/mew-Octet-Stream.xpm b/elpa/mew-20251127.544/etc/mew-Octet-Stream.xpm similarity index 100% rename from elpa/mew-20240911.749/etc/mew-Octet-Stream.xpm rename to elpa/mew-20251127.544/etc/mew-Octet-Stream.xpm diff --git a/elpa/mew-20240911.749/etc/mew-Postscript.xpm b/elpa/mew-20251127.544/etc/mew-Postscript.xpm similarity index 100% rename from elpa/mew-20240911.749/etc/mew-Postscript.xpm rename to elpa/mew-20251127.544/etc/mew-Postscript.xpm diff --git a/elpa/mew-20240911.749/etc/mew-Rfc822.xpm b/elpa/mew-20251127.544/etc/mew-Rfc822.xpm similarity index 100% rename from elpa/mew-20240911.749/etc/mew-Rfc822.xpm rename to elpa/mew-20251127.544/etc/mew-Rfc822.xpm diff --git a/elpa/mew-20240911.749/etc/mew-Text.xpm b/elpa/mew-20251127.544/etc/mew-Text.xpm similarity index 100% rename from elpa/mew-20240911.749/etc/mew-Text.xpm rename to elpa/mew-20251127.544/etc/mew-Text.xpm diff --git a/elpa/mew-20240911.749/etc/mew-Unknown.xpm b/elpa/mew-20251127.544/etc/mew-Unknown.xpm similarity index 100% rename from elpa/mew-20240911.749/etc/mew-Unknown.xpm rename to elpa/mew-20251127.544/etc/mew-Unknown.xpm diff --git a/elpa/mew-20240911.749/etc/mew-Video.xpm b/elpa/mew-20251127.544/etc/mew-Video.xpm similarity index 100% rename from elpa/mew-20240911.749/etc/mew-Video.xpm rename to elpa/mew-20251127.544/etc/mew-Video.xpm diff --git a/elpa/mew-20240911.749/etc/mew-attach.xpm b/elpa/mew-20251127.544/etc/mew-attach.xpm similarity index 100% rename from elpa/mew-20240911.749/etc/mew-attach.xpm rename to elpa/mew-20251127.544/etc/mew-attach.xpm diff --git a/elpa/mew-20240911.749/etc/mew-cite.xpm b/elpa/mew-20251127.544/etc/mew-cite.xpm similarity index 100% rename from elpa/mew-20240911.749/etc/mew-cite.xpm rename to elpa/mew-20251127.544/etc/mew-cite.xpm diff --git a/elpa/mew-20240911.749/etc/mew-forward.xpm b/elpa/mew-20251127.544/etc/mew-forward.xpm similarity index 100% rename from elpa/mew-20240911.749/etc/mew-forward.xpm rename to elpa/mew-20251127.544/etc/mew-forward.xpm diff --git a/elpa/mew-20240911.749/etc/mew-inc.xpm b/elpa/mew-20251127.544/etc/mew-inc.xpm similarity index 100% rename from elpa/mew-20240911.749/etc/mew-inc.xpm rename to elpa/mew-20251127.544/etc/mew-inc.xpm diff --git a/elpa/mew-20240911.749/etc/mew-lock.xpm b/elpa/mew-20251127.544/etc/mew-lock.xpm similarity index 100% rename from elpa/mew-20240911.749/etc/mew-lock.xpm rename to elpa/mew-20251127.544/etc/mew-lock.xpm diff --git a/elpa/mew-20240911.749/etc/mew-next.xpm b/elpa/mew-20251127.544/etc/mew-next.xpm similarity index 100% rename from elpa/mew-20240911.749/etc/mew-next.xpm rename to elpa/mew-20251127.544/etc/mew-next.xpm diff --git a/elpa/mew-20240911.749/etc/mew-pgp-enc.xpm b/elpa/mew-20251127.544/etc/mew-pgp-enc.xpm similarity index 100% rename from elpa/mew-20240911.749/etc/mew-pgp-enc.xpm rename to elpa/mew-20251127.544/etc/mew-pgp-enc.xpm diff --git a/elpa/mew-20240911.749/etc/mew-pgp-sigenc.xpm b/elpa/mew-20251127.544/etc/mew-pgp-sigenc.xpm similarity index 100% rename from elpa/mew-20240911.749/etc/mew-pgp-sigenc.xpm rename to elpa/mew-20251127.544/etc/mew-pgp-sigenc.xpm diff --git a/elpa/mew-20240911.749/etc/mew-pgp-sign.xpm b/elpa/mew-20251127.544/etc/mew-pgp-sign.xpm similarity index 100% rename from elpa/mew-20240911.749/etc/mew-pgp-sign.xpm rename to elpa/mew-20251127.544/etc/mew-pgp-sign.xpm diff --git a/elpa/mew-20240911.749/etc/mew-prev.xpm b/elpa/mew-20251127.544/etc/mew-prev.xpm similarity index 100% rename from elpa/mew-20240911.749/etc/mew-prev.xpm rename to elpa/mew-20251127.544/etc/mew-prev.xpm diff --git a/elpa/mew-20240911.749/etc/mew-queue.xpm b/elpa/mew-20251127.544/etc/mew-queue.xpm similarity index 100% rename from elpa/mew-20240911.749/etc/mew-queue.xpm rename to elpa/mew-20251127.544/etc/mew-queue.xpm diff --git a/elpa/mew-20240911.749/etc/mew-refile.xpm b/elpa/mew-20251127.544/etc/mew-refile.xpm similarity index 100% rename from elpa/mew-20240911.749/etc/mew-refile.xpm rename to elpa/mew-20251127.544/etc/mew-refile.xpm diff --git a/elpa/mew-20240911.749/etc/mew-reply.xpm b/elpa/mew-20251127.544/etc/mew-reply.xpm similarity index 100% rename from elpa/mew-20240911.749/etc/mew-reply.xpm rename to elpa/mew-20251127.544/etc/mew-reply.xpm diff --git a/elpa/mew-20240911.749/etc/mew-send.xpm b/elpa/mew-20251127.544/etc/mew-send.xpm similarity index 100% rename from elpa/mew-20240911.749/etc/mew-send.xpm rename to elpa/mew-20251127.544/etc/mew-send.xpm diff --git a/elpa/mew-20240911.749/etc/mew-sep.xpm b/elpa/mew-20251127.544/etc/mew-sep.xpm similarity index 100% rename from elpa/mew-20240911.749/etc/mew-sep.xpm rename to elpa/mew-20251127.544/etc/mew-sep.xpm diff --git a/elpa/mew-20240911.749/etc/mew-show.xpm b/elpa/mew-20251127.544/etc/mew-show.xpm similarity index 100% rename from elpa/mew-20240911.749/etc/mew-show.xpm rename to elpa/mew-20251127.544/etc/mew-show.xpm diff --git a/elpa/mew-20240911.749/etc/mew-write.xpm b/elpa/mew-20251127.544/etc/mew-write.xpm similarity index 100% rename from elpa/mew-20240911.749/etc/mew-write.xpm rename to elpa/mew-20251127.544/etc/mew-write.xpm diff --git a/elpa/mew-20240911.749/etc/mew-yank.xpm b/elpa/mew-20251127.544/etc/mew-yank.xpm similarity index 100% rename from elpa/mew-20240911.749/etc/mew-yank.xpm rename to elpa/mew-20251127.544/etc/mew-yank.xpm diff --git a/elpa/mew-20240911.749/mew-addrbook.el b/elpa/mew-20251127.544/mew-addrbook.el similarity index 98% rename from elpa/mew-20240911.749/mew-addrbook.el rename to elpa/mew-20251127.544/mew-addrbook.el index 0565d2a3..054460f0 100644 --- a/elpa/mew-20240911.749/mew-addrbook.el +++ b/elpa/mew-20251127.544/mew-addrbook.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;; mew-addrbook.el --- Aliases and personal information ;; Author: Mew developing team @@ -147,9 +148,9 @@ (defun mew-alias-expand-addrs (key alist count) (let ((keys (delete "" (mapcar 'mew-chop (mew-split key ?,)))) ret) - (dolist (key keys) - (setq ret (nconc ret (mew-alias-expand key alist count)))) - ret)) + (dolist (key keys) + (setq ret (nconc ret (mew-alias-expand key alist count)))) + ret)) (defun mew-alias-expand (key alist count) "Expand KEY to a list of addresses according to ALIST. @@ -299,11 +300,11 @@ returned." (while (re-search-forward "[\"']" nil t) (setq qchar (char-before (point))) ;; (point) is for backward compatibility - (backward-delete-char 1) ;; delete quote + (delete-char -1) ;; delete quote (setq beg (point)) (if (not (re-search-forward (char-to-string qchar) nil t)) (throw 'quote nil) ;; error - (backward-delete-char 1) ;; delete quote + (delete-char -1) ;; delete quote (save-restriction (narrow-to-region beg (point)) (goto-char (point-min)) diff --git a/elpa/mew-20240911.749/mew-attach.el b/elpa/mew-20251127.544/mew-attach.el similarity index 98% rename from elpa/mew-20240911.749/mew-attach.el rename to elpa/mew-20251127.544/mew-attach.el index f0493e95..4cc62d7c 100644 --- a/elpa/mew-20240911.749/mew-attach.el +++ b/elpa/mew-20251127.544/mew-attach.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-attach.el --- attachments for Mew Draft mode ;; Author: Mew developing team @@ -583,7 +584,7 @@ on '.' in attachments." (mew-encode-syntax-print mew-encode-syntax)))) (defun mew-attach-base64 () - "Put the 'B' mark to encode with Base64 in attachments." + "Put the `B' mark to encode with Base64 in attachments." (interactive) (if (not (mew-attach-not-line0-1-dot)) (message "Cannot encode with base64 here") @@ -597,7 +598,7 @@ on '.' in attachments." (mew-encode-syntax-print mew-encode-syntax))))) (defun mew-attach-quoted-printable () - "Put the 'Q' mark to encode with Quoted-Printable in attachments" + "Put the `Q' mark to encode with Quoted-Printable in attachments" (interactive) (if (not (mew-attach-not-line0-1-dot)) (message "Cannot encode with quoted-printable here") @@ -611,7 +612,7 @@ on '.' in attachments." (mew-encode-syntax-print mew-encode-syntax))))) (defun mew-attach-gzip64 () - "Put the 'G' mark to encode with Gzip64 in attachments. This is + "Put the `G' mark to encode with Gzip64 in attachments. This is applicable only to Text/Plain and Application/Postscript since compression is not effective other objects. For example, JPEG is already compressed." (interactive) @@ -632,7 +633,7 @@ is not effective other objects. For example, JPEG is already compressed." (mew-encode-syntax-print mew-encode-syntax))))) (defun mew-attach-zip () - "Put the 'Z' mark and encrypt it with \"zip\" in attachments." + "Put the `Z' mark and encrypt it with \"zip\" in attachments." (interactive) (if (not (mew-attach-not-line02-1-dot)) (message "Cannot encrypt with zip here") @@ -671,7 +672,7 @@ is not effective other objects. For example, JPEG is already compressed." (mew-encode-syntax-print mew-encode-syntax)))))))))) (defun mew-attach-pgp-sign () - "Put the 'PS' mark to sign with PGP in attachments." + "Put the `PS' mark to sign with PGP in attachments." (interactive) (cond ((not (mew-attach-not-line0-1-dot)) @@ -694,7 +695,7 @@ is not effective other objects. For example, JPEG is already compressed." (mew-encode-syntax-print mew-encode-syntax))))))) (defun mew-attach-pgp-enc () - "Put the 'PE' mark to encrypt with PGP in attachment. + "Put the `PE' mark to encrypt with PGP in attachment. Input decrypters' addresses." (interactive) (cond @@ -725,7 +726,7 @@ Input decrypters' addresses." (mew-encode-syntax-print mew-encode-syntax))))))) (defun mew-attach-smime-sign () - "Put the 'PS' mark to sign with S/MIME in attachments." + "Put the `PS' mark to sign with S/MIME in attachments." (interactive) (cond ((not (mew-attach-not-line0-1-dot)) @@ -748,7 +749,7 @@ Input decrypters' addresses." (mew-encode-syntax-print mew-encode-syntax))))))) (defun mew-attach-smime-enc () - "Put the 'SE' mark to encrypt with S/MIME in attachment. + "Put the `SE' mark to encrypt with S/MIME in attachment. Input decrypters' addresses." (interactive) (cond diff --git a/elpa/mew-20240911.749/mew-auth.el b/elpa/mew-20251127.544/mew-auth.el similarity index 99% rename from elpa/mew-20240911.749/mew-auth.el rename to elpa/mew-20251127.544/mew-auth.el index 943ed92a..dc7b8050 100644 --- a/elpa/mew-20240911.749/mew-auth.el +++ b/elpa/mew-20251127.544/mew-auth.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-auth.el ;; Author: Mew developing team diff --git a/elpa/mew-20240911.749/mew-autoloads.el b/elpa/mew-20251127.544/mew-autoloads.el similarity index 100% rename from elpa/mew-20240911.749/mew-autoloads.el rename to elpa/mew-20251127.544/mew-autoloads.el diff --git a/elpa/mew-20240911.749/mew-blvs.el b/elpa/mew-20251127.544/mew-blvs.el similarity index 98% rename from elpa/mew-20240911.749/mew-blvs.el rename to elpa/mew-20251127.544/mew-blvs.el index c8bb4b6d..f78165c2 100644 --- a/elpa/mew-20240911.749/mew-blvs.el +++ b/elpa/mew-20251127.544/mew-blvs.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-blvs.el ;; Author: Mew developing team diff --git a/elpa/mew-20240911.749/mew-bq.el b/elpa/mew-20251127.544/mew-bq.el similarity index 99% rename from elpa/mew-20240911.749/mew-bq.el rename to elpa/mew-20251127.544/mew-bq.el index 19cb7720..fa2dd4d9 100644 --- a/elpa/mew-20240911.749/mew-bq.el +++ b/elpa/mew-20251127.544/mew-bq.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-bq.el --- Base64 and Quoted-Printable encoding for Mew ;; Author: Mew developing team diff --git a/elpa/mew-20240911.749/mew-cache.el b/elpa/mew-20251127.544/mew-cache.el similarity index 99% rename from elpa/mew-20240911.749/mew-cache.el rename to elpa/mew-20251127.544/mew-cache.el index 68548124..791bd7a9 100644 --- a/elpa/mew-20240911.749/mew-cache.el +++ b/elpa/mew-20251127.544/mew-cache.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-cache.el --- Cache management for Mew ;; Author: Mew developing team diff --git a/elpa/mew-20240911.749/mew-complete.el b/elpa/mew-20251127.544/mew-complete.el similarity index 97% rename from elpa/mew-20240911.749/mew-complete.el rename to elpa/mew-20251127.544/mew-complete.el index f5d4f22c..7f24b8c2 100644 --- a/elpa/mew-20240911.749/mew-complete.el +++ b/elpa/mew-20251127.544/mew-complete.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-complete.el --- Completion magic for Mew ;; Author: Mew developing team @@ -218,11 +219,11 @@ is inserted before the cursor, the short name is expanded to its address." (interactive) (mew-complete-proto-folder word (if (null word) - (mew-complete-window-show (list "+")) - (if (and (mew-folder-absolutep word) - (not (mew-draft-or-header-p))) - (mew-complete word (mew-complete-directory-alist word) "directory" nil) - (mew-complete word (mew-local-folder-alist) "folder" nil))))) + (mew-complete-window-show (list "+")) + (if (and (mew-folder-absolutep word) + (not (mew-draft-or-header-p))) + (mew-complete word (mew-complete-directory-alist word) "directory" nil) + (mew-complete word (mew-local-folder-alist) "folder" nil))))) ;; case is specified by mew-inherit-case. (defun mew-complete-imap-folder () @@ -695,12 +696,12 @@ the name exists." (forward-char -1)) (if (and here (not (re-search-forward (regexp-quote here) end t))) nil ;; "here" does not exist. - (setq start (point)) - (if (= start end) - (if here t nil) ;; just after "here", just after separator - (prog1 - (mew-buffer-substring start end) - (delete-region start end))))))) + (setq start (point)) + (if (= start end) + (if here t nil) ;; just after "here", just after separator + (prog1 + (mew-buffer-substring start end) + (delete-region start end))))))) (defun mew-delete-file-name () (if (search-backward mew-path-separator nil t) diff --git a/elpa/mew-20240911.749/mew-config.el b/elpa/mew-20251127.544/mew-config.el similarity index 99% rename from elpa/mew-20240911.749/mew-config.el rename to elpa/mew-20251127.544/mew-config.el index 36987e71..b35ef4a3 100644 --- a/elpa/mew-20240911.749/mew-config.el +++ b/elpa/mew-20251127.544/mew-config.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-config.el ;; Author: Mew developing team diff --git a/elpa/mew-20240911.749/mew-const.el b/elpa/mew-20251127.544/mew-const.el similarity index 98% rename from elpa/mew-20240911.749/mew-const.el rename to elpa/mew-20251127.544/mew-const.el index 77fdfe7f..632c5335 100644 --- a/elpa/mew-20240911.749/mew-const.el +++ b/elpa/mew-20251127.544/mew-const.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-const.el ;; Author: Mew developing team @@ -72,6 +73,7 @@ (defconst mew-x-mailer: "X-Mailer:") (defconst mew-x-face: "X-Face:") (defconst mew-face: "Face:") +(defconst mew-bimi-indicator: "BIMI-Indicator:") (defconst mew-x-mew: "X-Mew:") (defconst mew-x-mew-uidl: "X-Mew-Uidl:") (defconst mew-x-mew-ref: "X-Mew-Ref:") @@ -219,7 +221,7 @@ ;; fld msg (defun mew-regex-sumsyn-msg (msg) - (format "\r \\([^ \n]*\\) \\(%s\\) " msg)) + (format "\r \\([^ \n]*\\) \\(%s\\) " msg)) (defun mew-summary-search-msg (msg) (let ((regex (mew-regex-sumsyn-msg msg))) @@ -291,7 +293,7 @@ (defconst mew-folder-virtual "*") (defconst mew-folder-prefixes `(,mew-folder-local ,mew-folder-pop ,mew-folder-imap - ,mew-folder-nntp ,mew-folder-virtual)) + ,mew-folder-nntp ,mew-folder-virtual)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; diff --git a/elpa/mew-20240911.749/mew-darwin.el b/elpa/mew-20251127.544/mew-darwin.el similarity index 99% rename from elpa/mew-20240911.749/mew-darwin.el rename to elpa/mew-20251127.544/mew-darwin.el index 2e92eb54..4523c883 100644 --- a/elpa/mew-20240911.749/mew-darwin.el +++ b/elpa/mew-20251127.544/mew-darwin.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-darwin.el --- Settings for Mew on Darwin ;; Author: Mew developing team diff --git a/elpa/mew-20240911.749/mew-decode.el b/elpa/mew-20251127.544/mew-decode.el similarity index 99% rename from elpa/mew-20240911.749/mew-decode.el rename to elpa/mew-20251127.544/mew-decode.el index 882d28a1..64a88de1 100644 --- a/elpa/mew-20240911.749/mew-decode.el +++ b/elpa/mew-20251127.544/mew-decode.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-decode.el --- MIME syntax decoder for Mew ;; Author: Mew developing team @@ -200,10 +201,11 @@ This commands toggles visibility of these lines." (mew-decode-syntax-insert-privacy) (mew-decode-syntax-insert-warning) (save-excursion (mew-highlight-x-face (point-min) (point-max))) + (save-excursion (mew-highlight-bimi (point-min) (point-max))) (setq vispos (if (get-text-property (point-min) 'mew-visible) - (point-min) - (or (next-single-property-change (point-min) 'mew-visible) - (point-max))))))) + (point-min) + (or (next-single-property-change (point-min) 'mew-visible) + (point-max))))))) (mew-header-veil) (mew-header-goto-end) (if (eobp) @@ -686,7 +688,7 @@ Return a part syntax after moving the beginning of the content body." ;; or single in multipart/alternative ;; or single in multipart/security (setq cooked-textp (and (string= mew-ct-txt (mew-syntax-get-value (mew-syntax-get-ct syntax) 'cap)) - (not (mew-syntax-from-alternative syntax)))) + (not (mew-syntax-from-alternative syntax)))) (setq hend (mew-syntax-get-end syntax)) (unless hend (mew-syntax-set-end syntax (point-max))) diff --git a/elpa/mew-20240911.749/mew-demo.el b/elpa/mew-20251127.544/mew-demo.el similarity index 81% rename from elpa/mew-20240911.749/mew-demo.el rename to elpa/mew-20251127.544/mew-demo.el index 273d407d..f5a7c5c6 100644 --- a/elpa/mew-20240911.749/mew-demo.el +++ b/elpa/mew-20251127.544/mew-demo.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-demo.el --- Startup demo for Mew ;; Author: Mew developing team @@ -12,7 +13,7 @@ (defconst mew-icon-mew "Mew.png") (defconst mew-hello-message -" + " Welcome to Mew world. @@ -23,31 +24,31 @@ Mew -- Messaging in the Emacs World Copyright (C) 1994-2023 Mew developing team " -) + ) (defconst mew-demo-string -'( - "/\\\\ - \\\\/" + '( + "/\\\\ - \\\\/" - "-\\\\ - \\\\/" "\\\\\\ - \\\\/" "|\\\\ - \\\\/" "/\\\\ - \\\\/" - "-\\\\ - \\\\/" "\\\\\\ - \\\\/" "|\\\\ - \\\\/" "/\\\\ - \\\\/" + "-\\\\ - \\\\/" "\\\\\\ - \\\\/" "|\\\\ - \\\\/" "/\\\\ - \\\\/" + "-\\\\ - \\\\/" "\\\\\\ - \\\\/" "|\\\\ - \\\\/" "/\\\\ - \\\\/" - "/|\\ - \\\\/" "//\\ - \\\\/" "/-\\ - \\\\/" "/\\\\ - \\\\/" - "/|\\ - \\\\/" "//\\ - \\\\/" "/-\\ - \\\\/" "/\\\\ - \\\\/" + "/|\\ - \\\\/" "//\\ - \\\\/" "/-\\ - \\\\/" "/\\\\ - \\\\/" + "/|\\ - \\\\/" "//\\ - \\\\/" "/-\\ - \\\\/" "/\\\\ - \\\\/" - "/\\| - \\\\/" "/\\/ - \\\\/" "/\\- - \\\\/" "/\\\\ - \\\\/" - "/\\| - \\\\/" "/\\/ - \\\\/" "/\\- - \\\\/" "/\\\\ - \\\\/" + "/\\| - \\\\/" "/\\/ - \\\\/" "/\\- - \\\\/" "/\\\\ - \\\\/" + "/\\| - \\\\/" "/\\/ - \\\\/" "/\\- - \\\\/" "/\\\\ - \\\\/" - "/\\\\ - |\\/" "/\\\\ - /\\/" "/\\\\ - -\\/" "/\\\\ - \\\\/" - "/\\\\ - |\\/" "/\\\\ - /\\/" "/\\\\ - -\\/" "/\\\\ - \\\\/" + "/\\\\ - |\\/" "/\\\\ - /\\/" "/\\\\ - -\\/" "/\\\\ - \\\\/" + "/\\\\ - |\\/" "/\\\\ - /\\/" "/\\\\ - -\\/" "/\\\\ - \\\\/" - "/\\\\ - \\|/" "/\\\\ - \\//" "/\\\\ - \\-/" "/\\\\ - \\\\/" - "/\\\\ - \\|/" "/\\\\ - \\//" "/\\\\ - \\-/" "/\\\\ - \\\\/" + "/\\\\ - \\|/" "/\\\\ - \\//" "/\\\\ - \\-/" "/\\\\ - \\\\/" + "/\\\\ - \\|/" "/\\\\ - \\//" "/\\\\ - \\-/" "/\\\\ - \\\\/" - "/\\\\ - \\\\-" "/\\\\ - \\\\\\" "/\\\\ - \\\\|" "/\\\\ - \\\\/" - "/\\\\ - \\\\-" "/\\\\ - \\\\\\" "/\\\\ - \\\\|" "/\\\\ - \\\\/" - ) -) + "/\\\\ - \\\\-" "/\\\\ - \\\\\\" "/\\\\ - \\\\|" "/\\\\ - \\\\/" + "/\\\\ - \\\\-" "/\\\\ - \\\\\\" "/\\\\ - \\\\|" "/\\\\ - \\\\/" + ) + ) (defun mew-hello () (let ((time mew-demo-sit-for) diff --git a/elpa/mew-20240911.749/mew-draft.el b/elpa/mew-20251127.544/mew-draft.el similarity index 99% rename from elpa/mew-20240911.749/mew-draft.el rename to elpa/mew-20251127.544/mew-draft.el index f4dba45f..be0967a5 100644 --- a/elpa/mew-20240911.749/mew-draft.el +++ b/elpa/mew-20251127.544/mew-draft.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-draft.el --- Draft mode for Mew ;; Author: Mew developing team @@ -224,10 +225,10 @@ the Body: field." ;;; (defun mew-draft-header (&optional subject nl to cc newsgroups in-reply-to references other-headers fromme) -;; to -- string or list -;; cc -- string or list -;; nl -- one empty line under "----", which is necessary if -;; attachment is prepared + ;; to -- string or list + ;; cc -- string or list + ;; nl -- one empty line under "----", which is necessary if + ;; attachment is prepared (let ((del (unless fromme mew-regex-my-address-list)) ;; deleting list case body) (goto-char (point-min)) @@ -322,8 +323,8 @@ citation prefix and label. 2. If called with '\\[universal-argument]', the header is also copied if exists. 3. If an Emacs mark exists, the target is the region between the mark and the cursor." -;; MUST take care of C-x C-x -;; MUST be able to cancel by C-x u + ;; MUST take care of C-x C-x + ;; MUST be able to cancel by C-x u (interactive "P") (if (and (not force) (or (mew-in-header-p) (mew-in-attach-p))) (message "Cannot cite a message here") @@ -373,8 +374,8 @@ citation prefix and label. 2. If called with '\\[universal-argument]', the header is also copied if exists. 3. If an Emacs mark exists, the target is the region between the mark and the cursor." -;; MUST take care of C-x C-x -;; MUST be able to cancel by C-x u + ;; MUST take care of C-x C-x + ;; MUST be able to cancel by C-x u (interactive "P") (if (and (not force) (or (mew-in-header-p) (mew-in-attach-p))) (message "Cannot cite a message here") diff --git a/elpa/mew-20240911.749/mew-edit.el b/elpa/mew-20251127.544/mew-edit.el similarity index 99% rename from elpa/mew-20240911.749/mew-edit.el rename to elpa/mew-20251127.544/mew-edit.el index 27a9465c..4b871101 100644 --- a/elpa/mew-20240911.749/mew-edit.el +++ b/elpa/mew-20251127.544/mew-edit.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-edit.el ;; Author: Mew developing team @@ -456,11 +457,11 @@ If executed with '\\[universal-argument]', coding-system is asked." (defun mew-input-burst-folder () (let (default) - (if (and mew-use-burst-folder-history mew-burst-last-folder) - (setq default mew-burst-last-folder) - (setq default (mew-inbox-folder))) ;; local folder - (setq mew-burst-last-folder (mew-input-local-folder default)) - mew-burst-last-folder)) + (if (and mew-use-burst-folder-history mew-burst-last-folder) + (setq default mew-burst-last-folder) + (setq default (mew-inbox-folder))) ;; local folder + (setq mew-burst-last-folder (mew-input-local-folder default)) + mew-burst-last-folder)) (defun mew-summary-burst-part (part folder newmsg &optional num) (let (n len nums entry file) diff --git a/elpa/mew-20240911.749/mew-encode.el b/elpa/mew-20251127.544/mew-encode.el similarity index 99% rename from elpa/mew-20240911.749/mew-encode.el rename to elpa/mew-20251127.544/mew-encode.el index 64b4399d..9b50ae80 100644 --- a/elpa/mew-20240911.749/mew-encode.el +++ b/elpa/mew-20251127.544/mew-encode.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-encode.el --- MIME syntax encoder for Mew ;; Author: Mew developing team @@ -214,7 +215,7 @@ (setq insl nil) (forward-line)))) ret))) - + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; Dcc:, Bcc: @@ -997,9 +998,9 @@ (mew-encode-smime proto cte decrypters))))))) (defun mew-security-multipart-boundary (depth) - (if depth - (mew-boundary-get (format "Security_Multipart%s" (number-to-string depth))) - (mew-boundary-get "Security_Multipart"))) + (if depth + (mew-boundary-get (format "Security_Multipart%s" (number-to-string depth))) + (mew-boundary-get "Security_Multipart"))) (defun mew-save-transfer-form (beg end retain &optional cte) ;; called in the narrowed region diff --git a/elpa/mew-20240911.749/mew-env.el b/elpa/mew-20251127.544/mew-env.el similarity index 99% rename from elpa/mew-20240911.749/mew-env.el rename to elpa/mew-20251127.544/mew-env.el index 3870fbc2..625fdb7e 100644 --- a/elpa/mew-20240911.749/mew-env.el +++ b/elpa/mew-20251127.544/mew-env.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-env.el --- Environment setup for Mew ;; Author: Mew developing team diff --git a/elpa/mew-20240911.749/mew-env0.el b/elpa/mew-20251127.544/mew-env0.el similarity index 94% rename from elpa/mew-20240911.749/mew-env0.el rename to elpa/mew-20251127.544/mew-env0.el index fb2526a0..bf776620 100644 --- a/elpa/mew-20240911.749/mew-env0.el +++ b/elpa/mew-20251127.544/mew-env0.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- (cond ((>= emacs-major-version 24) ;; this must be macro. If implemented as a function, its behavior diff --git a/elpa/mew-20240911.749/mew-exec.el b/elpa/mew-20251127.544/mew-exec.el similarity index 99% rename from elpa/mew-20240911.749/mew-exec.el rename to elpa/mew-20251127.544/mew-exec.el index ab26d469..88578def 100644 --- a/elpa/mew-20240911.749/mew-exec.el +++ b/elpa/mew-20251127.544/mew-exec.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-exec.el ;; Author: Mew developing team @@ -219,14 +220,14 @@ all marked messages before the current message." (mew-summary-exec-region beg end))))) (defun mew-summary-exec-delete () - "Process messages marked with 'D'." + "Process messages marked with `D'." (interactive) (let* ((ent (assoc mew-mark-delete mew-mark-spec)) (mew-mark-spec (list ent))) (mew-summary-exec-region (point-min) (point-max)))) (defun mew-summary-exec-unlink () - "Process messages marked with 'X'." + "Process messages marked with `X'." (interactive) (let* ((ent (assoc mew-mark-unlink mew-mark-spec)) (mew-mark-spec (list ent))) diff --git a/elpa/mew-20240911.749/mew-ext.el b/elpa/mew-20251127.544/mew-ext.el similarity index 93% rename from elpa/mew-20240911.749/mew-ext.el rename to elpa/mew-20251127.544/mew-ext.el index 9738c80b..5ad7fbf8 100644 --- a/elpa/mew-20240911.749/mew-ext.el +++ b/elpa/mew-20251127.544/mew-ext.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-ext.el --- Message/External-Body support for Mew ;; Author: Mew developing team @@ -8,8 +9,8 @@ (require 'mew) (eval-when-compile (cond -;; ((mew-which-el "efs") -;; (require 'efs)) + ;; ((mew-which-el "efs") + ;; (require 'efs)) ((mew-which-el "ange-ftp") (require 'ange-ftp)))) @@ -25,7 +26,7 @@ (defvar mew-ext-encode-switch '(("ftp" . mew-ext-encode-ftp) -;; ("tftp" . mew-ext-encode-tftp) + ;; ("tftp" . mew-ext-encode-tftp) ("anon-ftp" . mew-ext-encode-anon-ftp) ("local-file" . mew-ext-encode-local-file) ("mail-server" . mew-ext-encode-mail-server) @@ -61,28 +62,28 @@ ;;; (cond -;; ((mew-which-el "efs") -;; (defun mew-ext-file-name-completion (file path) -;; (require 'efs) -;; (let ((efs-tmp-name-template mew-temp-file)) -;; (efs-file-name-completion file path))) -;; (defun mew-ext-file-name-all-completions (file path) -;; (require 'efs) -;; (let ((efs-tmp-name-template mew-temp-file)) -;; (efs-file-name-all-completions file path))) -;; (defun mew-ext-expand-dir (host user dir) -;; (require 'efs) -;; (let ((efs-tmp-name-template mew-temp-file) exp) -;; (setq exp (efs-expand-file-name (format "/%s@%s:%s" user host dir))) -;; (if (string-match ".*:\\(.*\\)$" exp) -;; (match-string 1 exp)))) -;; (defun mew-ext-copy-file-internal (remote local passwd) -;; (require 'efs) -;; (let ((efs-tmp-name-template mew-temp-file) -;; (efs-generate-anonymous-password passwd) -;; (parsed (efs-ftp-path remote))) -;; (efs-copy-file-internal remote parsed local nil -;; nil nil nil nil t 'image)))) + ;; ((mew-which-el "efs") + ;; (defun mew-ext-file-name-completion (file path) + ;; (require 'efs) + ;; (let ((efs-tmp-name-template mew-temp-file)) + ;; (efs-file-name-completion file path))) + ;; (defun mew-ext-file-name-all-completions (file path) + ;; (require 'efs) + ;; (let ((efs-tmp-name-template mew-temp-file)) + ;; (efs-file-name-all-completions file path))) + ;; (defun mew-ext-expand-dir (host user dir) + ;; (require 'efs) + ;; (let ((efs-tmp-name-template mew-temp-file) exp) + ;; (setq exp (efs-expand-file-name (format "/%s@%s:%s" user host dir))) + ;; (if (string-match ".*:\\(.*\\)$" exp) + ;; (match-string 1 exp)))) + ;; (defun mew-ext-copy-file-internal (remote local passwd) + ;; (require 'efs) + ;; (let ((efs-tmp-name-template mew-temp-file) + ;; (efs-generate-anonymous-password passwd) + ;; (parsed (efs-ftp-path remote))) + ;; (efs-copy-file-internal remote parsed local nil + ;; nil nil nil nil t 'image)))) ((mew-which-el "ange-ftp") (defun mew-ext-file-name-completion (file path) (require 'ange-ftp) diff --git a/elpa/mew-20240911.749/mew-fib.el b/elpa/mew-20251127.544/mew-fib.el similarity index 99% rename from elpa/mew-20240911.749/mew-fib.el rename to elpa/mew-20251127.544/mew-fib.el index aa72b69a..dc8b3286 100644 --- a/elpa/mew-20240911.749/mew-fib.el +++ b/elpa/mew-20251127.544/mew-fib.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-fib.el --- Filling blanks for Mew ;; Author: Mew developing team diff --git a/elpa/mew-20240911.749/mew-func.el b/elpa/mew-20251127.544/mew-func.el similarity index 98% rename from elpa/mew-20240911.749/mew-func.el rename to elpa/mew-20251127.544/mew-func.el index e8ab2311..be830678 100644 --- a/elpa/mew-20240911.749/mew-func.el +++ b/elpa/mew-20251127.544/mew-func.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-func.el --- Basic functions for Mew ;; Author: Mew developing team @@ -238,13 +239,13 @@ in the context of FUNC." (setq next (car LIST)) (if (equal frst MEM) (if next next frst) - (catch 'loop - (while LIST ;; cannot use dolist - (setq crnt next) - (setq LIST (cdr LIST)) - (setq next (car LIST)) - (if (equal crnt MEM) - (throw 'loop (if next next frst)))))))) + (catch 'loop + (while LIST ;; cannot use dolist + (setq crnt next) + (setq LIST (cdr LIST)) + (setq next (car LIST)) + (if (equal crnt MEM) + (throw 'loop (if next next frst)))))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; @@ -295,12 +296,15 @@ in the context of FUNC." (defun mew-make-string (len) (make-string len ?a)) -(defun mew-replace-character (string from to) - "Replace characters equal to FROM to TO in STRING." - (dotimes (cnt (length string)) - (if (char-equal (aref string cnt) from) - (aset string cnt to))) - string) +(if (fboundp 'subst-char-in-string) + (defun mew-replace-character (string from to) + (subst-char-in-string from to string)) + (defun mew-replace-character (string from to) + "Replace characters equal to FROM to TO in STRING." + (dotimes (cnt (length string)) + (if (char-equal (aref string cnt) from) + (aset string cnt to))) + string)) (defun mew-replace-white-space (string) "Replace white characters to a space." @@ -385,15 +389,18 @@ Words are separated by '/' and '-'." (setq ret (cons (substring str start) ret))) (nreverse ret))) -(defun mew-remove-single-quote (str) - (let* ((len (length str)) - (ret (mew-make-string len)) - (j 0)) - (dotimes (i len) - (unless (char-equal (aref str i) ?') - (aset ret j (aref str i)) - (setq j (1+ j)))) - (substring ret 0 j))) +(if (>= emacs-major-version 31) + (defun mew-remove-single-quote (str) + (string-replace "'" "" str)) + (defun mew-remove-single-quote (str) + (let* ((len (length str)) + (ret (mew-make-string len)) + (j 0)) + (dotimes (i len) + (unless (char-equal (aref str i) ?') + (aset ret j (aref str i)) + (setq j (1+ j)))) + (substring ret 0 j)))) (defun mew-split-quoted (str sepchar &optional qopen qclose no-single) "Return a list of strings splitting STR with SEPCHAR. @@ -448,8 +455,8 @@ also ignored." (defun mew-quote-string (str qchar targets) "If characters in STR is a member of TARGETS, QCHAR is prepended to them." (let* ((len (length str)) - (ret (mew-make-string (* len 2))) - (j 0) c) + (ret (mew-make-string (* len 2))) + (j 0) c) (dotimes (i len) (setq c (aref str i)) (when (member c targets) diff --git a/elpa/mew-20240911.749/mew-gemacs.el b/elpa/mew-20251127.544/mew-gemacs.el similarity index 92% rename from elpa/mew-20240911.749/mew-gemacs.el rename to elpa/mew-20251127.544/mew-gemacs.el index 62c0b58c..1337e7ab 100644 --- a/elpa/mew-20240911.749/mew-gemacs.el +++ b/elpa/mew-20251127.544/mew-gemacs.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-gemacs.el --- Environment of Graphical Emacs for Mew ;; Author: Mew developing team @@ -19,40 +20,40 @@ ;;; (easy-menu-define - mew-summary-mode-menu - mew-summary-mode-map - "Menu used in Summary mode." - mew-summary-mode-menu-spec) + mew-summary-mode-menu + mew-summary-mode-map + "Menu used in Summary mode." + mew-summary-mode-menu-spec) (easy-menu-define - mew-message-mode-menu - mew-message-mode-map - "Menu used in Message mode." - mew-message-mode-menu-spec) + mew-message-mode-menu + mew-message-mode-map + "Menu used in Message mode." + mew-message-mode-menu-spec) (easy-menu-define - mew-draft-mode-menu - mew-draft-mode-map - "Menu used in Draft mode." - mew-draft-mode-menu-spec) + mew-draft-mode-menu + mew-draft-mode-map + "Menu used in Draft mode." + mew-draft-mode-menu-spec) (easy-menu-define - mew-header-mode-menu - mew-header-mode-map - "Menu used in Header mode." - mew-header-mode-menu-spec) + mew-header-mode-menu + mew-header-mode-map + "Menu used in Header mode." + mew-header-mode-menu-spec) (easy-menu-define - mew-draft-header-menu - mew-draft-header-map - "Menu used in Draft mode." - mew-draft-mode-menu-spec) + mew-draft-header-menu + mew-draft-header-map + "Menu used in Draft mode." + mew-draft-mode-menu-spec) (easy-menu-define - mew-draft-attach-menu - mew-draft-attach-map - "Menu used in Draft mode." - mew-draft-mode-menu-spec) + mew-draft-attach-menu + mew-draft-attach-map + "Menu used in Draft mode." + mew-draft-mode-menu-spec) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; @@ -182,9 +183,9 @@ with fitting to frame size" (setq size (+ size (* (char-after) (expt ?\x100 n)))) (forward-char)) (while (< 0 len) - (setq len (- len 1)) - (setq size (+ size (* (char-after) (expt ?\x100 len)))) - (forward-char))) + (setq len (- len 1)) + (setq size (+ size (* (char-after) (expt ?\x100 len)))) + (forward-char))) size)) (defun mew-jpeg-size () @@ -405,6 +406,19 @@ with fitting to frame size" (goto-char (match-end 1)) (insert-image xface))))) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; +;;; BIMI +;;; + +(defun mew-bimi-display (bimi) + (save-excursion + (goto-char (point-min)) + (let ((regex2 (concat "^\\(" mew-from: "\\).*"))) + (when (re-search-forward regex2 nil t) + (goto-char (match-end 1)) + (insert-image bimi))))) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; SSL/SSH/TLS notification diff --git a/elpa/mew-20240911.749/mew-header.el b/elpa/mew-20251127.544/mew-header.el similarity index 97% rename from elpa/mew-20240911.749/mew-header.el rename to elpa/mew-20251127.544/mew-header.el index b59dcfcf..e985c75a 100644 --- a/elpa/mew-20240911.749/mew-header.el +++ b/elpa/mew-20251127.544/mew-header.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;; mew-header.el --- Mail header stuff for Mew ;; Author: Mew developing team @@ -275,21 +276,24 @@ (defun mew-addrstr-parse-syntax-list1 (str sep addrp depth allow-spc) (let* ((i 0) (len (length str)) - (par-cnt 0) (tmp-cnt 0) (sep-cnt 0) - ;; Emacs 23 has non-safe aset. - (tmp (mew-set-string-multibyte (mew-make-string len))) - c ret prevc + (par-cnt 0) (sep-cnt 0) + tmp tmp-last c ret prevc (do-clear (lambda () - (setq tmp-cnt 0) + (setq tmp nil) + (setq tmp-last nil) (mew-addrstr-parse-syntax-list-check-depth depth))) (do-cons-ret (lambda () - (setq ret (cons (substring tmp 0 tmp-cnt) ret)))) + (setq ret (cons (apply 'string tmp) ret)))) (do-copy (lambda () - (aset tmp tmp-cnt c) - (setq tmp-cnt (1+ tmp-cnt)))) + (cond + ((null tmp) + (setq tmp (list c)) + (setq tmp-last tmp)) + (t + (setq tmp-last (setcdr tmp-last (list c))))))) (in-fold-quote (lambda () (setq i (1+ i)) @@ -362,7 +366,7 @@ (lambda () ;; broken quoted string cannot be rescued because ;; the separator cannot be distinguished - (if (> tmp-cnt 0) (funcall do-cons-ret)) + (if tmp (funcall do-cons-ret)) (funcall do-clear))) (do-rescue (lambda (var) @@ -393,8 +397,8 @@ (cond ((> par-cnt 0) (funcall do-rescue str)) - ((> tmp-cnt 0) - (funcall do-rescue tmp)))) + (tmp + (funcall do-rescue (apply 'string tmp))))) (setq ret (delete nil ret)) (when allow-spc (setq ret (mapcar (lambda (str) diff --git a/elpa/mew-20240911.749/mew-highlight.el b/elpa/mew-20251127.544/mew-highlight.el similarity index 88% rename from elpa/mew-20240911.749/mew-highlight.el rename to elpa/mew-20251127.544/mew-highlight.el index 72fb220f..652673a0 100644 --- a/elpa/mew-20240911.749/mew-highlight.el +++ b/elpa/mew-20251127.544/mew-highlight.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-highlight.el --- Highlight for Mew ;; Author: Mew developing team @@ -265,6 +266,54 @@ (call-process-region (point-min) (point-max) mew-prog-pbmtoxbm t t nil)) t)) ;; return value +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; +;;; BIMI +;;; + +(defun mew-highlight-bimi (beg end) + "Display BIMI logo." + (if (and mew-use-highlight-bimi + window-system + (fboundp mew-highlight-bimi-function)) + (funcall mew-highlight-bimi-function beg end))) + +(defvar mew-highlight-bimi-function (if mew-icon-p 'mew-highlight-bimi-original) + "*A function to display BIMI logo.") + +(defun mew-highlight-bimi-original (beg end) + (save-excursion + (goto-char beg) + (mew-elet + (let ((regex1 "^BIMI-Indicator: *\\(.*\\)\n") + (wmsg "No 'bimi=pass' in Authentication-Results: regarding BIMI-Indicator:") + overlay bimi-logo bimi-pass svgb64 scale) + (setq bimi-pass (string-match "\\bbimi=pass\\b" (or (mew-header-get-value "Authentication-Results:") ""))) + (when (re-search-forward regex1 end t) + (setq svgb64 (match-string-no-properties 1)) + (cond + ((and mew-use-bimi-status-check (not bimi-pass)) + (goto-char end) + (insert mew-x-mew:) + (setq overlay (mew-overlay-make (- (point) (length mew-x-mew:)) (point))) + (overlay-put overlay 'face 'mew-face-header-important) + (insert " " wmsg) + (setq overlay (mew-overlay-make (- (point) (length wmsg)) (point))) + (overlay-put overlay 'face 'mew-face-header-xmew) + (insert "\n")) + (t + (when (image-type-available-p 'svg) + (if (boundp 'text-scale-mode) + (setq scale (expt text-scale-mode-step text-scale-mode-amount)) + (setq scale 1.0)) + (setq bimi-logo (create-image (mew-base64-decode-string svgb64) 'svg t + :foreground "black" + :width (round (* mew-bimi-logo-size scale)) :ascent 'center))) + (when bimi-logo + (save-restriction + (narrow-to-region beg end) + (mew-bimi-display bimi-logo)))))))))) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; Cooking diff --git a/elpa/mew-20240911.749/mew-imap.el b/elpa/mew-20251127.544/mew-imap.el similarity index 99% rename from elpa/mew-20240911.749/mew-imap.el rename to elpa/mew-20251127.544/mew-imap.el index 495eb965..6896fd6d 100644 --- a/elpa/mew-20240911.749/mew-imap.el +++ b/elpa/mew-20251127.544/mew-imap.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-imap.el for reading ;; Author: Mew developing team @@ -668,7 +669,7 @@ pro pnm (if (mew-imap-get-gm-ext-1 pnm) "UID FETCH %s (X-GM-MSGID X-GM-THRID X-GM-LABELS BODY.PEEK[HEADER])" - "UID FETCH %s BODY.PEEK[HEADER]") + "UID FETCH %s BODY.PEEK[HEADER]") uid))))) (defun mew-imap-command-post-fetch (pro pnm) @@ -1139,7 +1140,7 @@ (if (char-equal sep-char (aref dir len)) (substring dir 0 len) dir))) - + (defun mew-imap-file-name-as-directory (dir case) ;; inbox.foo => inbox.foo. (let* ((sep (mew-imap-separator case)) @@ -1408,9 +1409,9 @@ (mew-sinfo-set-unread-mark (mew-get-unread-mark bnm)) (if (mew-imap-get-range pnm) (progn -;; (mew-imap-set-mdb pnm (mew-summary-mark-collect4)) + ;; (mew-imap-set-mdb pnm (mew-summary-mark-collect4)) (mew-net-folder-clean)) -;; (mew-imap-set-mdb pnm (mew-summary-mark-collect5)) + ;; (mew-imap-set-mdb pnm (mew-summary-mark-collect5)) (mew-net-invalid-cache-invisible)) (when (and (string= mailbox mew-imap-inbox-string) (or (mew-imap-spam-pattern case) @@ -1451,8 +1452,8 @@ ;; We store the value in the variable mew--gnutls-imap-greeting ;; and pass it to the filter to process the greeting. (mew-imap-filter process - (string-replace "\r\n" "\n" - mew--gnutls-imap-greeting))) + (string-replace "\r\n" "\n" + mew--gnutls-imap-greeting))) )))) (defun mew-imap-exec-recover (bnm) diff --git a/elpa/mew-20240911.749/mew-imap2.el b/elpa/mew-20251127.544/mew-imap2.el similarity index 99% rename from elpa/mew-20240911.749/mew-imap2.el rename to elpa/mew-20251127.544/mew-imap2.el index f05da86a..0862c1b6 100644 --- a/elpa/mew-20240911.749/mew-imap2.el +++ b/elpa/mew-20251127.544/mew-imap2.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-imap2.el for appending ;; Author: Mew developing team @@ -275,7 +276,7 @@ (defun mew-imap2-command-pwd-login (pro pnm) (let* ((prompt (format "IMAP LOGIN password (%s): " - (mew-imap2-get-account pnm))) + (mew-imap2-get-account pnm))) (passwd (mew-imap2-input-passwd prompt pnm)) (epasswd (mew-base64-encode-string passwd))) (mew-imap2-process-send-string2 pro epasswd))) @@ -600,7 +601,7 @@ with '*' in the region are handled." status (if (string= status "auth-xoauth2") (mew-xoauth2-json-status (mew-match-string 1)) - "OK" + "OK" "OK")))) ((string-match eos str) (mew-imap2-set-tag pnm nil) diff --git a/elpa/mew-20240911.749/mew-key.el b/elpa/mew-20251127.544/mew-key.el similarity index 97% rename from elpa/mew-20240911.749/mew-key.el rename to elpa/mew-20251127.544/mew-key.el index ffa88ea3..be1b8dad 100644 --- a/elpa/mew-20240911.749/mew-key.el +++ b/elpa/mew-20251127.544/mew-key.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-key.el ;; Author: Mew developing team @@ -43,11 +44,11 @@ (define-key mew-summary-mode-map " " 'mew-summary-display) (define-key mew-summary-mode-map "." 'mew-summary-analyze-again) (define-key mew-summary-mode-map ":" - 'mew-summary-analyze-again-alternative) + 'mew-summary-analyze-again-alternative) (define-key mew-summary-mode-map "," 'mew-summary-display-asis) (define-key mew-summary-mode-map ";" 'mew-summary-trace-path) -;; (define-key mew-summary-mode-map "\e<" 'mew-summary-jump-top) -;; (define-key mew-summary-mode-map "\e>" 'mew-summary-jump-bottom) + ;; (define-key mew-summary-mode-map "\e<" 'mew-summary-jump-top) + ;; (define-key mew-summary-mode-map "\e>" 'mew-summary-jump-bottom) (define-key mew-summary-mode-map "<" 'mew-summary-scroll-right) (define-key mew-summary-mode-map ">" 'mew-summary-scroll-left) (define-key mew-summary-mode-map "\d" 'mew-summary-prev-page) @@ -110,7 +111,7 @@ (define-key mew-summary-mode-map "\C-c\C-s" 'mew-summary-isearch-forward) (define-key mew-summary-mode-map "\C-c\C-r" 'mew-summary-isearch-backward) (define-key mew-summary-mode-map "\C-c\C-o" - 'mew-summary-jump-to-draft-buffer) + 'mew-summary-jump-to-draft-buffer) (define-key mew-summary-mode-map "\ea" 'mew-summary-alias-edit) (define-key mew-summary-mode-map "\el" 'mew-summary-recenter) (define-key mew-summary-mode-map "\et" 'mew-summary-uudecode) @@ -123,6 +124,7 @@ (define-key mew-summary-mode-map "\C-c\C-z" 'mew-summary-decode-old-pgp) (define-key mew-summary-mode-map "\C-c\C-q" 'mew-summary-kill) (define-key mew-summary-mode-map "\C-c\C-x" 'mew-summary-x-face) + (define-key mew-summary-mode-map "\C-c\C-y" 'mew-summary-bimi) (define-key mew-summary-mode-map "\C-c\C-k" 'mew-summary-kill-subprocess) (define-key mew-summary-mode-map "^" 'mew-summary-parent) (define-key mew-summary-mode-map "&" 'mew-summary-child) @@ -249,6 +251,7 @@ ["Save" mew-summary-save t] ["Convert body's character set" mew-summary-convert-local-cs t] ["Display X-Face" mew-summary-x-face t] + ["Display BIMI logo" mew-summary-bimi t] ) ("Write/Reply/Forward" ["Write" mew-summary-send t] @@ -333,15 +336,15 @@ (define-key (symbol-value symmap) "\C-c\C-b" 'mew-draft-sign-encrypt-message) (define-key (symbol-value symmap) "\C-c\C-r" 'mew-draft-encrypt-sign-message) (define-key (symbol-value symmap) "\C-c\C-p\C-m" - 'mew-draft-set-privacy-method) + 'mew-draft-set-privacy-method) (define-key (symbol-value symmap) "\C-c\C-p\C-a" - 'mew-draft-toggle-privacy-always) + 'mew-draft-toggle-privacy-always) (define-key (symbol-value symmap) "\C-c\C-p\C-e" - 'mew-draft-toggle-privacy-encrypted) + 'mew-draft-toggle-privacy-encrypted) (define-key (symbol-value symmap) "\C-c\C-p\C-d" - 'mew-draft-set-privacy-type) + 'mew-draft-set-privacy-type) (define-key (symbol-value symmap) "\C-c\C-p\C-f" - 'mew-draft-use-format-flowed)) + 'mew-draft-use-format-flowed)) (unless mew-draft-header-map (setq mew-draft-header-map (make-sparse-keymap)) @@ -549,20 +552,20 @@ (define-key mew-input-map "?" 'mew-input-complete) (define-key mew-input-map "\C-c\t" 'mew-circular-complete-switch) (define-key mew-input-map [menu-bar minibuf] - (cons "Mew" (make-sparse-keymap "Mew"))) + (cons "Mew" (make-sparse-keymap "Mew"))) (define-key mew-input-map [menu-bar minibuf quit] - (list 'menu-item "Quit" 'keyboard-escape-quit - :help "Abort input and exit minibuffer")) + (list 'menu-item "Quit" 'keyboard-escape-quit + :help "Abort input and exit minibuffer")) (define-key mew-input-map [menu-bar minibuf return] - (list 'menu-item "Enter" 'exit-minibuffer - :help "Terminate input and exit minibuffer"))) + (list 'menu-item "Enter" 'exit-minibuffer + :help "Terminate input and exit minibuffer"))) (unless mew-input-folder-map (setq mew-input-folder-map (copy-keymap mew-input-map)) (let ((c 33)) ;; excluding SPC (while (<= c 128) ;; including delete (define-key mew-input-folder-map (char-to-string c) - 'mew-input-folder-self-insert) + 'mew-input-folder-self-insert) (setq c (1+ c)))) (define-key mew-input-folder-map "\d" 'mew-input-folder-self-insert) (define-key mew-input-folder-map "\C-g" 'mew-input-folder-abort-minibuffer) diff --git a/elpa/mew-20240911.749/mew-lang-jp.el b/elpa/mew-20251127.544/mew-lang-jp.el similarity index 99% rename from elpa/mew-20240911.749/mew-lang-jp.el rename to elpa/mew-20251127.544/mew-lang-jp.el index 56349f88..ac33234a 100644 --- a/elpa/mew-20240911.749/mew-lang-jp.el +++ b/elpa/mew-20251127.544/mew-lang-jp.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;-*-coding:iso-2022-7bit;-*- ;;; mew-lang-jp.el --- Japanese specific stuff for Mew diff --git a/elpa/mew-20240911.749/mew-lang-kr.el b/elpa/mew-20251127.544/mew-lang-kr.el similarity index 98% rename from elpa/mew-20240911.749/mew-lang-kr.el rename to elpa/mew-20251127.544/mew-lang-kr.el index b048a6f3..aed1be51 100644 --- a/elpa/mew-20240911.749/mew-lang-kr.el +++ b/elpa/mew-20251127.544/mew-lang-kr.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;-*-coding:euc-kr;-*- ;;; mew-lang-kr.el --- Korean specific stuff for Mew diff --git a/elpa/mew-20240911.749/mew-lang-latin.el b/elpa/mew-20251127.544/mew-lang-latin.el similarity index 98% rename from elpa/mew-20240911.749/mew-lang-latin.el rename to elpa/mew-20251127.544/mew-lang-latin.el index ef6fc582..4fe556f2 100644 --- a/elpa/mew-20240911.749/mew-lang-latin.el +++ b/elpa/mew-20251127.544/mew-lang-latin.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-lang-latin.el --- Latin specific stuff for Mew ;; Author: Mew developing team diff --git a/elpa/mew-20240911.749/mew-local.el b/elpa/mew-20251127.544/mew-local.el similarity index 99% rename from elpa/mew-20240911.749/mew-local.el rename to elpa/mew-20251127.544/mew-local.el index 4dd7b08c..8448478d 100644 --- a/elpa/mew-20240911.749/mew-local.el +++ b/elpa/mew-20251127.544/mew-local.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-local.el ;; Author: Mew developing team diff --git a/elpa/mew-20240911.749/mew-mark.el b/elpa/mew-20251127.544/mew-mark.el similarity index 98% rename from elpa/mew-20240911.749/mew-mark.el rename to elpa/mew-20251127.544/mew-mark.el index dd3a3d59..966e0246 100644 --- a/elpa/mew-20240911.749/mew-mark.el +++ b/elpa/mew-20251127.544/mew-mark.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-mark.el --- Marking for Mew Summary and Virtual mode ;; Author: Mew developing team @@ -513,13 +514,13 @@ Put the escape mark (default is '$') in COUNT times." ;;; (defun mew-summary-delete (&optional count) - "Put the delete mark (default is 'D') in COUNT times." + "Put the delete mark (default is `D') in COUNT times." (interactive "P") (mew-summary-not-in-nntp (mew-mark-put-mark-loop 'mew-summary-delete-one count nil))) (defun mew-summary-delete-one (&optional no-msg) - "Put the delete mark (default is 'D') on this message." + "Put the delete mark (default is `D') on this message." (mew-mark-put-mark mew-mark-delete no-msg 'valid-only)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -528,13 +529,13 @@ Put the escape mark (default is '$') in COUNT times." ;;; (defun mew-summary-unlink (&optional count) - "Put the unlink mark (default is 'X') in COUNT times." + "Put the unlink mark (default is `X') in COUNT times." (interactive "P") (mew-summary-not-in-nntp (mew-mark-put-mark-loop 'mew-summary-unlink-one count nil))) (defun mew-summary-unlink-one (&optional no-msg) - "Put the unlink mark (default is 'X') on this message." + "Put the unlink mark (default is `X') on this message." (mew-mark-put-mark mew-mark-unlink no-msg 'valid-only)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -544,12 +545,12 @@ Put the escape mark (default is '$') in COUNT times." (defun mew-summary-unread (&optional count) "\\ -Put the unread mark (default is 'U') in COUNT times." +Put the unread mark (default is `U') in COUNT times." (interactive "P") (mew-mark-put-mark-loop 'mew-summary-unread-one count nil)) (defun mew-summary-unread-one (&optional no-msg) - "Put the unread mark (default is 'U') on this message." + "Put the unread mark (default is `U') on this message." (mew-mark-put-mark mew-mark-unread no-msg)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -674,22 +675,22 @@ BEG and END." (mew-summary-exchange-mark mew-mark-review mew-mark-unlink 'valid-only)) (defun mew-summary-mark-escape () ;; * -> $ - "Change the '*' mark into the '$' mark." + "Change the `*' mark into the `$' mark." (interactive) (mew-summary-exchange-mark mew-mark-review mew-mark-escape)) (defun mew-summary-mark-review () ;; $ -> * - "Change the '$' mark into the '*' mark." + "Change the `$' mark into the `*' mark." (interactive) (mew-summary-exchange-mark mew-mark-escape mew-mark-review)) (defun mew-summary-mark-unread () ;; * -> U - "Change the '*' mark into the 'U' mark." + "Change the `*' mark into the `U' mark." (interactive) (mew-summary-exchange-mark mew-mark-review mew-mark-unread)) (defun mew-summary-mark-swap () ;; $ <-> * - "Swap the '$' mark and the '*' mark." + "Swap the `$' mark and the `*' mark." (interactive) (mew-summary-exchange-mark mew-mark-escape mew-mark-tmp) (mew-summary-exchange-mark mew-mark-review mew-mark-escape) diff --git a/elpa/mew-20240911.749/mew-message.el b/elpa/mew-20251127.544/mew-message.el similarity index 98% rename from elpa/mew-20240911.749/mew-message.el rename to elpa/mew-20251127.544/mew-message.el index 5ec58a11..cfdbbaec 100644 --- a/elpa/mew-20240911.749/mew-message.el +++ b/elpa/mew-20251127.544/mew-message.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-message.el --- Message mode for Mew ;; Author: Mew developing team @@ -195,8 +196,8 @@ confused. Please use '\\[mew-message-forward]' instead." (defun mew-message-goto-next-url (&optional arg) (interactive "P") (let ((next (if arg - 'previous-single-property-change - 'next-single-property-change)) + 'previous-single-property-change + 'next-single-property-change)) pos) (setq pos (funcall next (point) 'mew-url)) (if pos diff --git a/elpa/mew-20240911.749/mew-mime.el b/elpa/mew-20251127.544/mew-mime.el similarity index 98% rename from elpa/mew-20240911.749/mew-mime.el rename to elpa/mew-20251127.544/mew-mime.el index 17aa63f0..297b7e6a 100644 --- a/elpa/mew-20240911.749/mew-mime.el +++ b/elpa/mew-20251127.544/mew-mime.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-mime.el --- MIME launcher for Mew ;; Author: Mew developing team @@ -609,7 +610,7 @@ (insert-file-contents file2))) (if (file-exists-p file1) (delete-file file1)) (if (file-exists-p file2) (delete-file file2)) - (message "Displaying a PDF document...done")))) + (message "Displaying a PDF document...done")))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; @@ -895,7 +896,7 @@ See `mew-mime-content-type' to know how actions can be defined." (mew-decode-syntax-print (current-buffer) mew-decode-syntax (mew-xinfo-get-multi-form) - (mew-xinfo-get-icon-spec)) + (mew-xinfo-get-icon-spec)) (goto-char current) (mew-summary-display 'redisplay)))))) @@ -920,19 +921,19 @@ See `mew-mime-content-type' to know how actions can be defined." (defun mew-decode-syntax-adjust-multi (syntax threshold inc) (mew-decode-syntax-adjust-single syntax threshold inc) - (let ((i mew-syntax-magic) - (len (length syntax)) - part) - (while (< i len) - (setq part (aref syntax i)) - (cond - ((mew-syntax-singlepart-p part) - (mew-decode-syntax-adjust-single part threshold inc)) - ((mew-syntax-multipart-p part) - (mew-decode-syntax-adjust-multi part threshold inc)) - ((mew-syntax-message-p part) - (mew-decode-syntax-adjust-message part threshold inc))) - (setq i (1+ i))))) + (let ((i mew-syntax-magic) + (len (length syntax)) + part) + (while (< i len) + (setq part (aref syntax i)) + (cond + ((mew-syntax-singlepart-p part) + (mew-decode-syntax-adjust-single part threshold inc)) + ((mew-syntax-multipart-p part) + (mew-decode-syntax-adjust-multi part threshold inc)) + ((mew-syntax-message-p part) + (mew-decode-syntax-adjust-message part threshold inc))) + (setq i (1+ i))))) (defun mew-unzip-file (buf beg end dir file) (let* ((zipfile (expand-file-name file dir)) diff --git a/elpa/mew-20240911.749/mew-minibuf.el b/elpa/mew-20251127.544/mew-minibuf.el similarity index 99% rename from elpa/mew-20240911.749/mew-minibuf.el rename to elpa/mew-20251127.544/mew-minibuf.el index 0a2deb3f..23ccbf2f 100644 --- a/elpa/mew-20240911.749/mew-minibuf.el +++ b/elpa/mew-20251127.544/mew-minibuf.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-minibuf.el --- Minibuffer input methods for Mew ;; Author: Mew developing team diff --git a/elpa/mew-20240911.749/mew-mule.el b/elpa/mew-20251127.544/mew-mule.el similarity index 99% rename from elpa/mew-20240911.749/mew-mule.el rename to elpa/mew-20251127.544/mew-mule.el index 04571fcd..8580b3cb 100644 --- a/elpa/mew-20240911.749/mew-mule.el +++ b/elpa/mew-20251127.544/mew-mule.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-mule.el --- Environment of Mule common for Mew ;; Author: Mew developing team diff --git a/elpa/mew-20240911.749/mew-mule3.el b/elpa/mew-20251127.544/mew-mule3.el similarity index 98% rename from elpa/mew-20240911.749/mew-mule3.el rename to elpa/mew-20251127.544/mew-mule3.el index 8cda9ffe..85e4d5aa 100644 --- a/elpa/mew-20240911.749/mew-mule3.el +++ b/elpa/mew-20251127.544/mew-mule3.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-mule3.el --- Environment of Mule version 3 for Mew ;; Author: Mew developing team @@ -115,14 +116,14 @@ ((ascii latin-iso8859-15) iso-8859-15 "quoted-printable" "Q" nil) ((ascii thai-tis620) tis-620 "base64" "B" t) ((ascii latin-jisx0201 japanese-jisx0208 japanese-jisx0208-1978) - iso-2022-jp "7bit" "B" t) + iso-2022-jp "7bit" "B" t) ((ascii korean-ksc5601) euc-kr "8bit" "B" t) ((ascii chinese-gbk) gbk "base64" "B" t) ((ascii chinese-gb2312) cn-gb-2312 "base64" "B" t) ((ascii chinese-big5-1 chinese-big5-2) - chinese-big5 "base64" "B" t) -;; ((ascii japanese-jisx0208 japanese-jisx0213-1 japanese-jisx0213-2) -;; iso-2022-jp-3 "7bit" "B" t) + chinese-big5 "base64" "B" t) + ;; ((ascii japanese-jisx0208 japanese-jisx0213-1 japanese-jisx0213-2) + ;; iso-2022-jp-3 "7bit" "B" t) (nil utf-7 "7bit" "Q" t) ;; xxx (nil utf-8 ,mew-charset-utf-8-encoding ,mew-charset-utf-8-header-encoding t) (nil iso-2022-jp-2 "7bit" "B" t))) diff --git a/elpa/mew-20240911.749/mew-net.el b/elpa/mew-20251127.544/mew-net.el similarity index 98% rename from elpa/mew-20240911.749/mew-net.el rename to elpa/mew-20251127.544/mew-net.el index e315fadd..c34ec147 100644 --- a/elpa/mew-20240911.749/mew-net.el +++ b/elpa/mew-20251127.544/mew-net.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-net.el ;; Author: Mew developing team @@ -184,7 +185,7 @@ (setq mew-biff-timer-id (mew-timer (* 60 mew-biff-interval) func))))) (let ((ent '(mew-biff-string mew-biff-string))) (when (stringp global-mode-string) - (setq global-mode-string (list global-mode-string))) + (setq global-mode-string (list global-mode-string))) (unless (member ent global-mode-string) (if global-mode-string (setq global-mode-string @@ -785,15 +786,15 @@ The messages in the server side is always retained." (setq case-rtrs (nreverse case-rtrs))) (while (re-search-forward mew-regex-msg-review nil t) (when (mew-sumsyn-match mew-regex-sumsyn-long) - (setq uid (mew-sumsyn-message-uid)) - (setq msg (mew-sumsyn-message-number)) - (setq siz (mew-sumsyn-message-size)) - (when (and (mew-msg-validp msg) (mew-msg-truncatedp siz)) - (setq rtr (mew-make-refileinfo :uid uid - :size siz - :delete del - :folders (list bnm msg))) - (setq rtrs (cons rtr rtrs)))) + (setq uid (mew-sumsyn-message-uid)) + (setq msg (mew-sumsyn-message-number)) + (setq siz (mew-sumsyn-message-size)) + (when (and (mew-msg-validp msg) (mew-msg-truncatedp siz)) + (setq rtr (mew-make-refileinfo :uid uid + :size siz + :delete del + :folders (list bnm msg))) + (setq rtrs (cons rtr rtrs)))) (forward-line)) (setq rtrs (nreverse rtrs)))) (if (and (not rtrs) (not case-rtrs)) diff --git a/elpa/mew-20240911.749/mew-nntp.el b/elpa/mew-20251127.544/mew-nntp.el similarity index 99% rename from elpa/mew-20240911.749/mew-nntp.el rename to elpa/mew-20251127.544/mew-nntp.el index 93169794..b5e29b69 100644 --- a/elpa/mew-20240911.749/mew-nntp.el +++ b/elpa/mew-20251127.544/mew-nntp.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-nntp.el for reading ;; Author: Mew developing team diff --git a/elpa/mew-20240911.749/mew-nntp2.el b/elpa/mew-20251127.544/mew-nntp2.el similarity index 99% rename from elpa/mew-20240911.749/mew-nntp2.el rename to elpa/mew-20251127.544/mew-nntp2.el index 6d821fa1..2f9b1716 100644 --- a/elpa/mew-20240911.749/mew-nntp2.el +++ b/elpa/mew-20251127.544/mew-nntp2.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-nntp2.el for posting ;; Author: Mew developing team diff --git a/elpa/mew-20240911.749/mew-oauth2.el b/elpa/mew-20251127.544/mew-oauth2.el similarity index 96% rename from elpa/mew-20240911.749/mew-oauth2.el rename to elpa/mew-20251127.544/mew-oauth2.el index 34501644..cd54f441 100644 --- a/elpa/mew-20240911.749/mew-oauth2.el +++ b/elpa/mew-20251127.544/mew-oauth2.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-oauth2.el -- OAuth for Mew ;; Author: Mew developing team @@ -42,6 +43,12 @@ (defvar mew-oauth2-resource-url "https://mail.google.com/" "URL used to request access to Mail Resources.") +;;; MS356 + +;;(setq mew-oauth2-auth-url "https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize") +;;(setq mew-oauth2-token-url "https://login.microsoftonline.com/organizations/oauth2/v2.0/token") +;;(setq mew-oauth2-resource-url "https://outlook.office.com/IMAP.AccessAsUser.All https://outlook.office.com/SMTP.Send offline_access") + (defun mew-oauth2-debug (label string) (when (mew-debug 'oauth2) (with-current-buffer (get-buffer-create mew-buffer-debug) diff --git a/elpa/mew-20240911.749/mew-passwd.el b/elpa/mew-20251127.544/mew-passwd.el similarity index 84% rename from elpa/mew-20240911.749/mew-passwd.el rename to elpa/mew-20251127.544/mew-passwd.el index 62c00c22..49f333a4 100644 --- a/elpa/mew-20240911.749/mew-passwd.el +++ b/elpa/mew-20251127.544/mew-passwd.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-passwd.el ;; Author: Mew developing team @@ -23,7 +24,11 @@ (defvar mew-passwd-encryption-name "GPG Encryption") (defvar mew-passwd-decryption-name "GPG Decryption") +;; t means a master password isn't cached but passwords are loaded. (defvar mew-passwd-master nil) +(defvar mew-passwd-master-asymmetric-encryption-command (list "-e" "--default-recipient-self")) +(defvar mew-passwd-master-symmetric-encryption-command (list "-c" "--cipher-algo" mew-passwd-cipher)) + (defvar mew-passwd-alist nil) (defvar mew-passwd-timer-id nil) (defvar mew-passwd-rendezvous nil) @@ -189,18 +194,20 @@ ) (t (when (and (not mew-passwd-master) mew-use-master-passwd) - (setq mew-passwd-agent-hack (mew-passwd-check-agent-hack)) - (let ((file (expand-file-name mew-passwd-file mew-conf-path))) - (if (file-exists-p file) - (setq mew-passwd-alist (mew-passwd-load)) - ;; save nil and ask master twice - (mew-passwd-save))) - (add-hook 'kill-emacs-hook 'mew-passwd-clean-up))))) + (setq mew-passwd-agent-hack (mew-passwd-check-agent-hack)) + (let ((file (expand-file-name mew-passwd-file mew-conf-path))) + (if (file-exists-p file) + (setq mew-passwd-alist (mew-passwd-load)) + (mew-passwd-save "ask") ;; save nil and ask master twice + (mew-passwd-load))) ;; load new password + (add-hook 'kill-emacs-hook 'mew-passwd-clean-up))))) (defun mew-passwd-clean-up () (remove-hook 'kill-emacs-hook 'mew-passwd-clean-up) (when mew-passwd-master - (mew-passwd-save)) + (if (and (eq mew-master-passwd-encryption 'symmetric) (not (stringp mew-passwd-master))) + (mew-passwd-save "ask") ;; ask master twice at change from public key encryption to symmetric encryption + (mew-passwd-save))) (setq mew-passwd-master nil) (when (and mew-use-cached-passwd (not mew-use-master-passwd)) (setq mew-passwd-alist nil) @@ -253,7 +260,7 @@ (error "")))) (defun mew-passwd-read-passwd (prompt &optional encrypt-p) - (if mew-passwd-master + (if (stringp mew-passwd-master) ; when mew-passwd-master is t, need to read passwd (progn (mew-timing) mew-passwd-master) @@ -264,8 +271,16 @@ (defun mew-passwd-change () "Change the master password." (interactive) - (setq mew-passwd-master nil) - (mew-passwd-save)) + (cond + ((eq mew-master-passwd-encryption 'asymmetric) + (message "Master password for public key encrytion can't be changed.") + (mew-let-user-read)) + (t + (message "Master password for symmetric encrytion.") + (mew-let-user-read) + (setq mew-passwd-master nil) + (mew-passwd-save "ask") ;; save and ask master twice + (mew-passwd-load)))) ;; load new password ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; @@ -292,7 +307,7 @@ (with-temp-buffer (catch 'loop (dotimes (_i N) ;; prevent byte-compile warning - (when mew-passwd-agent-hack (mew-passwd-clear-passphrase file)) + (setq mew-passwd-master t) ;; (setq pro (apply 'mew-start-process-lang mew-passwd-decryption-name (current-buffer) @@ -301,6 +316,7 @@ (set-process-filter pro 'mew-passwd-filter) (set-process-sentinel pro 'mew-passwd-sentinel) (mew-passwd-rendezvous pro) + (if (eq mew-master-passwd-encryption 'asymmetric) (setq mew-passwd-master t)) ; drop passphrase, but need to save a password file (unless (file-exists-p tfile) (setq mew-passwd-master nil)) (when mew-passwd-master @@ -315,17 +331,22 @@ (mew-passwd-delete-file tfile)) pwds)) -(defun mew-passwd-save () +;; "pinentry-mode" is a string for pinentry-mode option of +;; GnuPG2. "loopback" or "ask" is useful. +(defun mew-passwd-save (&optional pinentry-mode) (let* ((process-connection-type mew-connection-type2) (file (expand-file-name mew-passwd-file mew-conf-path)) (tfile (mew-make-temp-name "gpg-save")) - (args (mew-passwd-adjust-args (list "-c" - "--cipher-algo" mew-passwd-cipher - "--yes" "--output" file tfile))) (N mew-passwd-repeat) - pro) + pro args) (if (file-exists-p file) (rename-file file (concat file mew-backup-suffix) 'override)) + (cond + ((eq mew-master-passwd-encryption 'symmetric) + (setq args (mew-passwd-adjust-args (append mew-passwd-master-symmetric-encryption-command (list "--yes" "--output" file tfile)) pinentry-mode))) + ((eq mew-master-passwd-encryption 'asymmetric) + (setq args (mew-passwd-adjust-args (append mew-passwd-master-asymmetric-encryption-command (list "--yes" "--output" file tfile)) pinentry-mode))) + (t (error "unknown mew-use-master-passwd-encryption"))) (unwind-protect (with-temp-buffer (pp mew-passwd-alist (current-buffer)) @@ -392,23 +413,9 @@ (write-region (point-min) (point-max) file nil 'no-msg))) (delete-file file))) -(defun mew-passwd-get-cache-id (file) - (with-temp-buffer - (call-process mew-prog-passwd nil t nil "--list-packets" file) - (goto-char (point-min)) - (when (re-search-forward "salt \\([^ ,]+\\)," nil t) - (concat "S" (match-string 1))))) - -(defun mew-passwd-clear-passphrase (file) - (when (file-exists-p file) - (let ((cache-id (mew-passwd-get-cache-id file))) - (with-temp-buffer - (insert "CLEAR_PASSPHRASE " cache-id "\n") - (call-process-region (point-min) (point-max) "gpg-connect-agent"))))) - -(defun mew-passwd-adjust-args (args) +(defun mew-passwd-adjust-args (args &optional pinentry-mode) (if mew-passwd-agent-hack - (cons "--pinentry-mode" (cons "loopback" args)) + (append '("--no-symkey-cache" "--pinentry-mode") (cons (if pinentry-mode pinentry-mode "loopback") args)) args)) (provide 'mew-passwd) diff --git a/elpa/mew-20240911.749/mew-pgp.el b/elpa/mew-20251127.544/mew-pgp.el similarity index 99% rename from elpa/mew-20240911.749/mew-pgp.el rename to elpa/mew-20251127.544/mew-pgp.el index 1190831c..9a33171b 100644 --- a/elpa/mew-20240911.749/mew-pgp.el +++ b/elpa/mew-20251127.544/mew-pgp.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-pgp.el --- PGP/MIME for Mew ;; Author: Mew developing team @@ -521,7 +522,7 @@ Set 1 if 5. Set 2 if 6. Set 3 if GNUPG. Set 4 if GNUPG2.") (insert mew-pgp-string) (goto-char (point-min)) (if (re-search-forward "SIG_CREATED [A-Z] [0-9]+ \\([0-9]+\\)" nil t) - (setq alg (cdr (assoc (mew-match-string 1) mew-pgp-hash-alist))))) + (setq alg (cdr (assoc (mew-match-string 1) mew-pgp-hash-alist))))) (or alg micalg)))) (defun mew-pgp-sign (file1) @@ -969,7 +970,7 @@ Set 1 if 5. Set 2 if 6. Set 3 if GNUPG. Set 4 if GNUPG2.") ;; We need MIME-decoded buffer to check PGP boundaries. (setq type (mew-old-pgp-check)) (if type - (mew-old-pgp-decode fld msg type) + (mew-old-pgp-decode fld msg type) (message "No PGP data found"))))))) (defun mew-old-pgp-decode (fld msg type) diff --git a/elpa/mew-20240911.749/mew-pick.el b/elpa/mew-20251127.544/mew-pick.el similarity index 99% rename from elpa/mew-20240911.749/mew-pick.el rename to elpa/mew-20251127.544/mew-pick.el index 14a1a4dc..00571fcd 100644 --- a/elpa/mew-20240911.749/mew-pick.el +++ b/elpa/mew-20251127.544/mew-pick.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-pick.el --- Picking up messages for Mew ;; Author: Mew developing team @@ -800,10 +801,10 @@ If you want to change the stored keyword, execute this command with '\\[universa (format "%s == \"%s\"wc" kmd vl)) ((string= op "==") (format "%s == \"%s\"w" kmd vl)) -;; ((string= op "!=") -;; (format "%s != \"%s\"wc" kmd vl)) -;; ((string= op "!==") -;; (format "%s != \"%s\"c" kmd vl)) + ;; ((string= op "!=") + ;; (format "%s != \"%s\"wc" kmd vl)) + ;; ((string= op "!==") + ;; (format "%s != \"%s\"c" kmd vl)) (t (error "'%s' is not supported" op))))) diff --git a/elpa/mew-20240911.749/mew-pkg.el b/elpa/mew-20251127.544/mew-pkg.el similarity index 53% rename from elpa/mew-20240911.749/mew-pkg.el rename to elpa/mew-20251127.544/mew-pkg.el index fec8ec77..163f196d 100644 --- a/elpa/mew-20240911.749/mew-pkg.el +++ b/elpa/mew-20251127.544/mew-pkg.el @@ -1,7 +1,7 @@ ;; -*- no-byte-compile: t; lexical-binding: nil -*- -(define-package "mew" "20240911.749" +(define-package "mew" "20251127.544" "Messaging in the Emacs World." () :url "https://github.com/kazu-yamamoto/Mew" - :commit "c46d8ee784d098244abaf162660073d1d4787b60" - :revdesc "c46d8ee784d0") + :commit "505fa0a42dd16a361bd08030318725ddc8bd8954" + :revdesc "505fa0a42dd1") diff --git a/elpa/mew-20240911.749/mew-pop.el b/elpa/mew-20251127.544/mew-pop.el similarity index 99% rename from elpa/mew-20240911.749/mew-pop.el rename to elpa/mew-20251127.544/mew-pop.el index a5415aa1..68469cb6 100644 --- a/elpa/mew-20240911.749/mew-pop.el +++ b/elpa/mew-20251127.544/mew-pop.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-pop.el ;; Author: Mew developing team @@ -130,8 +131,8 @@ (defun mew-pop-command-pass (pro pnm) (let* ((prompt (format "POP password (%s): " - (mew-pop-get-account pnm))) - (passwd (mew-pop-input-passwd prompt pnm))) + (mew-pop-get-account pnm))) + (passwd (mew-pop-input-passwd prompt pnm))) (mew-pop-message pnm "Sending your POP password to the POP server...") (mew-pop-process-send-string pro "PASS %s" passwd))) @@ -670,8 +671,8 @@ (sslnp (mew-ssl-native-p (mew-pop-ssl case))) (starttlsp (mew-ssl-starttls-p (mew-pop-ssl case) - (mew-*-to-string (mew-pop-port case)) - (mew-pop-ssl-port case))) + (mew-*-to-string (mew-pop-port case)) + (mew-pop-ssl-port case))) (proxysrv (mew-pop-proxy-server case)) (proxyport (mew-pop-proxy-port case)) (pnm (mew-pop-info-name case)) diff --git a/elpa/mew-20240911.749/mew-refile.el b/elpa/mew-20251127.544/mew-refile.el similarity index 98% rename from elpa/mew-20240911.749/mew-refile.el rename to elpa/mew-20251127.544/mew-refile.el index 22bb8e6f..0b6b2cee 100644 --- a/elpa/mew-20240911.749/mew-refile.el +++ b/elpa/mew-20251127.544/mew-refile.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-refile.el --- Refile for Mew ;; Author: Mew developing team @@ -349,7 +350,7 @@ values." (defun mew-refile-guess-by-newsgroups () ;; Guess folders by the Newsgroups field with folder alist. (let* ((newsgroups (mew-addrstr-parse-value-list2 - (mew-header-get-value mew-newsgroups:))) + (mew-header-get-value mew-newsgroups:))) (proto mew-inherit-refile-proto) (case mew-inherit-refile-case) (alist (mew-proto-folder-alist proto case)) ;; local folders @@ -577,11 +578,11 @@ Return t if exists or created. Otherwise, return nil." (defun mew-summary-copy () "Put the refile mark(default is `o') on this message with the current folder as a candidate in addition to guessed folders." - (interactive) - (mew-summary-msg-or-part - (mew-summary-refilable - (mew-summary-refile-body - nil nil nil nil (mew-summary-folder-name))))) + (interactive) + (mew-summary-msg-or-part + (mew-summary-refilable + (mew-summary-refile-body + nil nil nil nil (mew-summary-folder-name))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; @@ -592,15 +593,15 @@ the current folder as a candidate in addition to guessed folders." (concat mew-buffer-prefix "refile " fld)) (defun mew-summary-refile (&optional report) - "Put the refile mark(default is `o') on this message. If already + "Put the refile mark(default is `o') on this message. If already marked with `o', it prints where this message will be refiled. This can overlay other marks. When it overlays, the cursor stays on the message. If it marks newly, displays the next message. If executed with `\\[universal-argument]', it displays how the refile rules work in Message mode." - (interactive "P") - (mew-summary-msg-or-part - (mew-summary-refilable - (if report (mew-summary-refile-report) (mew-summary-refile-body))))) + (interactive "P") + (mew-summary-msg-or-part + (mew-summary-refilable + (if report (mew-summary-refile-report) (mew-summary-refile-body))))) (defvar mew-override-body-open "<") (defvar mew-override-body-close "> ") diff --git a/elpa/mew-20240911.749/mew-scan.el b/elpa/mew-20251127.544/mew-scan.el similarity index 99% rename from elpa/mew-20240911.749/mew-scan.el rename to elpa/mew-20251127.544/mew-scan.el index 7d9633fc..1b06d3f0 100644 --- a/elpa/mew-20240911.749/mew-scan.el +++ b/elpa/mew-20251127.544/mew-scan.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-scan.el --- Scanning messages for Mew ;; Author: Mew developing team @@ -553,7 +554,7 @@ Address is converted by `mew-summary-form-extract-addr'. See also ;; (setq ct (mew-syntax-get-value ctl 'cap)) ;; So, this hard coding is used. (while (and (string-match "^Multipart/" ctr) - (string-match "boundary=\"?\\([^\"\n\t;]+\\)\"?" ctr)) + (string-match "boundary=\"?\\([^\"\n\t;]+\\)\"?" ctr)) (setq boundary (mew-match-string 1 ctr)) (setq boundary (concat "^--" (regexp-quote boundary))) (setq found nil) diff --git a/elpa/mew-20240911.749/mew-search.el b/elpa/mew-20251127.544/mew-search.el similarity index 96% rename from elpa/mew-20240911.749/mew-search.el rename to elpa/mew-20251127.544/mew-search.el index 2a00783d..164e874e 100644 --- a/elpa/mew-20240911.749/mew-search.el +++ b/elpa/mew-20251127.544/mew-search.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-search.el --- Index Search ;; Author: Mew developing team @@ -26,26 +27,26 @@ (defvar mew-search-switch `((spotlight "Spotlight" ,mew-prog-spotlight - mew-search-with-spotlight mew-search-virtual-with-spotlight - mew-spotlight-index-folder mew-spotlight-index-all - mew-pick-canonicalize-pattern-spotlight - nil nil) + mew-search-with-spotlight mew-search-virtual-with-spotlight + mew-spotlight-index-folder mew-spotlight-index-all + mew-pick-canonicalize-pattern-spotlight + nil nil) (wds "WDS" ,mew-prog-wds - mew-search-with-wds mew-search-virtual-with-wds - mew-wds-index-folder mew-wds-index-all - mew-pick-canonicalize-pattern-wds - mew-wds-register mew-wds-unregister) + mew-search-with-wds mew-search-virtual-with-wds + mew-wds-index-folder mew-wds-index-all + mew-pick-canonicalize-pattern-wds + mew-wds-register mew-wds-unregister) (google "Google" ,mew-prog-google - mew-search-with-google mew-search-virtual-with-google - mew-google-index-folder mew-google-index-all - mew-pick-canonicalize-pattern-google - mew-google-register mew-google-unregister) + mew-search-with-google mew-search-virtual-with-google + mew-google-index-folder mew-google-index-all + mew-pick-canonicalize-pattern-google + mew-google-register mew-google-unregister) (est "Hyper Estraier" ,mew-prog-est - mew-search-with-est mew-search-virtual-with-est - mew-est-index-folder mew-est-index-all - mew-pick-canonicalize-pattern-est - nil nil - mew-est-input-filter))) + mew-search-with-est mew-search-virtual-with-est + mew-est-index-folder mew-est-index-all + mew-pick-canonicalize-pattern-est + nil nil + mew-est-input-filter))) (defun mew-search-get-list (func) (let ((sw mew-search-switch) @@ -193,9 +194,9 @@ with a search method." (message "No search method") (let* ((ent (mew-search-get-ent mew-search-method)) (func (mew-search-get-func-register ent))) - (if (not (fboundp func)) - (message "This command cannot be used") - (funcall func))))) + (if (not (fboundp func)) + (message "This command cannot be used") + (funcall func))))) (defun mew-summary-search-unregister () (interactive) @@ -203,9 +204,9 @@ with a search method." (message "No search method") (let* ((ent (mew-search-get-ent mew-search-method)) (func (mew-search-get-func-unregister ent))) - (if (not (fboundp func)) - (message "This command cannot be used") - (funcall func))))) + (if (not (fboundp func)) + (message "This command cannot be used") + (funcall func))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; @@ -650,7 +651,7 @@ with a search method." ((not (mew-which-exec mew-prog-smew)) (message "%s not found" mew-prog-smew)) (t - ,@body)))) + ,@body)))) (defun mew-summary-selection-by-msgid () "Creating Virtual mode with messages relating to the current message" diff --git a/elpa/mew-20240911.749/mew-smime.el b/elpa/mew-20251127.544/mew-smime.el similarity index 99% rename from elpa/mew-20240911.749/mew-smime.el rename to elpa/mew-20251127.544/mew-smime.el index 2e95fab0..c267c2c0 100644 --- a/elpa/mew-20240911.749/mew-smime.el +++ b/elpa/mew-20251127.544/mew-smime.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-smime.el --- S/MIME for Mew ;; Author: Mew developing team diff --git a/elpa/mew-20240911.749/mew-smtp.el b/elpa/mew-20251127.544/mew-smtp.el similarity index 77% rename from elpa/mew-20240911.749/mew-smtp.el rename to elpa/mew-20251127.544/mew-smtp.el index 09ef290b..2b8084e7 100644 --- a/elpa/mew-20240911.749/mew-smtp.el +++ b/elpa/mew-20251127.544/mew-smtp.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-smtp.el ;; Author: Mew developing team @@ -6,9 +7,10 @@ ;;; Code: (require 'mew) + (autoload 'puny-encode-domain "puny") -(when (and (fboundp 'gnutls-available-p) - (gnutls-available-p)) + +(when (and (fboundp 'gnutls-available-p) (gnutls-available-p)) (require 'gnutls) (require 'nsm)) @@ -57,9 +59,9 @@ ;; XXX: MS Exchange Returns 334 like CRAM-MD5? ;; https://docs.microsoft.com/en-us/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth ("auth-xoauth2" ("235" . "next") (t . "wpwd")) -;; See blow -;; ("auth-plain" ("334" . "pwd-plain") (t . "wpwd")) -;; ("pwd-plain" ("235" . "next") (t . "wpwd")) + ;; See blow + ;; ("auth-plain" ("334" . "pwd-plain") (t . "wpwd")) + ;; ("pwd-plain" ("235" . "next") (t . "wpwd")) ;; ("helo" ("250" . "next")) ("mail-from" ("250" . "rcpt-to")) @@ -290,7 +292,7 @@ (defun mew-smtp-command-user-login (pro pnm) (let* ((user (mew-smtp-get-auth-user pnm)) (euser (mew-base64-encode-string user))) - (mew-smtp-process-send-string pro "%s" euser))) + (mew-smtp-process-send-string pro "%s" euser))) (defun mew-smtp-command-pwd-login (pro pnm) (let* ((user (mew-smtp-get-auth-user pnm)) @@ -408,234 +410,173 @@ ;;; XXX: port must be resolved by using mew-serv-to-port ;; because some service names are not in /etc/services. ;; mew-serv-to-port uses mew-port-db. -(setq mew--advice-tls-parameters-plist nil) +(defvar mew--advice-tls-parameters-plist nil) + (defun mew--advice-filter-args-gnutls-negotiate (&rest args) (nconc (car args) mew--advice-tls-parameters-plist)) -;;; -;;; Functions to handle tunneling by an external program. The -;;; external program must be capable of bidirectional communications -;;; via stdin and stdout and forward the data stream from/to the final -;;; destination. TLS and STARTTLS will be handled by GnuTLS. -;;; -(defun mew--tun-type (tun-plist) - (plist-get tun-plist :type)) -(setq mew--advice-tun-command nil) -(defun mew--advice-tun-command (case host port tun-plist) - (cond - ((eq (mew--tun-type tun-plist) 'ssh) - (format "%s -W %s:%s -oPort=%s %s" - (mew-ssh-prog case) - (plist-get tun-plist :host) - (plist-get tun-plist :port) - port host)) - (t nil))) -;; Override function for TLS connection over tunnel. -(defun mew--advice-override-open-gnutls-stream - (name buffer host service &optional nowait) - ;; Must be equivalent to - ;; (open-gnutls-stream name buffer host service &optional nowait) - (make-process args - :command mew--advice-tun-command - :coding 'utf-8-unix - :connection-type 'pipe - :noquery t - :stderr nil) - ;; Do gnutls-negotiate here - ) -;; Override function for PLAIN or STARTTLS connection over tunnel. -(defun mew--advice-override-make-network-process (&rest args) - ;; PLAIN: make-network-process - ;; STARTTLS: make-network-process -> gnutls-negotiate - (make-process args - :command mew--advice-tun-command - :coding 'utf-8-unix - :connection-type 'pipe - :noquery t - :stderr nil)) -;;; -;;; XXX: This conditional can be removed safely. -(if (fboundp 'make-network-process) - (defun mew-open-network-stream (name buf server port proto sslnp - starttlsp case &optional tun-plist) - (let* ((tun-type (mew--tun-type tun-plist)) - (mew--advice-tun-command (mew--advice-tun-command - case server port tun-plist)) - (status-msg (format "Opening a %s connection %s%s%s..." - (if sslnp "TLS" "TCP") - (if sslnp "(GnuTLS" "") - (if sslnp - (if starttlsp ", STARTTLS)" ")") - "") - (if (eq tun-type 'ssh) " over SSH" - ""))) - family nowait pro tlsparams) - ;; SMTP-specific - (when (and (eq proto 'smtp) mew-inherit-submission) - (setq family mew-smtp-submission-family) - (setq nowait t)) - ;; TLS does not work for Unix-domain socket for now. - (when (and (not sslnp) - (stringp port) (string-match "^/" port)) - (setq family 'local) - (setq server 'local)) - (cond - ;; Both GnuTLS and NSM are mandatory for 'native. - ((and sslnp (or (not (fboundp 'gnutls-available-p)) - (not (gnutls-available-p)) - (not (fboundp 'gnutls-boot-parameters)) - (not (fboundp 'nsm-level)))) - (setq pro - (list nil - :error t - :status-msg - (concat status-msg - "FAILED (GnuTLS or NSM not available)")))) - ((and sslnp) - (let ((hostname (puny-encode-domain server)) - ;; Note: on Emacs 26.3 and prior GnuTLS always uses - ;; the system-wide default path first even if - ;; trustfiles is specified. - (trustfiles (mew-ssl-trustfiles case)) - (nsm-noninteractive nil) - (network-security-level network-security-level)) - (when (eq (mew-ssl-verify-level case) 0) - ;; Forcibly disable verification. - (setq network-security-level 'low)) - (setq tlsparams - (cons 'gnutls-x509pki - ;; XXX: (gnutls-boot-parameters) returns - ;; :priority key instead of :priority-string - ;; while (gnutls-negotiate) accepts - ;; :priority-string. To handle this odd - ;; mismatch, create :priority-string in the - ;; result of (gnutls-boot-parameters) here. - (let ((boot-params - (gnutls-boot-parameters - :type 'gnutls-x509pki - :keylist (mew-ssl-client-keycert-list case) - :trustfiles (mew-ssl-trustfiles case) - :priority-string (mew-ssl-algorithm-priority case) - :min-prime-bits mew-ssl-min-prime-bits - ;; - ;; mew-ssl-verify-error should be nil - ;; to defer verification to NSM. Note - ;; that gnutls-verify-error overrides - ;; verify-error when it is nil. - ;; Setting gnutls-verify-error to t is - ;; also discouraged. - ;; - :verify-error mew-ssl-verify-error - :hostname hostname))) - (plist-put boot-params - :priority-string - (plist-get boot-params :priority))))) - ;; debug output: TLS params - (funcall (intern (concat "mew-" (symbol-name proto) "-debug")) - (format "TLS proto=%s, server=%s:%s, starttlsp=%s" - proto hostname port starttlsp) - (format "verify-level=%s, network-security-level=%s, nowait=%s, tlsparams=%s" - (mew-ssl-verify-level case) network-security-level - nowait - (apply #'concat (mapcar (lambda (a) (format "%s " a)) tlsparams)))) - (let ((type (if starttlsp 'starttls 'tls))) - (with-temp-message status-msg - ;; XXX: (open-network-stream) does not pass tlsparams - ;; to (gnutls-negotiate) to start STARTTLS. As a - ;; workaround, add an advice to forcibly append the - ;; parameters. This should be fixed in - ;; (open-network-stream). - (setq mew--advice-tls-parameters-plist (cdr tlsparams)) - (advice-add 'gnutls-negotiate - :filter-args #'mew--advice-filter-args-gnutls-negotiate) - ;; - ;; Override key functions when using a tunnel. - (cond - ((and mew--advice-tun-command (eq type 'tls)) - (advice-add 'open-gnutls-stream - :override #'mew--advice-override-open-gnutls-stream)) - (mew--advice-tun-command - (advice-add 'make-network-process - :override #'mew--advice-override-make-network-process))) - (setq pro (open-network-stream - name buf server port - :type type - :return-list t - :nowait nowait - :always-query-capabilities - (mew-starttls-get-param proto :always-query-capabilities nil) - :capability-command - (mew-starttls-get-param proto :capability-command t) - :end-of-capability - (mew-starttls-get-param proto :end-of-capability t) - :end-of-command - (mew-starttls-get-param proto :end-of-command t) - :success - (mew-starttls-get-param proto :success t) - :starttls-function - (mew-starttls-get-param proto :starttls-function nil))) - (cond - ((and mew--advice-tun-command (eq type 'tls)) - (advice-remove 'open-gnutls-stream - #'mew--advice-override-open-gnutls-stream)) - (mew--advice-tun-command - (advice-remove 'make-network-process - #'mew--advice-override-make-network-process))) - (advice-remove 'gnutls-negotiate - #'mew--advice-filter-args-gnutls-negotiate) - ;; - ;; When a validation error occurs, (car pro) will be nil. - ;; - (let ((plainp (eq 'plain (plist-get (cdr pro) :type))) - (greeting (plist-get (cdr pro) :greeting)) - (openp (and (car pro) - (eq 'open (process-status (car pro))))) - ;; Falling back to a plain connection is allowed - ;; only when verify-level < 2. - (needtlsp (and starttlsp - (> (mew-ssl-verify-level case) 1)))) - (cond - ((not openp) - (let ((msg (plist-get (cdr pro) :error))) - (setq pro (list nil - :error t - :status-msg - (concat status-msg "FAILED: " msg))))) - ((and plainp needtlsp) - (delete-process (car pro)) - (setq pro (list nil - :error t - :status-msg - (concat status-msg "FAILED")))) - (t - (setq pro (list - (car pro) - :error nil)) - (cond - ((eq proto 'pop) - (setq mew--gnutls-pop-greeting greeting)) - ((eq proto 'imap) - (setq mew--gnutls-imap-greeting greeting)))))))))) - (t + +(defun mew-open-network-stream (name buf server port proto sslnp starttlsp case) + (let* ((tun-type nil) + (status-msg (format "Opening a %s connection %s%s%s..." + (if sslnp "TLS" "TCP") + (if sslnp "(GnuTLS" "") + (if sslnp + (if starttlsp ", STARTTLS)" ")") + "") + (if (eq tun-type 'ssh) " over SSH" + ""))) + family nowait pro tlsparams) + ;; SMTP-specific + (when (and (eq proto 'smtp) mew-inherit-submission) + (setq family mew-smtp-submission-family) + (setq nowait t)) + ;; TLS does not work for Unix-domain socket for now. + (when (and (not sslnp) + (stringp port) (string-match "^/" port)) + (setq family 'local) + (setq server 'local)) + (cond + ;; Both GnuTLS and NSM are mandatory for 'native. + ((and sslnp (or (not (fboundp 'gnutls-available-p)) + (not (gnutls-available-p)) + (not (fboundp 'gnutls-boot-parameters)) + (not (fboundp 'nsm-level)))) + (setq pro + (list nil + :error t + :status-msg + (concat status-msg + "FAILED (GnuTLS or NSM not available)")))) + (sslnp + (let ((hostname (puny-encode-domain server)) + ;; Note: on Emacs 26.3 and prior GnuTLS always uses + ;; the system-wide default path first even if + ;; trustfiles is specified. + (trustfiles (mew-ssl-trustfiles case)) + (nsm-noninteractive nil) + (network-security-level network-security-level)) + (when (eq (mew-ssl-verify-level case) 0) + ;; Forcibly disable verification. + (setq network-security-level 'low)) + (setq tlsparams + (cons 'gnutls-x509pki + ;; XXX: (gnutls-boot-parameters) returns + ;; :priority key instead of :priority-string + ;; while (gnutls-negotiate) accepts + ;; :priority-string. To handle this odd + ;; mismatch, create :priority-string in the + ;; result of (gnutls-boot-parameters) here. + (let ((boot-params + (gnutls-boot-parameters + :type 'gnutls-x509pki + :keylist (mew-ssl-client-keycert-list case) + :trustfiles (mew-ssl-trustfiles case) + :priority-string (mew-ssl-algorithm-priority case) + :min-prime-bits mew-ssl-min-prime-bits + ;; + ;; mew-ssl-verify-error should be nil + ;; to defer verification to NSM. Note + ;; that gnutls-verify-error overrides + ;; verify-error when it is nil. + ;; Setting gnutls-verify-error to t is + ;; also discouraged. + ;; + :verify-error mew-ssl-verify-error + :hostname hostname))) + (plist-put boot-params + :priority-string + (plist-get boot-params :priority))))) + ;; debug output: TLS params + (funcall (intern (concat "mew-" (symbol-name proto) "-debug")) + (format "TLS proto=%s, server=%s:%s, starttlsp=%s" + proto hostname port starttlsp) + (format "verify-level=%s, network-security-level=%s, nowait=%s, tlsparams=%s" + (mew-ssl-verify-level case) network-security-level + nowait + (apply #'concat (mapcar (lambda (a) (format "%s " a)) tlsparams)))) + (let ((type (if starttlsp 'starttls 'tls))) (with-temp-message status-msg - (let ((params (list :name name :buffer buf - :service port :family family - :nowait nowait)) - ;; :host will be ignored when family is 'local. - (host (if (not (eq family 'local)) - (list :host server)))) - (setq pro (list - (apply #'make-network-process (nconc params host)) - :greeting nil - :capabilities nil - :type 'plain - :error nil)))))) - (if (and (eq proto 'smtp) nowait) - (run-at-time mew-smtp-submission-timeout nil 'mew-smtp-submission-timeout pro)) - (when (plist-get (cdr pro) :error) - (message (plist-get (cdr pro) :status-msg))) - pro)) - (defun mew-open-network-stream (name buf server port proto sslnp starttlsp case) - (open-network-stream name buf server port :return-list t))) + ;; XXX: (open-network-stream) does not pass tlsparams + ;; to (gnutls-negotiate) to start STARTTLS. As a + ;; workaround, add an advice to forcibly append the + ;; parameters. This should be fixed in + ;; (open-network-stream). + (setq mew--advice-tls-parameters-plist (cdr tlsparams)) + (advice-add 'gnutls-negotiate + :filter-args #'mew--advice-filter-args-gnutls-negotiate) + ;; + ;; Override key functions when using a tunnel. + (setq pro (open-network-stream + name buf server port + :type type + :return-list t + :nowait nowait + :always-query-capabilities + (mew-starttls-get-param proto :always-query-capabilities nil) + :capability-command + (mew-starttls-get-param proto :capability-command t) + :end-of-capability + (mew-starttls-get-param proto :end-of-capability t) + :end-of-command + (mew-starttls-get-param proto :end-of-command t) + :success + (mew-starttls-get-param proto :success t) + :starttls-function + (mew-starttls-get-param proto :starttls-function nil))) + (advice-remove 'gnutls-negotiate + #'mew--advice-filter-args-gnutls-negotiate) + ;; + ;; When a validation error occurs, (car pro) will be nil. + ;; + (let ((plainp (eq 'plain (plist-get (cdr pro) :type))) + (greeting (plist-get (cdr pro) :greeting)) + (openp (and (car pro) + (eq 'open (process-status (car pro))))) + ;; Falling back to a plain connection is allowed + ;; only when verify-level < 2. + (needtlsp (and starttlsp + (> (mew-ssl-verify-level case) 1)))) + (cond + ((not openp) + (let ((msg (plist-get (cdr pro) :error))) + (setq pro (list nil + :error t + :status-msg + (concat status-msg "FAILED: " msg))))) + ((and plainp needtlsp) + (delete-process (car pro)) + (setq pro (list nil + :error t + :status-msg + (concat status-msg "FAILED")))) + (t + (setq pro (list + (car pro) + :error nil)) + (cond + ((eq proto 'pop) + (setq mew--gnutls-pop-greeting greeting)) + ((eq proto 'imap) + (setq mew--gnutls-imap-greeting greeting)))))))))) + (t + (with-temp-message status-msg + (let ((params (list :name name :buffer buf + :service port :family family + :nowait nowait)) + ;; :host will be ignored when family is 'local. + (host (if (not (eq family 'local)) + (list :host server)))) + (setq pro (list + (apply #'make-network-process (nconc params host)) + :greeting nil + :capabilities nil + :type 'plain + :error nil)))))) + (if (and (eq proto 'smtp) nowait) + (run-at-time mew-smtp-submission-timeout nil 'mew-smtp-submission-timeout pro)) + (when (plist-get (cdr pro) :error) + (message (plist-get (cdr pro) :status-msg))) + pro)) (defun mew-smtp-open (pnm case server port starttlsp) (let ((sprt (mew-*-to-port port)) @@ -787,8 +728,7 @@ ;; session is established or upgraded to use TLS because ;; no additional greeting from the server. (mew-smtp-set-status pnm "ehlo") - (mew-smtp-command-ehlo process pnm)) - ))) + (mew-smtp-command-ehlo process pnm))))) (defun mew-smtp-flush-queue (case &optional qfld) (let (msgs) diff --git a/elpa/mew-20240911.749/mew-sort.el b/elpa/mew-20251127.544/mew-sort.el similarity index 99% rename from elpa/mew-20240911.749/mew-sort.el rename to elpa/mew-20251127.544/mew-sort.el index 0dba8846..6ba1a317 100644 --- a/elpa/mew-20240911.749/mew-sort.el +++ b/elpa/mew-20251127.544/mew-sort.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-sort.el --- Sorting messages for Mew ;; Author: Mew developing team diff --git a/elpa/mew-20240911.749/mew-ssh.el b/elpa/mew-20251127.544/mew-ssh.el similarity index 99% rename from elpa/mew-20240911.749/mew-ssh.el rename to elpa/mew-20251127.544/mew-ssh.el index c7934d65..669fddce 100644 --- a/elpa/mew-20240911.749/mew-ssh.el +++ b/elpa/mew-20251127.544/mew-ssh.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-ssh.el ;; Author: Mew developing team diff --git a/elpa/mew-20240911.749/mew-ssl.el b/elpa/mew-20251127.544/mew-ssl.el similarity index 98% rename from elpa/mew-20240911.749/mew-ssl.el rename to elpa/mew-20251127.544/mew-ssl.el index ac0340b9..b81df35c 100644 --- a/elpa/mew-20240911.749/mew-ssl.el +++ b/elpa/mew-20251127.544/mew-ssl.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-ssl.el ;; Author: Mew developing team @@ -75,7 +76,7 @@ keep this as nil.") :starttls-function (lambda (capabilities) (when (string-match-p "STARTTLS" capabilities) - "STARTTLS\r\n")))) + "STARTTLS\r\n")))) )) (defun mew-starttls-get-param (proto key evalp) "Get parameter from mew-ssl-native-starttls-plist" @@ -204,8 +205,8 @@ no extra text.") (insert (format "connect=%s:%d\n" server remoteport)) (if tls (insert (format "protocol=%s\n" tls)))) (mew-frwlet mew-cs-dummy mew-cs-text-for-write - ;; NEVER use call-process-region for privacy reasons - (write-region (point-min) (point-max) file nil 'no-msg)) + ;; NEVER use call-process-region for privacy reasons + (write-region (point-min) (point-max) file nil 'no-msg)) (list file)))) (defun mew-open-ssl-stream (case server serv tls) diff --git a/elpa/mew-20240911.749/mew-summary.el b/elpa/mew-20251127.544/mew-summary.el similarity index 99% rename from elpa/mew-20240911.749/mew-summary.el rename to elpa/mew-20251127.544/mew-summary.el index f5193e42..28ea3b9a 100644 --- a/elpa/mew-20240911.749/mew-summary.el +++ b/elpa/mew-20251127.544/mew-summary.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-summary.el --- Summary mode for Mew ;; Author: Mew developing team diff --git a/elpa/mew-20240911.749/mew-summary2.el b/elpa/mew-20251127.544/mew-summary2.el similarity index 99% rename from elpa/mew-20240911.749/mew-summary2.el rename to elpa/mew-20251127.544/mew-summary2.el index fd2b1e29..648ba9c1 100644 --- a/elpa/mew-20240911.749/mew-summary2.el +++ b/elpa/mew-20251127.544/mew-summary2.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-summary2.el --- Summary mode for Mew ;; Author: Mew developing team diff --git a/elpa/mew-20240911.749/mew-summary3.el b/elpa/mew-20251127.544/mew-summary3.el similarity index 99% rename from elpa/mew-20240911.749/mew-summary3.el rename to elpa/mew-20251127.544/mew-summary3.el index 77cea80c..970b2960 100644 --- a/elpa/mew-20240911.749/mew-summary3.el +++ b/elpa/mew-20251127.544/mew-summary3.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-summary3.el --- Summary mode for Mew ;; Author: Mew developing team diff --git a/elpa/mew-20240911.749/mew-summary4.el b/elpa/mew-20251127.544/mew-summary4.el similarity index 98% rename from elpa/mew-20240911.749/mew-summary4.el rename to elpa/mew-20251127.544/mew-summary4.el index c82ac5ae..c96fdc8f 100644 --- a/elpa/mew-20240911.749/mew-summary4.el +++ b/elpa/mew-20251127.544/mew-summary4.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-summary4.el --- Summary mode for Mew ;; Author: Mew developing team @@ -386,6 +387,25 @@ If executed with `\\[universal-argument]', coding-system is asked." (write-region (point-min) (point-max) file nil 'no-msg))) (mew-mime-image-ext file))))) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; +;;; BIMI-Indicator: +;;; + +(defun mew-summary-bimi () + "Display BIMI logo." + (interactive) + (mew-summary-msg + (let ((file (mew-make-temp-name)) bimi) + (with-current-buffer (mew-buffer-message) + (setq bimi (base64-decode-string (mew-header-get-value mew-bimi-indicator:)))) + (when bimi + (with-temp-buffer + (insert bimi) + (mew-frwlet mew-cs-dummy mew-cs-text-for-write + (write-region (point-min) (point-max) file nil 'no-msg))) + (mew-mime-image-ext file))))) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; Calling a command @@ -481,7 +501,7 @@ If executed with `\\[universal-argument]', you can set the sending case." (defun mew-subprocess-clean-up () (mew-summary-kill-subprocess t) - (remove-hook 'kill-emacs-hook 'mew-subprocess-kil)) + (remove-hook 'kill-emacs-hook 'mew-subprocess-kill)) (defun mew-subprocess-kill () (mew-summary-kill-subprocess t)) @@ -810,7 +830,7 @@ message." "Copy messages marked with `*' to a local folder. If called with `\\[universal-argument]', only messages marked with `*' in the region are handled." - (interactive "P") + (interactive "P") (mew-summary-not-in-draft (let ((mew-use-highlight-x-face nil) (fld (mew-summary-folder-name)) diff --git a/elpa/mew-20240911.749/mew-syntax.el b/elpa/mew-20251127.544/mew-syntax.el similarity index 99% rename from elpa/mew-20240911.749/mew-syntax.el rename to elpa/mew-20251127.544/mew-syntax.el index 7decf4c0..5f3eceb3 100644 --- a/elpa/mew-20240911.749/mew-syntax.el +++ b/elpa/mew-20251127.544/mew-syntax.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-syntax.el --- Internal syntax for Mew ;; Author: Mew developing team @@ -703,8 +704,8 @@ system." ;; text/plain only (mew-syntax-singlepart subsyntax dec part func 'body))))) -;012345678901234567890123456789012345678901234567890123456789012345678901234567 -;<4>snss<27-2 >ss<24+2 >ss<16 > + ;012345678901234567890123456789012345678901234567890123456789012345678901234567 + ;<4>snss<27-2 >ss<24+2 >ss<16 > (defun mew-syntax-format (syntax number dec) (let* ((file (if (not dec) (mew-syntax-get-file syntax))) diff --git a/elpa/mew-20240911.749/mew-thread.el b/elpa/mew-20251127.544/mew-thread.el similarity index 98% rename from elpa/mew-20240911.749/mew-thread.el rename to elpa/mew-20251127.544/mew-thread.el index 96a92694..d5cd9fc9 100644 --- a/elpa/mew-20240911.749/mew-thread.el +++ b/elpa/mew-20251127.544/mew-thread.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-thread.el ;; Author: Mew developing team @@ -782,14 +783,14 @@ a top node, move onto the top of the previous thread." (defun mew-summary-child-local (my-id) (let ((pos (point)) (key (mew-regex-sumsyn-par-id my-id))) - (if (or (re-search-forward key nil t) - (re-search-backward key nil t)) - (progn - (mew-thread-move-cursor) - (mew-summary-display) - t) - (goto-char pos) - nil))) + (if (or (re-search-forward key nil t) + (re-search-backward key nil t)) + (progn + (mew-thread-move-cursor) + (mew-summary-display) + t) + (goto-char pos) + nil))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; @@ -903,11 +904,11 @@ If the children are hidden, they will appear." (mew-decode-syntax-delete) (while (setq here (mew-thread-next-property2 (point) (point-max) 0)) (goto-char here) - (beginning-of-line) - (if (looking-at (concat "^." (regexp-quote (char-to-string mew-mark-thread-root)))) - (mew-thread-graft) - (mew-thread-prune)) - (forward-line)) + (beginning-of-line) + (if (looking-at (concat "^." (regexp-quote (char-to-string mew-mark-thread-root)))) + (mew-thread-graft) + (mew-thread-prune)) + (forward-line)) (mew-thread-move-cursor) (set-buffer-modified-p nil))))) diff --git a/elpa/mew-20240911.749/mew-unix.el b/elpa/mew-20251127.544/mew-unix.el similarity index 99% rename from elpa/mew-20240911.749/mew-unix.el rename to elpa/mew-20251127.544/mew-unix.el index f9b0bb9d..e638ade5 100644 --- a/elpa/mew-20240911.749/mew-unix.el +++ b/elpa/mew-20251127.544/mew-unix.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-unix.el -- Settings for Mew on Unix ;; Author: Mew developing team diff --git a/elpa/mew-20240911.749/mew-vars.el b/elpa/mew-20251127.544/mew-vars.el similarity index 98% rename from elpa/mew-20240911.749/mew-vars.el rename to elpa/mew-20251127.544/mew-vars.el index 6c873409..d9393788 100644 --- a/elpa/mew-20240911.749/mew-vars.el +++ b/elpa/mew-20251127.544/mew-vars.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-vars.el --- Variables and Constants for Mew ;; Author: Mew developing team @@ -168,7 +169,7 @@ really deleted." :type '(choice string (const nil))) (defcustom mew-trash-folder-list nil - "*A list of folders whose messages marked with 'D' are really deleted." + "*A list of folders whose messages marked with `D' are really deleted." :group 'mew-summary :type '(choice (const nil) (repeat string))) @@ -1354,9 +1355,9 @@ of the From: field is used." (const address) (const nickname)))) (defcustom mew-summary-form-mark-delete nil - "*If non-nil, the 'D' mark automatically is put onto + "*If non-nil, the `D' mark automatically is put onto duplicated messages. If a character, use it as a mark -instead of the 'D' mark." +instead of the `D' mark." :group 'mew-summary :type '(choice (const :tag "Use mew-mark-delete" t) (const :tag "Not use" nil) @@ -1743,6 +1744,14 @@ created (if the feature is provided)." :group 'mew-privacy :type 'boolean) +(defcustom mew-master-passwd-encryption 'symmetric + "*Encryption method for a master password file when + mew-master-passwd-type is \"Master Password\"" + :group 'mew-privacy + :type '(choice + (const :tag "Symmetric encryption" symmetric) + (const :tag "Asymmetric (public key) encryption" asymmetric))) + (defcustom mew-master-passwd-type 'master "*Type of the password manager when mew-use-master-passwd is non-nil." :group 'mew-privacy @@ -1952,9 +1961,9 @@ If you cite a message, the citation style of format=flowed is used. " "*Ratio of windows" :group 'mew-env :type '(list - (list (const summary) (list integer integer)) - (list (const message) (list integer integer)) - (list (const draft) (list integer integer)))) + (list (const summary) (list integer integer)) + (list (const message) (list integer integer)) + (list (const draft) (list integer integer)))) (defcustom mew-mode-line-id "Mew: %12b" "*A default value of mode-line-buffer-identification for each Mew mode." @@ -2918,6 +2927,21 @@ in Summary/Virtual mode." :group 'mew-highlight :type 'boolean) +(defcustom mew-use-highlight-bimi mew-icon-p + "*If non-nil, display BIMI logo in Message mode." + :group 'mew-highlight + :type 'boolean) + +(defcustom mew-use-bimi-status-check t + "*If non-nil, check BIMI status before displaying BIMI logo." + :group 'mew-highlight + :type 'boolean) + +(defcustom mew-bimi-logo-size 24 + "*Number of BIMI logo size." + :group 'mew-highlight + :type 'integer) + ;;; ;;; Styles and colors ;;; diff --git a/elpa/mew-20240911.749/mew-vars2.el b/elpa/mew-20251127.544/mew-vars2.el similarity index 98% rename from elpa/mew-20240911.749/mew-vars2.el rename to elpa/mew-20251127.544/mew-vars2.el index 77738ef2..c88856f5 100644 --- a/elpa/mew-20240911.749/mew-vars2.el +++ b/elpa/mew-20251127.544/mew-vars2.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-vars2.el ;; Author: Mew developing team @@ -214,7 +215,7 @@ for privacy reasons.") (defvar mew-mime-content-type-multipart-list `(,mew-ct-mlm ,mew-ct-mla) - "Candidate of 'Content-Type: Multipart/' when CT: is changed + "Candidate of `Content-Type: Multipart/' when CT: is changed in draft buffer.") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -489,6 +490,7 @@ the next version of Mew.") (,mew-in-reply-to: unstruct unstruct) (,mew-x-face: unstruct unstruct) (,mew-face: unstruct unstruct) + (,mew-bimi-indicator: unstruct unstruct) ("Authentication-Results:" unstruct struct2) ;; capitalized ("Domainkey-Signature:" unstruct unstruct) ;; capitalized ("Dkim-Signature:" unstruct unstruct)) ;; capitalized @@ -557,16 +559,17 @@ the next version of Mew.") ("hardfail" mew-face-header-xmew-bad "fail" mew-face-header-xmew-bad "softfail" mew-face-header-xmew-bad)) + ("^BIMI-" nil) ("^Delivered-" nil) ("^List-" nil) ;; RFC 2369 -;; ("^Content-" t) + ;; ("^Content-" t) ("^\\(Mime-Version\\|Lines\\):$" nil) ("^From$" nil) ("^Status:$" nil) ("^Face:$" nil mew-face-header-private mew-face-header-marginal) - ("^\\(X\\|Original\\)-" nil + ("^\\(X\\|Original\\|UI\\)-" nil mew-face-header-private mew-face-header-marginal)) "*An alist of field spec for Message mode. Each spec @@ -581,8 +584,8 @@ present, mew-face-header-marginal is used." :group 'mew-highlight :type '(alist :key-type regexp :value-type - (choice (list boolean) - (list boolean face face)))) + (choice (list boolean) + (list boolean face face)))) ;; cons the position to the spec. (defun mew-nspec-by-key (key) @@ -743,7 +746,7 @@ For more detail, see mew-mark-put-mark and mew-mark-afterstep.") (,mew-mark-delete "delete" 2 nil t nil mew-mark-exec-delete nil) (,mew-mark-unlink "unlink" 2 nil t nil mew-mark-exec-unlink nil) (,mew-mark-refile "refile" 2 t mew-mark-kill-refile mew-mark-unrefile - mew-mark-exec-refile mew-mark-sanity-refile)) + mew-mark-exec-refile mew-mark-sanity-refile)) "*A list of lists which consists of mark, name, level, statefullp, kill-line-p, undo-func, exec-func, and sanity-fucn.") @@ -969,7 +972,7 @@ An example is as follows: (name \"Kazu Yamamoto\") (mail-domain \"example.jp\")))) " -;; bcc can be used but not recommended + ;; bcc can be used but not recommended :group 'mew-env :type '(alist :key-type string :value-type (repeat (cons string string)))) diff --git a/elpa/mew-20240911.749/mew-vars3.el b/elpa/mew-20251127.544/mew-vars3.el similarity index 99% rename from elpa/mew-20240911.749/mew-vars3.el rename to elpa/mew-20251127.544/mew-vars3.el index 3b3b7fa0..b9fdf0f8 100644 --- a/elpa/mew-20240911.749/mew-vars3.el +++ b/elpa/mew-20251127.544/mew-vars3.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-vars3.el ;; Author: Mew developing team diff --git a/elpa/mew-20240911.749/mew-varsx.el b/elpa/mew-20251127.544/mew-varsx.el similarity index 99% rename from elpa/mew-20240911.749/mew-varsx.el rename to elpa/mew-20251127.544/mew-varsx.el index 89ad80ad..b2c053d1 100644 --- a/elpa/mew-20240911.749/mew-varsx.el +++ b/elpa/mew-20251127.544/mew-varsx.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-varsx.el --- Variables depends on other variables ;; Author: Mew developing team diff --git a/elpa/mew-20240911.749/mew-virtual.el b/elpa/mew-20251127.544/mew-virtual.el similarity index 99% rename from elpa/mew-20240911.749/mew-virtual.el rename to elpa/mew-20251127.544/mew-virtual.el index 47e27ec3..87572648 100644 --- a/elpa/mew-20240911.749/mew-virtual.el +++ b/elpa/mew-20251127.544/mew-virtual.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-virtual.el --- Virtual mode for Mew ;; Author: Mew developing team diff --git a/elpa/mew-20240911.749/mew-win32.el b/elpa/mew-20251127.544/mew-win32.el similarity index 95% rename from elpa/mew-20240911.749/mew-win32.el rename to elpa/mew-20251127.544/mew-win32.el index c69c03bc..c2c3f26c 100644 --- a/elpa/mew-20240911.749/mew-win32.el +++ b/elpa/mew-20251127.544/mew-win32.el @@ -1,3 +1,4 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew-win32.el --- Settings for Mew on Win32 ;; Author: Shuichi Kitaguchi @@ -64,23 +65,23 @@ (cons (car sargs) (cons prog args)) (cons program args)))) (defadvice call-process - (before mew-w32-call-process - (program &optional infile buffer display &rest args) - activate) + (before mew-w32-call-process + (program &optional infile buffer display &rest args) + activate) (let ((sargs (mew-w32-argument-editing-function program args))) (setq program (car sargs) args (cdr sargs)))) (defadvice call-process-region - (before mew-w32-call-process-region - (start end program &optional infile buffer display &rest args) - activate) + (before mew-w32-call-process-region + (start end program &optional infile buffer display &rest args) + activate) (let ((sargs (mew-w32-argument-editing-function program args))) (setq program (car sargs) args (cdr sargs)))) (defadvice start-process - (before mew-w32-start-process - (name buffer program &rest program-args) - activate) + (before mew-w32-start-process + (name buffer program &rest program-args) + activate) (let ((sargs (mew-w32-argument-editing-function program program-args))) (setq program (car sargs) program-args (cdr sargs)))))) diff --git a/elpa/mew-20240911.749/mew.el b/elpa/mew-20251127.544/mew.el similarity index 99% rename from elpa/mew-20240911.749/mew.el rename to elpa/mew-20251127.544/mew.el index 7dbdd6a2..f9844648 100644 --- a/elpa/mew-20240911.749/mew.el +++ b/elpa/mew-20251127.544/mew.el @@ -1,11 +1,12 @@ +;;; -*- lexical-binding: nil; -*- ;;; mew.el --- Messaging in the Emacs World ;; Author: Mew developing team ;; Created: Mar 23, 1994 -;; Revised: Feb 10, 2023 +;; Revised: Jul 7, 2025 -;; Package-Version: 20240911.749 -;; Package-Revision: c46d8ee784d0 +;; Package-Version: 20251127.544 +;; Package-Revision: 505fa0a42dd1 ;;; Commentary: @@ -21,7 +22,7 @@ ;;; Mew version ;;; -(defconst mew-version-number "6.9" +(defconst mew-version-number "6.10" "Version number for this version of Mew.") (defconst mew-version (format "Mew version %s" mew-version-number) "Version string for this version of Mew.") diff --git a/elpa/mew-20240911.749/mew.info b/elpa/mew-20251127.544/mew.info similarity index 98% rename from elpa/mew-20240911.749/mew.info rename to elpa/mew-20251127.544/mew.info index 796a4500..50510535 100644 --- a/elpa/mew-20240911.749/mew.info +++ b/elpa/mew-20251127.544/mew.info @@ -15,16 +15,16 @@ END-INFO-DIR-ENTRY  File: mew.info, Node: Top, Next: Overview, Prev: (dir), Up: (dir) -Mew 6.9 Manual -************** +Mew 6.10 Manual +*************** Kazu YAMAMOTO Created 1996/02/18 - Modified 2023/02/11 + Modified 2025/07/07 -This manual documents Mew version 6.9. In addition to this manual, you -may find useful information about Mew from Mew's official home page -(http://www.Mew.org/). +This manual documents Mew version 6.10. In addition to this manual, +you may find useful information about Mew from Mew's official home +page (http://www.Mew.org/). * Menu: @@ -81,7 +81,7 @@ File: mew.info, Node: characteristic, Next: Emacsen, Prev: Overview, Up: Overvie Mew's features ============== -The features of Mew 6.9 are as follows: +The features of Mew 6.10 are as follows: - You can easily display a very complicated structured message. What you should do to view messages is just type `SPC'. @@ -1260,7 +1260,7 @@ Then a buffer like the following is prepared. To: Subject: From: Kazu Yamamoto - X-Mailer: Mew version 6.9 on Emacs 28.2 + X-Mailer: Mew version 6.10 on Emacs 29.4 ---- We call this "Draft mode". In Draft mode, we call the region above @@ -1771,7 +1771,7 @@ following example: To: pooh Subject: the next Sunday From: Piglet - X-Mailer: Mew version 6.9 on Emacs 28.2 + X-Mailer: Mew version 6.10 on Emacs 29.4 ---- Would you like to play with me next Sunday? @@ -1785,7 +1785,7 @@ This message is modified as follows, for example, if it is put into To: winnie-the-pooh@example.net Subject: the next Sunday From: Piglet - X-Mailer: Mew version 6.9 on Emacs 28.2 + X-Mailer: Mew version 6.10 on Emacs 29.4 Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit @@ -1919,7 +1919,7 @@ body. Now the entire draft looks like: To: mew-dist Subject: This is header - X-Mailer: Mew version 6.9 on Emacs 28.2 + X-Mailer: Mew version 6.10 on Emacs 29.4 ---- This is the body. @@ -5174,6 +5174,7 @@ Advanced usage * addr-warn:: Warning addresses * biff:: Biff * edit:: Edit mode +* xauth2:: XOAUTH2  @@ -5607,7 +5608,7 @@ is an example to set it to 10 minutes.  -File: mew.info, Node: edit, Next: Convention, Prev: biff, Up: Tips +File: mew.info, Node: edit, Next: xauth2, Prev: biff, Up: Tips Edit ==== @@ -5647,9 +5648,35 @@ The following is a summary of commands in Edit mode. The same as the other commands in Draft mode + +File: mew.info, Node: xauth2, Next: Convention, Prev: edit, Up: Tips + +XOAUTH2 +======= + +Gmail and other services now require XOAUTH2 as an authentication +mechanism. Mew can also use XOAUTH2 if you configure the +authentication and authorization yourself. Once you have issued your +client ID and client secret, set them in the following variables. + + (setq mew-oauth2-client-id "") + (setq mew-oauth2-client-secret "") + +If everything is set up properly, the authorization screen will be +displayed in your local browser only once when you start using it. The +issued access token will be saved using Mew's password mechanism. + +Currently, communication with XOAUTH2 has been confirmed with gmail +and MS365. For MS365, the following settings are also required. + + (setq mew-oauth2-auth-url "https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize") + (setq mew-oauth2-token-url "https://login.microsoftonline.com/organizations/oauth2/v2.0/token") + (setq mew-oauth2-resource-url "https://outlook.office.com/IMAP.AccessAsUser.All https://outlook.office.com/SMTP.Send offline_access") + +  -File: mew.info, Node: Convention, Next: Implementation, Prev: edit, Up: Top +File: mew.info, Node: Convention, Next: Implementation, Prev: xauth2, Up: Top E-mail convention ***************** @@ -5798,7 +5825,7 @@ Copyright Mew conforms the following copyright. -Copyright (C) 1994-2023 Mew developing team. +Copyright (C) 1994-2025 Mew developing team. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -5976,6 +6003,12 @@ Variable Index * mew-nntp-user: nntp. * mew-nntp2-flush-hook: hooks. * mew-nntp2-sentinel-hook: hooks. +* mew-oauth2-auth-url: xauth2. (line 5) +* mew-oauth2-client-id: xauth2. (line 5) +* mew-oauth2-client-secret: xauth2. (line 5) +* mew-oauth2-redirect-url: xauth2. (line 5) +* mew-oauth2-resource-url: xauth2. (line 5) +* mew-oauth2-token-url: xauth2. (line 5) * mew-pack-hook: hooks. * mew-pick-pattern-list: condition. (line 5) * mew-pop-auth-list: pop. @@ -6403,113 +6436,114 @@ Key Index  Tag table: Node: Top285 -Node: Overview1546 -Node: characteristic2439 -Node: Emacsen4165 -Node: modes4382 -Node: folder convention5149 -Node: configuration8201 -Node: password10974 -Node: start15276 -Node: Viewing16444 -Node: singlepart17740 -Node: multipart19229 -Node: analysis22460 -Node: cipher-viewing26409 -Node: retrieving31435 -Node: moving35444 -Node: sum-write38092 -Node: features40469 -Node: status-update42949 -Node: invalid43974 -Node: Composing46174 -Node: header48222 -Node: cheader49222 -Node: addr-comp51024 -Node: addrbook52902 -Node: auto-alias56095 -Node: addr-comp157816 -Node: addr-comp260238 -Node: send62455 -Node: cite65546 -Node: mime-comp67792 -Node: charset-guess75139 -Node: longline78826 -Node: reply80654 -Node: forward84472 -Node: resend85345 -Node: shortcut87418 -Node: mark-b-comp92860 -Node: pgp-key95825 -Node: anonymous96706 -Node: Marks98273 -Node: unread mark99917 -Node: delete mark101418 -Node: refile mark103661 -Node: target mark105272 -Node: escape mark106903 -Node: unmark107758 -Node: mark change108737 -Node: sync110181 -Node: off-line111359 -Node: mew-mark113209 -Node: Refile113931 -Node: by-folder115791 -Node: by-alist117688 -Node: by-thread119768 -Node: by-from-folder120624 -Node: by-from121981 -Node: by-newsgroups123559 -Node: by-default123894 -Node: guess-rule124348 -Node: auto-refile126134 -Node: copy-msg128346 -Node: Virtual129614 -Node: selection131274 -Node: sorting131969 -Node: dialog133812 -Node: search134943 -Node: condition136108 -Node: dbsearch138363 -Node: keyword139587 -Node: thread140444 -Node: thread-op141704 -Node: Quit143874 -Node: Customize144423 -Node: summary-mode145238 -Node: message-mode149398 -Node: draft-mode153152 -Node: charset156119 -Node: highlight158325 -Node: hooks161301 -Node: pop165766 -Node: imap167567 -Node: nntp169252 -Node: smtp170752 -Node: config173807 -Node: config2179751 -Node: custom-misc181267 -Node: Tips182288 -Node: region183011 -Node: visiting183701 -Node: SSH184231 -Node: TLS/SSL185197 -Node: Stunnel186222 -Node: GnuTLS188260 -Node: TLS/SSL2191466 -Node: spam192993 -Node: spam2195289 -Node: addr-warn196620 -Node: biff197748 -Node: edit198506 -Node: Convention199782 -Node: Implementation201850 -Node: Avail204213 -Node: obtain204520 -Node: ml204812 -Node: Copyright205088 -Node: Privacy Policy207037 -Node: Variable Index207292 -Node: Key Index223210 +Node: Overview1549 +Node: characteristic2442 +Node: Emacsen4169 +Node: modes4386 +Node: folder convention5153 +Node: configuration8205 +Node: password10978 +Node: start15280 +Node: Viewing16448 +Node: singlepart17744 +Node: multipart19233 +Node: analysis22464 +Node: cipher-viewing26413 +Node: retrieving31439 +Node: moving35448 +Node: sum-write38096 +Node: features40473 +Node: status-update42953 +Node: invalid43978 +Node: Composing46178 +Node: header48227 +Node: cheader49227 +Node: addr-comp51029 +Node: addrbook52907 +Node: auto-alias56100 +Node: addr-comp157821 +Node: addr-comp260243 +Node: send62460 +Node: cite65553 +Node: mime-comp67799 +Node: charset-guess75147 +Node: longline78834 +Node: reply80662 +Node: forward84480 +Node: resend85353 +Node: shortcut87426 +Node: mark-b-comp92868 +Node: pgp-key95833 +Node: anonymous96714 +Node: Marks98281 +Node: unread mark99925 +Node: delete mark101426 +Node: refile mark103669 +Node: target mark105280 +Node: escape mark106911 +Node: unmark107766 +Node: mark change108745 +Node: sync110189 +Node: off-line111367 +Node: mew-mark113217 +Node: Refile113939 +Node: by-folder115799 +Node: by-alist117696 +Node: by-thread119776 +Node: by-from-folder120632 +Node: by-from121989 +Node: by-newsgroups123567 +Node: by-default123902 +Node: guess-rule124356 +Node: auto-refile126142 +Node: copy-msg128354 +Node: Virtual129622 +Node: selection131282 +Node: sorting131977 +Node: dialog133820 +Node: search134951 +Node: condition136116 +Node: dbsearch138371 +Node: keyword139595 +Node: thread140452 +Node: thread-op141712 +Node: Quit143882 +Node: Customize144431 +Node: summary-mode145246 +Node: message-mode149406 +Node: draft-mode153160 +Node: charset156127 +Node: highlight158333 +Node: hooks161309 +Node: pop165774 +Node: imap167575 +Node: nntp169260 +Node: smtp170760 +Node: config173815 +Node: config2179759 +Node: custom-misc181275 +Node: Tips182296 +Node: region183059 +Node: visiting183749 +Node: SSH184279 +Node: TLS/SSL185245 +Node: Stunnel186270 +Node: GnuTLS188308 +Node: TLS/SSL2191514 +Node: spam193041 +Node: spam2195337 +Node: addr-warn196668 +Node: biff197796 +Node: edit198554 +Node: xauth2199825 +Node: Convention200961 +Node: Implementation203031 +Node: Avail205394 +Node: obtain205701 +Node: ml205993 +Node: Copyright206269 +Node: Privacy Policy208218 +Node: Variable Index208473 +Node: Key Index224793  End tag table diff --git a/elpa/mew-20240911.749/mew.ja.info b/elpa/mew-20251127.544/mew.ja.info similarity index 98% rename from elpa/mew-20240911.749/mew.ja.info rename to elpa/mew-20251127.544/mew.ja.info index 637d0657..45c6f1a7 100644 --- a/elpa/mew-20240911.749/mew.ja.info +++ b/elpa/mew-20251127.544/mew.ja.info @@ -15,14 +15,14 @@ END-INFO-DIR-ENTRY  File: mew.ja.info, Node: Top, Next: Overview, Prev: (dir), Up: (dir) -Mew 6.9 マニュアル -****************** +Mew 6.10 マニュアル +******************* 山本和彦 作成 1996/02/19 - 更新 2023/02/11 + 更新 2025/07/07 -このマニュアルでは、Mew バージョン 6.9 について解説します。このマニュ +このマニュアルでは、Mew バージョン 6.10 について解説します。このマニュ アルの他に、Mew に関する有益な情報は Mew の公式ホームページ (http://www.Mew.org/)から得られるかもしれません。 @@ -81,7 +81,7 @@ File: mew.ja.info, Node: characteristic, Next: Emacsen, Prev: Overview, Up: Over Mew の特長 ========== -Mew バージョン 6.9 の特長を以下に示します。 +Mew バージョン 6.10 の特長を以下に示します。 - 複雑な構造を持つメッセージを簡単に表示できます。メッセージを表示 する作業は、`SPC' を押すだけです。 @@ -1217,7 +1217,7 @@ File: mew.ja.info, Node: Composing, Next: header, Prev: invalid, Up: Top To: Subject: From: Kazu Yamamoto - X-Mailer: Mew version 6.9 on Emacs 28.2 + X-Mailer: Mew version 6.10 on Emacs 29.4 ---- これを Draft モードといいます。Draft モードにおいて、"----" より上をヘッ @@ -1700,7 +1700,7 @@ File: mew.ja.info, Node: send, Next: cite, Prev: addr-comp2, Up: Composing To: pooh Subject: 明日の日曜日 From: Piglet - X-Mailer: Mew version 6.9 on Emacs 28.2 + X-Mailer: Mew version 6.10 on Emacs 29.4 ---- 明日の日曜日、遊びませんか? @@ -1714,7 +1714,7 @@ File: mew.ja.info, Node: send, Next: cite, Prev: addr-comp2, Up: Composing To: winnie-the-pooh@example.net Subject: =?iso-2022-jp?B?GyRCTEBGfCRORnxNS0Z8GyhC?= From: Piglet - X-Mailer: Mew version 6.9 on Emacs 28.2 + X-Mailer: Mew version 6.10 on Emacs 29.4 Mime-Version: 1.0 Content-Type: Text/Plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit @@ -1842,7 +1842,7 @@ File: mew.ja.info, Node: mime-comp, Next: charset-guess, Prev: cite, Up: Composi To: mew-dist Subject: ここがヘッダ From: Kazu Yamamoto - X-Mailer: Mew version 6.9 on Emacs 28.2 + X-Mailer: Mew version 6.10 on Emacs 29.4 ---- 本文だよ。 @@ -5026,6 +5026,7 @@ File: mew.ja.info, Node: Tips, Next: region, Prev: custom-misc, Up: Top * addr-warn:: アドレスの警告 * biff:: Biff * edit:: Edit モード +* xauth2:: XOAUTH2  @@ -5442,7 +5443,7 @@ Biff の対象となるサーバとプロトコルは、Mew の起動時に `mew  -File: mew.ja.info, Node: edit, Next: Convention, Prev: biff, Up: Tips +File: mew.ja.info, Node: edit, Next: xauth2, Prev: biff, Up: Tips Edit モード =========== @@ -5482,9 +5483,35 @@ Edit モードでのコマンドをまとめます。 Draft モードと同じ。 + +File: mew.ja.info, Node: xauth2, Next: Convention, Prev: edit, Up: Tips + +XOAUTH2 +======= + +gmailなどが、認証の仕組みとしてXOAUTH2を要求するようになりました。Mew +でも、自分で認証認可の設定をすれば、XOAUTH2が利用できます。クライアン +トIDとクライアントシークレットを発行できたら、以下の変数に設定してくだ +さい。 + + (setq mew-oauth2-client-id "") + (setq mew-oauth2-client-secret "") + +うまく設定できれば、使い始めるときに、一回だけローカルのブラウザに認可 +画面が表示されます。発行されたアクセストークンは、Mewのパスワードの仕 +組みで保存されます。 + +現在、XOAUTH2で通信が確認できているのはgmailとMS365です。MS365では、以 +下の設定も必要です。 + + (setq mew-oauth2-auth-url "https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize") + (setq mew-oauth2-token-url "https://login.microsoftonline.com/organizations/oauth2/v2.0/token") + (setq mew-oauth2-resource-url "https://outlook.office.com/IMAP.AccessAsUser.All https://outlook.office.com/SMTP.Send offline_access") + +  -File: mew.ja.info, Node: Convention, Next: Implementation, Prev: edit, Up: Top +File: mew.ja.info, Node: Convention, Next: Implementation, Prev: xauth2, Up: Top メッセージの作法 **************** @@ -5626,7 +5653,7 @@ File: mew.ja.info, Node: Copyright, Next: Privacy Policy, Prev: ml, Up: Top Mew は以下の著作権に従います。 -Copyright (C) 1994-2023 Mew developing team. +Copyright (C) 1994-2025 Mew developing team. All rights reserved. 変更の有無にかかわらず、ソースおよびバイナリ形式の再配布および利用は、 @@ -5803,6 +5830,12 @@ File: mew.ja.info, Node: Variable Index, Next: Key Index, Prev: Privacy Policy, * mew-nntp-user: nntp. * mew-nntp2-flush-hook: hooks. * mew-nntp2-sentinel-hook: hooks. +* mew-oauth2-auth-url: xauth2. (line 5) +* mew-oauth2-client-id: xauth2. (line 5) +* mew-oauth2-client-secret: xauth2. (line 5) +* mew-oauth2-redirect-url: xauth2. (line 5) +* mew-oauth2-resource-url: xauth2. (line 5) +* mew-oauth2-token-url: xauth2. (line 5) * mew-pack-hook: hooks. * mew-pick-pattern-list: condition. (line 5) * mew-pop-auth-list: pop. @@ -6230,113 +6263,114 @@ File: mew.ja.info, Node: Key Index, Prev: Variable Index, Up: Top  Tag table: Node: Top289 -Node: Overview1368 -Node: characteristic2011 -Node: Emacsen3023 -Node: modes3201 -Node: folder convention3711 -Node: configuration5586 -Node: password7915 -Node: start10583 -Node: Viewing11349 -Node: singlepart12328 -Node: multipart13232 -Node: analysis15499 -Node: cipher-viewing17760 -Node: retrieving20639 -Node: moving23205 -Node: sum-write24770 -Node: features26234 -Node: status-update27808 -Node: invalid28509 -Node: Composing29805 -Node: header31313 -Node: cheader31988 -Node: addr-comp33193 -Node: addrbook34188 -Node: auto-alias36327 -Node: addr-comp137337 -Node: addr-comp239032 -Node: send40393 -Node: cite42503 -Node: mime-comp43904 -Node: charset-guess49483 -Node: longline51703 -Node: reply52839 -Node: forward55845 -Node: resend56437 -Node: shortcut57618 -Node: mark-b-comp61030 -Node: pgp-key63444 -Node: anonymous64019 -Node: Marks64994 -Node: unread mark66137 -Node: delete mark67009 -Node: refile mark68594 -Node: target mark69587 -Node: escape mark70648 -Node: unmark71163 -Node: mark change71780 -Node: sync72645 -Node: off-line73338 -Node: mew-mark74605 -Node: Refile75133 -Node: by-folder76281 -Node: by-alist77462 -Node: by-thread79116 -Node: by-from-folder79732 -Node: by-from80685 -Node: by-newsgroups81896 -Node: by-default82131 -Node: guess-rule82488 -Node: auto-refile84016 -Node: copy-msg85717 -Node: Virtual86586 -Node: selection87704 -Node: sorting88210 -Node: dialog89488 -Node: search90154 -Node: condition90791 -Node: dbsearch92529 -Node: keyword93411 -Node: thread93910 -Node: thread-op94715 -Node: Quit96031 -Node: Customize96454 -Node: summary-mode97142 -Node: message-mode99931 -Node: draft-mode102765 -Node: charset104860 -Node: highlight106486 -Node: hooks108538 -Node: pop111944 -Node: imap113102 -Node: nntp114189 -Node: smtp115384 -Node: config117542 -Node: config2122070 -Node: custom-misc123226 -Node: Tips123943 -Node: region124595 -Node: visiting125104 -Node: SSH125466 -Node: TLS/SSL126054 -Node: Stunnel126795 -Node: GnuTLS128133 -Node: TLS/SSL2129957 -Node: spam131043 -Node: spam2132799 -Node: addr-warn133915 -Node: biff134688 -Node: edit135170 -Node: Convention135930 -Node: Implementation136970 -Node: Avail138429 -Node: obtain138678 -Node: ml138902 -Node: Copyright139081 -Node: Privacy Policy140089 -Node: Variable Index140287 -Node: Key Index156192 +Node: Overview1371 +Node: characteristic2014 +Node: Emacsen3027 +Node: modes3205 +Node: folder convention3715 +Node: configuration5590 +Node: password7919 +Node: start10587 +Node: Viewing11353 +Node: singlepart12332 +Node: multipart13236 +Node: analysis15503 +Node: cipher-viewing17764 +Node: retrieving20643 +Node: moving23209 +Node: sum-write24774 +Node: features26238 +Node: status-update27812 +Node: invalid28513 +Node: Composing29809 +Node: header31318 +Node: cheader31993 +Node: addr-comp33198 +Node: addrbook34193 +Node: auto-alias36332 +Node: addr-comp137342 +Node: addr-comp239037 +Node: send40398 +Node: cite42510 +Node: mime-comp43911 +Node: charset-guess49491 +Node: longline51711 +Node: reply52847 +Node: forward55853 +Node: resend56445 +Node: shortcut57626 +Node: mark-b-comp61038 +Node: pgp-key63452 +Node: anonymous64027 +Node: Marks65002 +Node: unread mark66145 +Node: delete mark67017 +Node: refile mark68602 +Node: target mark69595 +Node: escape mark70656 +Node: unmark71171 +Node: mark change71788 +Node: sync72653 +Node: off-line73346 +Node: mew-mark74613 +Node: Refile75141 +Node: by-folder76289 +Node: by-alist77470 +Node: by-thread79124 +Node: by-from-folder79740 +Node: by-from80693 +Node: by-newsgroups81904 +Node: by-default82139 +Node: guess-rule82496 +Node: auto-refile84024 +Node: copy-msg85725 +Node: Virtual86594 +Node: selection87712 +Node: sorting88218 +Node: dialog89496 +Node: search90162 +Node: condition90799 +Node: dbsearch92537 +Node: keyword93419 +Node: thread93918 +Node: thread-op94723 +Node: Quit96039 +Node: Customize96462 +Node: summary-mode97150 +Node: message-mode99939 +Node: draft-mode102773 +Node: charset104868 +Node: highlight106494 +Node: hooks108546 +Node: pop111952 +Node: imap113110 +Node: nntp114197 +Node: smtp115392 +Node: config117550 +Node: config2122078 +Node: custom-misc123234 +Node: Tips123951 +Node: region124643 +Node: visiting125152 +Node: SSH125514 +Node: TLS/SSL126102 +Node: Stunnel126843 +Node: GnuTLS128181 +Node: TLS/SSL2130005 +Node: spam131091 +Node: spam2132847 +Node: addr-warn133963 +Node: biff134736 +Node: edit135218 +Node: xauth2135973 +Node: Convention136783 +Node: Implementation137825 +Node: Avail139284 +Node: obtain139533 +Node: ml139757 +Node: Copyright139936 +Node: Privacy Policy140944 +Node: Variable Index141142 +Node: Key Index157449  End tag table -- 2.47.3