From 4ee012cad50515d5e02d88618ad21fa4c4b4f0f4 Mon Sep 17 00:00:00 2001 From: Andreas Gerler Date: Thu, 23 Nov 2023 19:26:47 +0100 Subject: [PATCH] update mew Signed-off-by: Andreas Gerler --- elpa/mew-20200130.145/mew-pkg.el | 7 - .../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 | 8 +- .../mew-attach.el | 4 +- .../mew-auth.el | 76 +++- .../mew-autoloads.el | 139 ++++---- .../mew-blvs.el | 4 +- .../mew-bq.el | 31 +- .../mew-cache.el | 4 +- .../mew-complete.el | 4 +- .../mew-config.el | 24 +- .../mew-const.el | 13 +- .../mew-darwin.el | 4 +- .../mew-decode.el | 4 +- .../mew-demo.el | 27 +- .../mew-draft.el | 46 +-- .../mew-edit.el | 4 +- .../mew-encode.el | 4 +- .../mew-env.el | 31 +- elpa/mew-20230415.633/mew-env0.el | 21 ++ .../mew-exec.el | 4 +- .../mew-ext.el | 4 +- .../mew-fib.el | 4 +- .../mew-func.el | 21 +- .../mew-gemacs.el | 9 +- .../mew-header.el | 10 +- .../mew-highlight.el | 4 +- .../mew-imap.el | 106 +++++- .../mew-imap2.el | 59 +++- .../mew-key.el | 4 +- .../mew-lang-jp.el | 5 +- .../mew-lang-kr.el | 4 +- .../mew-lang-latin.el | 4 +- .../mew-local.el | 7 +- .../mew-mark.el | 4 +- .../mew-message.el | 4 +- .../mew-mime.el | 7 +- .../mew-minibuf.el | 4 +- .../mew-mule.el | 7 +- .../mew-mule3.el | 8 +- .../mew-net.el | 10 +- .../mew-nntp.el | 51 ++- .../mew-nntp2.el | 47 ++- .../mew-passwd.el | 111 +++++- .../mew-pgp.el | 4 +- .../mew-pick.el | 4 +- elpa/mew-20230415.633/mew-pkg.el | 9 + .../mew-pop.el | 64 +++- .../mew-refile.el | 5 +- .../mew-scan.el | 15 +- .../mew-search.el | 4 +- .../mew-smime.el | 6 +- .../mew-smtp.el | 328 ++++++++++++++++-- .../mew-sort.el | 5 +- .../mew-ssh.el | 4 +- .../mew-ssl.el | 193 ++++++++--- .../mew-summary.el | 40 +-- .../mew-summary2.el | 6 +- .../mew-summary3.el | 4 +- .../mew-summary4.el | 6 +- .../mew-syntax.el | 8 +- .../mew-thread.el | 4 +- .../mew-unix.el | 4 +- .../mew-vars.el | 119 +++++-- .../mew-vars2.el | 7 +- .../mew-vars3.el | 7 +- .../mew-varsx.el | 4 +- .../mew-virtual.el | 4 +- .../mew-win32.el | 6 +- .../mew.el | 10 +- .../mew.info | 103 +++--- .../mew.ja.info | 260 +++++++------- 105 files changed, 1523 insertions(+), 663 deletions(-) delete mode 100644 elpa/mew-20200130.145/mew-pkg.el rename elpa/{mew-20200130.145 => mew-20230415.633}/dir (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/Mew.img (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/Mew.png (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/Mew.xbm (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/Mew.xpm (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/mew-Audio.xpm (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/mew-Blank.xpm (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/mew-External.xpm (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/mew-Folder.xpm (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/mew-Image.xpm (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/mew-Octet-Stream.xpm (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/mew-Postscript.xpm (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/mew-Rfc822.xpm (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/mew-Text.xpm (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/mew-Unknown.xpm (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/mew-Video.xpm (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/mew-attach.xpm (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/mew-cite.xpm (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/mew-forward.xpm (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/mew-inc.xpm (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/mew-lock.xpm (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/mew-next.xpm (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/mew-pgp-enc.xpm (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/mew-pgp-sigenc.xpm (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/mew-pgp-sign.xpm (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/mew-prev.xpm (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/mew-queue.xpm (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/mew-refile.xpm (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/mew-reply.xpm (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/mew-send.xpm (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/mew-sep.xpm (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/mew-show.xpm (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/mew-write.xpm (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/etc/mew-yank.xpm (100%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-addrbook.el (98%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-attach.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-auth.el (57%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-autoloads.el (58%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-blvs.el (97%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-bq.el (98%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-cache.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-complete.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-config.el (96%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-const.el (97%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-darwin.el (98%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-decode.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-demo.el (88%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-draft.el (96%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-edit.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-encode.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-env.el (92%) create mode 100644 elpa/mew-20230415.633/mew-env0.el rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-exec.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-ext.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-fib.el (97%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-func.el (98%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-gemacs.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-header.el (97%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-highlight.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-imap.el (94%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-imap2.el (91%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-key.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-lang-jp.el (98%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-lang-kr.el (95%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-lang-latin.el (97%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-local.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-mark.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-message.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-mime.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-minibuf.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-mule.el (97%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-mule3.el (98%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-net.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-nntp.el (93%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-nntp2.el (90%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-passwd.el (76%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-pgp.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-pick.el (99%) create mode 100644 elpa/mew-20230415.633/mew-pkg.el rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-pop.el (93%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-refile.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-scan.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-search.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-smime.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-smtp.el (69%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-sort.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-ssh.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-ssl.el (66%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-summary.el (91%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-summary2.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-summary3.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-summary4.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-syntax.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-thread.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-unix.el (98%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-vars.el (95%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-vars2.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-vars3.el (98%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-varsx.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-virtual.el (98%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew-win32.el (98%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew.el (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew.info (99%) rename elpa/{mew-20200130.145 => mew-20230415.633}/mew.ja.info (98%) diff --git a/elpa/mew-20200130.145/mew-pkg.el b/elpa/mew-20200130.145/mew-pkg.el deleted file mode 100644 index 5e1c2729..00000000 --- a/elpa/mew-20200130.145/mew-pkg.el +++ /dev/null @@ -1,7 +0,0 @@ -(define-package "mew" "20200130.145" "Messaging in the Emacs World" 'nil :authors - '(("Kazu Yamamoto" . "Kazu@Mew.org")) - :maintainer - '("Kazu Yamamoto" . "Kazu@Mew.org")) -;; Local Variables: -;; no-byte-compile: t -;; End: diff --git a/elpa/mew-20200130.145/dir b/elpa/mew-20230415.633/dir similarity index 100% rename from elpa/mew-20200130.145/dir rename to elpa/mew-20230415.633/dir diff --git a/elpa/mew-20200130.145/etc/Mew.img b/elpa/mew-20230415.633/etc/Mew.img similarity index 100% rename from elpa/mew-20200130.145/etc/Mew.img rename to elpa/mew-20230415.633/etc/Mew.img diff --git a/elpa/mew-20200130.145/etc/Mew.png b/elpa/mew-20230415.633/etc/Mew.png similarity index 100% rename from elpa/mew-20200130.145/etc/Mew.png rename to elpa/mew-20230415.633/etc/Mew.png diff --git a/elpa/mew-20200130.145/etc/Mew.xbm b/elpa/mew-20230415.633/etc/Mew.xbm similarity index 100% rename from elpa/mew-20200130.145/etc/Mew.xbm rename to elpa/mew-20230415.633/etc/Mew.xbm diff --git a/elpa/mew-20200130.145/etc/Mew.xpm b/elpa/mew-20230415.633/etc/Mew.xpm similarity index 100% rename from elpa/mew-20200130.145/etc/Mew.xpm rename to elpa/mew-20230415.633/etc/Mew.xpm diff --git a/elpa/mew-20200130.145/etc/mew-Audio.xpm b/elpa/mew-20230415.633/etc/mew-Audio.xpm similarity index 100% rename from elpa/mew-20200130.145/etc/mew-Audio.xpm rename to elpa/mew-20230415.633/etc/mew-Audio.xpm diff --git a/elpa/mew-20200130.145/etc/mew-Blank.xpm b/elpa/mew-20230415.633/etc/mew-Blank.xpm similarity index 100% rename from elpa/mew-20200130.145/etc/mew-Blank.xpm rename to elpa/mew-20230415.633/etc/mew-Blank.xpm diff --git a/elpa/mew-20200130.145/etc/mew-External.xpm b/elpa/mew-20230415.633/etc/mew-External.xpm similarity index 100% rename from elpa/mew-20200130.145/etc/mew-External.xpm rename to elpa/mew-20230415.633/etc/mew-External.xpm diff --git a/elpa/mew-20200130.145/etc/mew-Folder.xpm b/elpa/mew-20230415.633/etc/mew-Folder.xpm similarity index 100% rename from elpa/mew-20200130.145/etc/mew-Folder.xpm rename to elpa/mew-20230415.633/etc/mew-Folder.xpm diff --git a/elpa/mew-20200130.145/etc/mew-Image.xpm b/elpa/mew-20230415.633/etc/mew-Image.xpm similarity index 100% rename from elpa/mew-20200130.145/etc/mew-Image.xpm rename to elpa/mew-20230415.633/etc/mew-Image.xpm diff --git a/elpa/mew-20200130.145/etc/mew-Octet-Stream.xpm b/elpa/mew-20230415.633/etc/mew-Octet-Stream.xpm similarity index 100% rename from elpa/mew-20200130.145/etc/mew-Octet-Stream.xpm rename to elpa/mew-20230415.633/etc/mew-Octet-Stream.xpm diff --git a/elpa/mew-20200130.145/etc/mew-Postscript.xpm b/elpa/mew-20230415.633/etc/mew-Postscript.xpm similarity index 100% rename from elpa/mew-20200130.145/etc/mew-Postscript.xpm rename to elpa/mew-20230415.633/etc/mew-Postscript.xpm diff --git a/elpa/mew-20200130.145/etc/mew-Rfc822.xpm b/elpa/mew-20230415.633/etc/mew-Rfc822.xpm similarity index 100% rename from elpa/mew-20200130.145/etc/mew-Rfc822.xpm rename to elpa/mew-20230415.633/etc/mew-Rfc822.xpm diff --git a/elpa/mew-20200130.145/etc/mew-Text.xpm b/elpa/mew-20230415.633/etc/mew-Text.xpm similarity index 100% rename from elpa/mew-20200130.145/etc/mew-Text.xpm rename to elpa/mew-20230415.633/etc/mew-Text.xpm diff --git a/elpa/mew-20200130.145/etc/mew-Unknown.xpm b/elpa/mew-20230415.633/etc/mew-Unknown.xpm similarity index 100% rename from elpa/mew-20200130.145/etc/mew-Unknown.xpm rename to elpa/mew-20230415.633/etc/mew-Unknown.xpm diff --git a/elpa/mew-20200130.145/etc/mew-Video.xpm b/elpa/mew-20230415.633/etc/mew-Video.xpm similarity index 100% rename from elpa/mew-20200130.145/etc/mew-Video.xpm rename to elpa/mew-20230415.633/etc/mew-Video.xpm diff --git a/elpa/mew-20200130.145/etc/mew-attach.xpm b/elpa/mew-20230415.633/etc/mew-attach.xpm similarity index 100% rename from elpa/mew-20200130.145/etc/mew-attach.xpm rename to elpa/mew-20230415.633/etc/mew-attach.xpm diff --git a/elpa/mew-20200130.145/etc/mew-cite.xpm b/elpa/mew-20230415.633/etc/mew-cite.xpm similarity index 100% rename from elpa/mew-20200130.145/etc/mew-cite.xpm rename to elpa/mew-20230415.633/etc/mew-cite.xpm diff --git a/elpa/mew-20200130.145/etc/mew-forward.xpm b/elpa/mew-20230415.633/etc/mew-forward.xpm similarity index 100% rename from elpa/mew-20200130.145/etc/mew-forward.xpm rename to elpa/mew-20230415.633/etc/mew-forward.xpm diff --git a/elpa/mew-20200130.145/etc/mew-inc.xpm b/elpa/mew-20230415.633/etc/mew-inc.xpm similarity index 100% rename from elpa/mew-20200130.145/etc/mew-inc.xpm rename to elpa/mew-20230415.633/etc/mew-inc.xpm diff --git a/elpa/mew-20200130.145/etc/mew-lock.xpm b/elpa/mew-20230415.633/etc/mew-lock.xpm similarity index 100% rename from elpa/mew-20200130.145/etc/mew-lock.xpm rename to elpa/mew-20230415.633/etc/mew-lock.xpm diff --git a/elpa/mew-20200130.145/etc/mew-next.xpm b/elpa/mew-20230415.633/etc/mew-next.xpm similarity index 100% rename from elpa/mew-20200130.145/etc/mew-next.xpm rename to elpa/mew-20230415.633/etc/mew-next.xpm diff --git a/elpa/mew-20200130.145/etc/mew-pgp-enc.xpm b/elpa/mew-20230415.633/etc/mew-pgp-enc.xpm similarity index 100% rename from elpa/mew-20200130.145/etc/mew-pgp-enc.xpm rename to elpa/mew-20230415.633/etc/mew-pgp-enc.xpm diff --git a/elpa/mew-20200130.145/etc/mew-pgp-sigenc.xpm b/elpa/mew-20230415.633/etc/mew-pgp-sigenc.xpm similarity index 100% rename from elpa/mew-20200130.145/etc/mew-pgp-sigenc.xpm rename to elpa/mew-20230415.633/etc/mew-pgp-sigenc.xpm diff --git a/elpa/mew-20200130.145/etc/mew-pgp-sign.xpm b/elpa/mew-20230415.633/etc/mew-pgp-sign.xpm similarity index 100% rename from elpa/mew-20200130.145/etc/mew-pgp-sign.xpm rename to elpa/mew-20230415.633/etc/mew-pgp-sign.xpm diff --git a/elpa/mew-20200130.145/etc/mew-prev.xpm b/elpa/mew-20230415.633/etc/mew-prev.xpm similarity index 100% rename from elpa/mew-20200130.145/etc/mew-prev.xpm rename to elpa/mew-20230415.633/etc/mew-prev.xpm diff --git a/elpa/mew-20200130.145/etc/mew-queue.xpm b/elpa/mew-20230415.633/etc/mew-queue.xpm similarity index 100% rename from elpa/mew-20200130.145/etc/mew-queue.xpm rename to elpa/mew-20230415.633/etc/mew-queue.xpm diff --git a/elpa/mew-20200130.145/etc/mew-refile.xpm b/elpa/mew-20230415.633/etc/mew-refile.xpm similarity index 100% rename from elpa/mew-20200130.145/etc/mew-refile.xpm rename to elpa/mew-20230415.633/etc/mew-refile.xpm diff --git a/elpa/mew-20200130.145/etc/mew-reply.xpm b/elpa/mew-20230415.633/etc/mew-reply.xpm similarity index 100% rename from elpa/mew-20200130.145/etc/mew-reply.xpm rename to elpa/mew-20230415.633/etc/mew-reply.xpm diff --git a/elpa/mew-20200130.145/etc/mew-send.xpm b/elpa/mew-20230415.633/etc/mew-send.xpm similarity index 100% rename from elpa/mew-20200130.145/etc/mew-send.xpm rename to elpa/mew-20230415.633/etc/mew-send.xpm diff --git a/elpa/mew-20200130.145/etc/mew-sep.xpm b/elpa/mew-20230415.633/etc/mew-sep.xpm similarity index 100% rename from elpa/mew-20200130.145/etc/mew-sep.xpm rename to elpa/mew-20230415.633/etc/mew-sep.xpm diff --git a/elpa/mew-20200130.145/etc/mew-show.xpm b/elpa/mew-20230415.633/etc/mew-show.xpm similarity index 100% rename from elpa/mew-20200130.145/etc/mew-show.xpm rename to elpa/mew-20230415.633/etc/mew-show.xpm diff --git a/elpa/mew-20200130.145/etc/mew-write.xpm b/elpa/mew-20230415.633/etc/mew-write.xpm similarity index 100% rename from elpa/mew-20200130.145/etc/mew-write.xpm rename to elpa/mew-20230415.633/etc/mew-write.xpm diff --git a/elpa/mew-20200130.145/etc/mew-yank.xpm b/elpa/mew-20230415.633/etc/mew-yank.xpm similarity index 100% rename from elpa/mew-20200130.145/etc/mew-yank.xpm rename to elpa/mew-20230415.633/etc/mew-yank.xpm diff --git a/elpa/mew-20200130.145/mew-addrbook.el b/elpa/mew-20230415.633/mew-addrbook.el similarity index 98% rename from elpa/mew-20200130.145/mew-addrbook.el rename to elpa/mew-20230415.633/mew-addrbook.el index e9d5c6bb..5d9aabb1 100644 --- a/elpa/mew-20200130.145/mew-addrbook.el +++ b/elpa/mew-20230415.633/mew-addrbook.el @@ -1,6 +1,6 @@ ;; mew-addrbook.el --- Aliases and personal information -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Mar 22, 1999 ;;; Code: @@ -537,15 +537,13 @@ reflected." (setq file (expand-file-name file mew-conf-path))) (switch-to-buffer (mew-find-file-noselect file)) (emacs-lisp-mode) - (if (boundp 'write-file-functions) - (add-hook 'write-file-functions 'mew-summary-alias-read-buffer nil 'local) - (add-hook 'local-write-file-hooks 'mew-summary-alias-read-buffer)))) + (add-hook 'write-file-functions 'mew-summary-alias-read-buffer nil 'local))) (provide 'mew-addrbook) ;;; Copyright Notice: -;; Copyright (C) 1999-2015 Mew developing team. +;; Copyright (C) 1999-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-attach.el b/elpa/mew-20230415.633/mew-attach.el similarity index 99% rename from elpa/mew-20200130.145/mew-attach.el rename to elpa/mew-20230415.633/mew-attach.el index a405d6a4..f0493e95 100644 --- a/elpa/mew-20200130.145/mew-attach.el +++ b/elpa/mew-20230415.633/mew-attach.el @@ -1,6 +1,6 @@ ;;; mew-attach.el --- attachments for Mew Draft mode -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Oct 2, 1996 ;;; Code: @@ -847,7 +847,7 @@ Input decrypters' addresses." ;;; Copyright Notice: -;; Copyright (C) 1996-2015 Mew developing team. +;; Copyright (C) 1996-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-auth.el b/elpa/mew-20230415.633/mew-auth.el similarity index 57% rename from elpa/mew-20200130.145/mew-auth.el rename to elpa/mew-20230415.633/mew-auth.el index eaf66773..19baad94 100644 --- a/elpa/mew-20200130.145/mew-auth.el +++ b/elpa/mew-20230415.633/mew-auth.el @@ -1,6 +1,6 @@ ;;; mew-auth.el -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Aug 17, 1999 ;;; Code: @@ -67,11 +67,83 @@ (defun mew-keyed-md5 (key passwd) (mew-md5 (concat key passwd))) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; XOAUTH2 + +(defun mew-auth-xoauth2-auth-string (user token) + ;; base64(user=user@example.com^Aauth=Bearer ya29vF9dft4...^A^A) + (base64-encode-string (format "user=%s\1auth=Bearer %s\1\1" user token) t)) + +(defun mew-auth-xoauth2-json-status (status-string) + ;; https://developers.google.com/gmail/imap/xoauth2-protocol#error_response_2 + (require 'json) + (let ((json-status + (ignore-errors + (json-read-from-string + (base64-decode-string status-string))))) + (if json-status + (if (string-match "^2" (cdr (assoc 'status json-status))) + "OK" ;; 2XX + "NO") ;; XXX: Anyway NO? + "OK"))) ;; XXX: Maybe OK if not JSON. + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; OAuth2 + +(defvar mew-auth-oauth2-client-id + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com") + +(defvar mew-auth-oauth2-client-secret + "xxxxxxxxxxxxxxxxxxxxxxxx") + +(defvar mew-auth-oauth2-auth-url "https://accounts.google.com/o/oauth2/auth" + "OAuth2 auth server URL.") + +(defvar mew-auth-oauth2-token-url "https://accounts.google.com/o/oauth2/token" + "OAuth2 token server URL.") + +(defvar mew-auth-oauth2-resource-url "https://mail.google.com/" + "URL used to request access to Mail Resources.") + +(defvar mew-auth-oauth2-redirect-url nil + "URL used to OAuth redirect url.") + +(declare-function oauth2-auth-and-store "oauth2") +(declare-function oauth2-refresh-access "oauth2") +(declare-function oauth2-token-access-token "oauth2") + +(defun mew-auth-oauth2-auth-and-store + (resource-url client-id client-secret &optional redirect-url) + "Request access to a mail resource and store it using `auth-source'." + (require 'oauth2) + (oauth2-auth-and-store + mew-auth-oauth2-auth-url + mew-auth-oauth2-token-url + resource-url + client-id + client-secret + redirect-url)) + +(defun mew-auth-oauth2-token () + "Get OAuth token for Mew to access mail service." + (require 'oauth2) + (let ((token (mew-auth-oauth2-auth-and-store + mew-auth-oauth2-resource-url + mew-auth-oauth2-client-id + mew-auth-oauth2-client-secret + mew-auth-oauth2-redirect-url))) + (oauth2-refresh-access token) + token)) + +(defun mew-auth-oauth2-token-access-token () + (require 'oauth2) + (ignore-errors (oauth2-token-access-token (mew-auth-oauth2-token)))) + (provide 'mew-auth) ;;; Copyright Notice: -;; Copyright (C) 2000-2015 Mew developing team. +;; Copyright (C) 2000-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-autoloads.el b/elpa/mew-20230415.633/mew-autoloads.el similarity index 58% rename from elpa/mew-20200130.145/mew-autoloads.el rename to elpa/mew-20230415.633/mew-autoloads.el index 2a0864bf..727808f9 100644 --- a/elpa/mew-20200130.145/mew-autoloads.el +++ b/elpa/mew-20230415.633/mew-autoloads.el @@ -1,4 +1,4 @@ -;;; mew-autoloads.el --- automatically extracted autoloads +;;; mew-autoloads.el --- automatically extracted autoloads -*- lexical-binding: t -*- ;; ;;; Code: @@ -54,203 +54,210 @@ CONTINUE, YANK-ACTION and SEND-ACTIONS are ignored. \(fn &optional TO SUBJECT OTHER-HEADERS CONTINUE SWITCH-FUNCTION YANK-ACTION SEND-ACTIONS &rest DUMMY)" nil nil) -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew" '("mew-"))) +(register-definition-prefixes "mew" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-addrbook" "mew-addrbook.el" (0 0 0 0)) ;;; Generated autoloads from mew-addrbook.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-addrbook" '("mew-"))) +(register-definition-prefixes "mew-addrbook" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-attach" "mew-attach.el" (0 0 0 0)) ;;; Generated autoloads from mew-attach.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-attach" '("mew-"))) +(register-definition-prefixes "mew-attach" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-auth" "mew-auth.el" (0 0 0 0)) ;;; Generated autoloads from mew-auth.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-auth" '("mew-"))) +(register-definition-prefixes "mew-auth" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-blvs" "mew-blvs.el" (0 0 0 0)) ;;; Generated autoloads from mew-blvs.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-blvs" '("mew-"))) +(register-definition-prefixes "mew-blvs" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-bq" "mew-bq.el" (0 0 0 0)) ;;; Generated autoloads from mew-bq.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-bq" '("mew-"))) +(register-definition-prefixes "mew-bq" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-cache" "mew-cache.el" (0 0 0 0)) ;;; Generated autoloads from mew-cache.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-cache" '("mew-"))) +(register-definition-prefixes "mew-cache" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-complete" "mew-complete.el" (0 0 0 0)) ;;; Generated autoloads from mew-complete.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-complete" '("mew-"))) +(register-definition-prefixes "mew-complete" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-config" "mew-config.el" (0 0 0 0)) ;;; Generated autoloads from mew-config.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-config" '("mew-"))) +(register-definition-prefixes "mew-config" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-const" "mew-const.el" (0 0 0 0)) ;;; Generated autoloads from mew-const.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-const" '("mew-"))) +(register-definition-prefixes "mew-const" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-darwin" "mew-darwin.el" (0 0 0 0)) ;;; Generated autoloads from mew-darwin.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-darwin" '("mew-"))) +(register-definition-prefixes "mew-darwin" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-decode" "mew-decode.el" (0 0 0 0)) ;;; Generated autoloads from mew-decode.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-decode" '("mew-"))) +(register-definition-prefixes "mew-decode" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-demo" "mew-demo.el" (0 0 0 0)) ;;; Generated autoloads from mew-demo.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-demo" '("mew-"))) +(register-definition-prefixes "mew-demo" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-draft" "mew-draft.el" (0 0 0 0)) ;;; Generated autoloads from mew-draft.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-draft" '("mew-"))) +(register-definition-prefixes "mew-draft" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-edit" "mew-edit.el" (0 0 0 0)) ;;; Generated autoloads from mew-edit.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-edit" '("mew-"))) +(register-definition-prefixes "mew-edit" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-encode" "mew-encode.el" (0 0 0 0)) ;;; Generated autoloads from mew-encode.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-encode" '("mew-"))) +(register-definition-prefixes "mew-encode" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-env" "mew-env.el" (0 0 0 0)) ;;; Generated autoloads from mew-env.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-env" '("mew-"))) +(register-definition-prefixes "mew-env" '("mew-")) + +;;;*** + +;;;### (autoloads nil "mew-env0" "mew-env0.el" (0 0 0 0)) +;;; Generated autoloads from mew-env0.el + +(register-definition-prefixes "mew-env0" '("mew-no-warning-def")) ;;;*** ;;;### (autoloads nil "mew-exec" "mew-exec.el" (0 0 0 0)) ;;; Generated autoloads from mew-exec.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-exec" '("mew-"))) +(register-definition-prefixes "mew-exec" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-ext" "mew-ext.el" (0 0 0 0)) ;;; Generated autoloads from mew-ext.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-ext" '("mew-"))) +(register-definition-prefixes "mew-ext" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-fib" "mew-fib.el" (0 0 0 0)) ;;; Generated autoloads from mew-fib.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-fib" '("mew-fib-"))) +(register-definition-prefixes "mew-fib" '("mew-fib-")) ;;;*** ;;;### (autoloads nil "mew-func" "mew-func.el" (0 0 0 0)) ;;; Generated autoloads from mew-func.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-func" '("mew-"))) +(register-definition-prefixes "mew-func" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-gemacs" "mew-gemacs.el" (0 0 0 0)) ;;; Generated autoloads from mew-gemacs.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-gemacs" '("mew-"))) +(register-definition-prefixes "mew-gemacs" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-header" "mew-header.el" (0 0 0 0)) ;;; Generated autoloads from mew-header.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-header" '("mew-"))) +(register-definition-prefixes "mew-header" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-highlight" "mew-highlight.el" (0 0 0 0)) ;;; Generated autoloads from mew-highlight.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-highlight" '("mew-"))) +(register-definition-prefixes "mew-highlight" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-imap" "mew-imap.el" (0 0 0 0)) ;;; Generated autoloads from mew-imap.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-imap" '("mew-imap-"))) +(register-definition-prefixes "mew-imap" '("mew-imap")) ;;;*** ;;;### (autoloads nil "mew-imap2" "mew-imap2.el" (0 0 0 0)) ;;; Generated autoloads from mew-imap2.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-imap2" '("mew-"))) +(register-definition-prefixes "mew-imap2" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-key" "mew-key.el" (0 0 0 0)) ;;; Generated autoloads from mew-key.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-key" '("mew-"))) +(register-definition-prefixes "mew-key" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-lang-jp" "mew-lang-jp.el" (0 0 0 0)) ;;; Generated autoloads from mew-lang-jp.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-lang-jp" '("mew-"))) +(register-definition-prefixes "mew-lang-jp" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-lang-kr" "mew-lang-kr.el" (0 0 0 0)) ;;; Generated autoloads from mew-lang-kr.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-lang-kr" '("mew-thread-indent-strings"))) +(register-definition-prefixes "mew-lang-kr" '("mew-thread-indent-strings")) ;;;*** @@ -258,252 +265,252 @@ CONTINUE, YANK-ACTION and SEND-ACTIONS are ignored. ;;;;;; 0)) ;;; Generated autoloads from mew-lang-latin.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-lang-latin" '("mew-"))) +(register-definition-prefixes "mew-lang-latin" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-local" "mew-local.el" (0 0 0 0)) ;;; Generated autoloads from mew-local.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-local" '("mew-"))) +(register-definition-prefixes "mew-local" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-mark" "mew-mark.el" (0 0 0 0)) ;;; Generated autoloads from mew-mark.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-mark" '("mew-"))) +(register-definition-prefixes "mew-mark" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-message" "mew-message.el" (0 0 0 0)) ;;; Generated autoloads from mew-message.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-message" '("mew-"))) +(register-definition-prefixes "mew-message" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-mime" "mew-mime.el" (0 0 0 0)) ;;; Generated autoloads from mew-mime.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-mime" '("mew-"))) +(register-definition-prefixes "mew-mime" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-minibuf" "mew-minibuf.el" (0 0 0 0)) ;;; Generated autoloads from mew-minibuf.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-minibuf" '("mew-"))) +(register-definition-prefixes "mew-minibuf" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-mule" "mew-mule.el" (0 0 0 0)) ;;; Generated autoloads from mew-mule.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-mule" '("mew-"))) +(register-definition-prefixes "mew-mule" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-mule3" "mew-mule3.el" (0 0 0 0)) ;;; Generated autoloads from mew-mule3.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-mule3" '("mew-"))) +(register-definition-prefixes "mew-mule3" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-net" "mew-net.el" (0 0 0 0)) ;;; Generated autoloads from mew-net.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-net" '("mew-"))) +(register-definition-prefixes "mew-net" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-nntp" "mew-nntp.el" (0 0 0 0)) ;;; Generated autoloads from mew-nntp.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-nntp" '("mew-"))) +(register-definition-prefixes "mew-nntp" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-nntp2" "mew-nntp2.el" (0 0 0 0)) ;;; Generated autoloads from mew-nntp2.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-nntp2" '("mew-nntp2-"))) +(register-definition-prefixes "mew-nntp2" '("mew-nntp2-")) ;;;*** ;;;### (autoloads nil "mew-passwd" "mew-passwd.el" (0 0 0 0)) ;;; Generated autoloads from mew-passwd.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-passwd" '("mew-"))) +(register-definition-prefixes "mew-passwd" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-pgp" "mew-pgp.el" (0 0 0 0)) ;;; Generated autoloads from mew-pgp.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-pgp" '("mew-"))) +(register-definition-prefixes "mew-pgp" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-pick" "mew-pick.el" (0 0 0 0)) ;;; Generated autoloads from mew-pick.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-pick" '("mew-"))) +(register-definition-prefixes "mew-pick" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-pop" "mew-pop.el" (0 0 0 0)) ;;; Generated autoloads from mew-pop.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-pop" '("mew-pop-"))) +(register-definition-prefixes "mew-pop" '("mew-pop-")) ;;;*** ;;;### (autoloads nil "mew-refile" "mew-refile.el" (0 0 0 0)) ;;; Generated autoloads from mew-refile.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-refile" '("mew-"))) +(register-definition-prefixes "mew-refile" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-scan" "mew-scan.el" (0 0 0 0)) ;;; Generated autoloads from mew-scan.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-scan" '("mew-"))) +(register-definition-prefixes "mew-scan" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-search" "mew-search.el" (0 0 0 0)) ;;; Generated autoloads from mew-search.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-search" '("mew-"))) +(register-definition-prefixes "mew-search" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-smime" "mew-smime.el" (0 0 0 0)) ;;; Generated autoloads from mew-smime.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-smime" '("mew-"))) +(register-definition-prefixes "mew-smime" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-smtp" "mew-smtp.el" (0 0 0 0)) ;;; Generated autoloads from mew-smtp.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-smtp" '("mew-"))) +(register-definition-prefixes "mew-smtp" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-sort" "mew-sort.el" (0 0 0 0)) ;;; Generated autoloads from mew-sort.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-sort" '("mew-s"))) +(register-definition-prefixes "mew-sort" '("mew-s")) ;;;*** ;;;### (autoloads nil "mew-ssh" "mew-ssh.el" (0 0 0 0)) ;;; Generated autoloads from mew-ssh.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-ssh" '("mew-"))) +(register-definition-prefixes "mew-ssh" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-ssl" "mew-ssl.el" (0 0 0 0)) ;;; Generated autoloads from mew-ssl.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-ssl" '("mew-"))) +(register-definition-prefixes "mew-ssl" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-summary" "mew-summary.el" (0 0 0 0)) ;;; Generated autoloads from mew-summary.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-summary" '("mew-"))) +(register-definition-prefixes "mew-summary" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-summary2" "mew-summary2.el" (0 0 0 0)) ;;; Generated autoloads from mew-summary2.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-summary2" '("mew-"))) +(register-definition-prefixes "mew-summary2" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-summary3" "mew-summary3.el" (0 0 0 0)) ;;; Generated autoloads from mew-summary3.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-summary3" '("mew-"))) +(register-definition-prefixes "mew-summary3" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-summary4" "mew-summary4.el" (0 0 0 0)) ;;; Generated autoloads from mew-summary4.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-summary4" '("mew-"))) +(register-definition-prefixes "mew-summary4" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-syntax" "mew-syntax.el" (0 0 0 0)) ;;; Generated autoloads from mew-syntax.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-syntax" '("mew-"))) +(register-definition-prefixes "mew-syntax" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-thread" "mew-thread.el" (0 0 0 0)) ;;; Generated autoloads from mew-thread.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-thread" '("mew-"))) +(register-definition-prefixes "mew-thread" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-unix" "mew-unix.el" (0 0 0 0)) ;;; Generated autoloads from mew-unix.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-unix" '("mew-"))) +(register-definition-prefixes "mew-unix" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-vars" "mew-vars.el" (0 0 0 0)) ;;; Generated autoloads from mew-vars.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-vars" '("mew-"))) +(register-definition-prefixes "mew-vars" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-vars2" "mew-vars2.el" (0 0 0 0)) ;;; Generated autoloads from mew-vars2.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-vars2" '("mew-"))) +(register-definition-prefixes "mew-vars2" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-vars3" "mew-vars3.el" (0 0 0 0)) ;;; Generated autoloads from mew-vars3.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-vars3" '("mew-"))) +(register-definition-prefixes "mew-vars3" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-varsx" "mew-varsx.el" (0 0 0 0)) ;;; Generated autoloads from mew-varsx.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-varsx" '("mew-defvar"))) +(register-definition-prefixes "mew-varsx" '("mew-defvar")) ;;;*** ;;;### (autoloads nil "mew-virtual" "mew-virtual.el" (0 0 0 0)) ;;; Generated autoloads from mew-virtual.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-virtual" '("mew-"))) +(register-definition-prefixes "mew-virtual" '("mew-")) ;;;*** ;;;### (autoloads nil "mew-win32" "mew-win32.el" (0 0 0 0)) ;;; Generated autoloads from mew-win32.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mew-win32" '("mew-"))) +(register-definition-prefixes "mew-win32" '("mew-")) ;;;*** diff --git a/elpa/mew-20200130.145/mew-blvs.el b/elpa/mew-20230415.633/mew-blvs.el similarity index 97% rename from elpa/mew-20200130.145/mew-blvs.el rename to elpa/mew-20230415.633/mew-blvs.el index e454e03b..c8bb4b6d 100644 --- a/elpa/mew-20200130.145/mew-blvs.el +++ b/elpa/mew-20230415.633/mew-blvs.el @@ -1,6 +1,6 @@ ;;; mew-blvs.el -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Feb 1, 1999 ;;; Code: @@ -59,7 +59,7 @@ ;;; Copyright Notice: -;; Copyright (C) 2000-2015 Mew developing team. +;; Copyright (C) 2000-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-bq.el b/elpa/mew-20230415.633/mew-bq.el similarity index 98% rename from elpa/mew-20200130.145/mew-bq.el rename to elpa/mew-20230415.633/mew-bq.el index f5a6846a..6ac8cfd1 100644 --- a/elpa/mew-20200130.145/mew-bq.el +++ b/elpa/mew-20230415.633/mew-bq.el @@ -1,6 +1,6 @@ ;;; mew-bq.el --- Base64 and Quoted-Printable encoding for Mew -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Aug 20, 1997 ;;; Code: @@ -204,9 +204,9 @@ (condition-case nil (let* ((len (length qpstr)) (ret (mew-make-string len)) - (j 0) char key) + (i 0) (j 0) char key) (setq key (or okey ?=)) - (dotimes (i len) + (while (< i len) ;; cannot use non-lexbind dotimes since Emacs 29 does not support it (setq char (aref qpstr i)) (cond ((and (not okey) (char-equal char ?_)) @@ -217,7 +217,8 @@ (setq i (+ i 2))) (t (aset ret j char))) - (setq j (1+ j))) + (setq j (1+ j)) + (setq i (1+ i))) (substring ret 0 j)) (error nil))) @@ -1091,14 +1092,16 @@ That is, each line may be more than 75." (bias mew-puny-initial-bias) (delta 0) (out 0) (output (mew-make-string (* len 4))) - h b m q k thr uni) - (dotimes (j len) + j h b m q k thr uni) + (setq j 0) + (while (< j len) ;; cannot use non-lexbind dotimes since Emacs 29 does not support it (setq uni (aref input j)) (setq j (1+ j)) (setq uni (+ (* uni 256) (aref input j))) (when (< uni 128) ;; basic (aset output out uni) - (setq out (1+ out)))) + (setq out (1+ out))) + (setq j (1+ j))) (setq h out) (setq b out) (when (> b 0) @@ -1106,14 +1109,17 @@ That is, each line may be more than 75." (setq out (1+ out))) (while (< h h-len) (setq m 65536) ;; 17bits - (dotimes (j len) + (setq j 0) + (while (< j len) ;; cannot use non-lexbind dotimes since Emacs 29 does not support it (setq uni (aref input j)) (setq j (1+ j)) (setq uni (+ (* uni 256) (aref input j))) - (if (and (>= uni n) (< uni m)) (setq m uni))) + (if (and (>= uni n) (< uni m)) (setq m uni)) + (setq j (1+ j))) (setq delta (+ delta (* (- m n) (1+ h)))) (setq n m) - (dotimes (j len) + (setq j 0) + (while (< j len) ;; cannot use non-lexbind dotimes since Emacs 29 does not support it (setq uni (aref input j)) (setq j (1+ j)) (setq uni (+ (* uni 256) (aref input j))) @@ -1139,7 +1145,8 @@ That is, each line may be more than 75." (setq out (1+ out)) (setq bias (mew-puny-adapt delta (1+ h) (= h b))) (setq delta 0) - (setq h (1+ h)))) + (setq h (1+ h))) + (setq j (1+ j))) (setq delta (1+ delta)) (setq n (1+ n))) (substring output 0 out))) @@ -1168,7 +1175,7 @@ That is, each line may be more than 75." ;;; Copyright Notice: -;; Copyright (C) 1997-2015 Mew developing team. +;; Copyright (C) 1997-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-cache.el b/elpa/mew-20230415.633/mew-cache.el similarity index 99% rename from elpa/mew-20200130.145/mew-cache.el rename to elpa/mew-20230415.633/mew-cache.el index da85f909..68548124 100644 --- a/elpa/mew-20200130.145/mew-cache.el +++ b/elpa/mew-20230415.633/mew-cache.el @@ -1,6 +1,6 @@ ;;; mew-cache.el --- Cache management for Mew -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Mar 23, 1997 ;;; Code: @@ -234,7 +234,7 @@ if decode fails." ;;; Copyright Notice: -;; Copyright (C) 1997-2015 Mew developing team. +;; Copyright (C) 1997-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-complete.el b/elpa/mew-20230415.633/mew-complete.el similarity index 99% rename from elpa/mew-20200130.145/mew-complete.el rename to elpa/mew-20230415.633/mew-complete.el index afbcd408..d47a3a1f 100644 --- a/elpa/mew-20200130.145/mew-complete.el +++ b/elpa/mew-20230415.633/mew-complete.el @@ -1,6 +1,6 @@ ;;; mew-complete.el --- Completion magic for Mew -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: May 30, 1997 ;;; Code: @@ -781,7 +781,7 @@ the name exists." ;;; Copyright Notice: -;; Copyright (C) 1997-2015 Mew developing team. +;; Copyright (C) 1997-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-config.el b/elpa/mew-20230415.633/mew-config.el similarity index 96% rename from elpa/mew-20200130.145/mew-config.el rename to elpa/mew-20230415.633/mew-config.el index 7a80b4eb..d47623b7 100644 --- a/elpa/mew-20200130.145/mew-config.el +++ b/elpa/mew-20230415.633/mew-config.el @@ -1,6 +1,6 @@ ;;; mew-config.el -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Dec 14, 1999 ;;; Code: @@ -151,12 +151,32 @@ ;; +(defun mew-prog-ssl-arg (&optional case) + (mew-cfent-value case "prog-ssl-arg" mew-prog-ssl-arg)) + (defun mew-ssl-cert-directory (&optional case) (mew-cfent-value case "ssl-cert-directory" mew-ssl-cert-directory)) (defun mew-ssl-verify-level (&optional case) (mew-cfent-value case "ssl-verify-level" mew-ssl-verify-level)) +(defun mew-ssl-proxy-server (&optional case) + (mew-cfent-value case "ssl-proxy-server" mew-ssl-proxy-server)) + +(defun mew-ssl-proxy-port (&optional case) + (mew-cfent-value case "ssl-proxy-port" mew-ssl-proxy-port)) + +(defun mew-ssl-client-keycert-list (&optional case) + (mew-cfent-value case "ssl-client-keycert-list" + mew-ssl-client-keycert-list)) + +(defun mew-ssl-trustfiles (&optional case) + (mew-cfent-value case "ssl-trustfiles" mew-ssl-trustfiles)) + +(defun mew-ssl-algorithm-priority (&optional case) + (mew-cfent-value case "ssl-algorithm-priority" + mew-ssl-algorithm-priority)) + ;; (defun mew-smtp-server (&optional case) @@ -611,7 +631,7 @@ fields in the header according to the new value." ;;; Copyright Notice: -;; Copyright (C) 1999-2015 Mew developing team. +;; Copyright (C) 1999-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-const.el b/elpa/mew-20230415.633/mew-const.el similarity index 97% rename from elpa/mew-20200130.145/mew-const.el rename to elpa/mew-20230415.633/mew-const.el index ba6e97ec..77fdfe7f 100644 --- a/elpa/mew-20200130.145/mew-const.el +++ b/elpa/mew-20230415.633/mew-const.el @@ -1,6 +1,6 @@ ;;; mew-const.el -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Feb 1, 1999 ;;; Code: @@ -10,13 +10,6 @@ ;; Constants which are used in two or more files must be here. ;; Constants used only in a file should be defined in the file. -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; -;;; Suffix -;;; - -(defconst mew-suffix ".mew") - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; Readability @@ -168,7 +161,7 @@ (+ (length [key beg end pri]) (length mew-mime-fields))) (defconst mew-x-mailer - (format "%s on Emacs %d.%d" mew-version emacs-major-version emacs-minor-version) + (format "%s on Emacs %s" mew-version emacs-version) "*A value inserted into X-Mailer: field in Draft mode if *non-nil*.") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -342,7 +335,7 @@ ;;; Copyright Notice: -;; Copyright (C) 2000-2015 Mew developing team. +;; Copyright (C) 2000-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-darwin.el b/elpa/mew-20230415.633/mew-darwin.el similarity index 98% rename from elpa/mew-20200130.145/mew-darwin.el rename to elpa/mew-20230415.633/mew-darwin.el index b1ab3aa4..2e92eb54 100644 --- a/elpa/mew-20200130.145/mew-darwin.el +++ b/elpa/mew-20230415.633/mew-darwin.el @@ -1,6 +1,6 @@ ;;; mew-darwin.el --- Settings for Mew on Darwin -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Oct 30, 2002 ;;; Code: @@ -106,7 +106,7 @@ ;;; Copyright Notice: -;; Copyright (C) 2002-2015 Mew developing team. +;; Copyright (C) 2002-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-decode.el b/elpa/mew-20230415.633/mew-decode.el similarity index 99% rename from elpa/mew-20200130.145/mew-decode.el rename to elpa/mew-20230415.633/mew-decode.el index cc74a74a..46b8025c 100644 --- a/elpa/mew-20200130.145/mew-decode.el +++ b/elpa/mew-20230415.633/mew-decode.el @@ -1,6 +1,6 @@ ;;; mew-decode.el --- MIME syntax decoder for Mew -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Oct 2, 1996 ;;; Code: @@ -1127,7 +1127,7 @@ Return a part syntax after moving the beginning of the content body." ;;; Copyright Notice: -;; Copyright (C) 1996-2015 Mew developing team. +;; Copyright (C) 1996-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-demo.el b/elpa/mew-20230415.633/mew-demo.el similarity index 88% rename from elpa/mew-20200130.145/mew-demo.el rename to elpa/mew-20230415.633/mew-demo.el index e8ba169a..273d407d 100644 --- a/elpa/mew-20200130.145/mew-demo.el +++ b/elpa/mew-20230415.633/mew-demo.el @@ -1,6 +1,6 @@ ;;; mew-demo.el --- Startup demo for Mew -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Oct 2, 1996 ;;; Code: @@ -20,9 +20,7 @@ Mew -- Messaging in the Emacs World %s -Copyright (C) 1994-2018 Kazu Yamamoto - -Please send comments to Kazu@Mew.org. +Copyright (C) 1994-2023 Mew developing team " ) @@ -65,15 +63,16 @@ Please send comments to Kazu@Mew.org. ((and window-system (fboundp 'image-type-available-p) (image-type-available-p 'png)) - (goto-char (point-max)) - (setq mew-logo (mew-create-image - (expand-file-name mew-icon-mew mew-icon-directory))) - (setq indent (/ (- (window-width) - (truncate (car (image-size mew-logo)))) 2)) - (setq indent (max 0 indent)) - (insert (make-string indent mew-sp)) - (insert-image mew-logo) - (goto-char (point-min)) + (let ((ifile (expand-file-name mew-icon-mew mew-icon-directory))) + (goto-char (point-max)) + (when (file-readable-p ifile) + (setq mew-logo (mew-create-image ifile)) + (setq indent (/ (- (window-width) + (truncate (car (image-size mew-logo)))) 2)) + (setq indent (max 0 indent)) + (insert (make-string indent mew-sp)) + (insert-image mew-logo) + (goto-char (point-min)))) (mew-redraw time)) (t (mew-hello-text time))) @@ -114,7 +113,7 @@ Please send comments to Kazu@Mew.org. ;;; Copyright Notice: -;; Copyright (C) 1996-2015 Mew developing team. +;; Copyright (C) 1996-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-draft.el b/elpa/mew-20230415.633/mew-draft.el similarity index 96% rename from elpa/mew-20200130.145/mew-draft.el rename to elpa/mew-20230415.633/mew-draft.el index db2bdb45..0e90a82e 100644 --- a/elpa/mew-20200130.145/mew-draft.el +++ b/elpa/mew-20230415.633/mew-draft.el @@ -1,11 +1,13 @@ ;;; mew-draft.el --- Draft mode for Mew -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Oct 2, 1996 ;;; Code: (require 'mew) +(eval-when-compile + (require 'mew-env0)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; @@ -46,9 +48,7 @@ (make-local-variable 'comment-start-skip) (setq comment-start-skip mew-comment-start-skip) (add-hook 'after-change-functions 'mew-draft-dynamic-highlight nil 'local) - (if (boundp 'write-file-functions) - (add-hook 'write-file-functions 'mew-encode-make-backup nil 'local) - (add-hook 'local-write-file-hooks 'mew-encode-make-backup)) + (add-hook 'write-file-functions 'mew-encode-make-backup nil 'local) (make-local-variable 'after-save-hook) (when mew-require-final-newline (make-local-variable 'require-final-newline) @@ -71,20 +71,22 @@ (mew-draft-set-local-variables) (use-local-map mew-draft-mode-map) (set-syntax-table mew-draft-mode-syntax-table) - (cd (expand-file-name mew-home)) - (mew-draft-setup-decoration) - (mew-ainfo-set-icon (file-name-nondirectory (buffer-file-name))) - (mew-tinfo-set-encrypted-p encrypted) - (mew-tinfo-set-privacy-err nil) - (mew-tinfo-set-privacy-type nil) - (mew-tinfo-set-use-flowed (mew-use-format-flowed (mew-tinfo-get-case))) - (mew-draft-mode-name) ;; must be after (mew-tinfo-set-encrypted-p encrypted) - (mew-run-mode-hooks 'text-mode-hook 'mew-draft-mode-hook) - ;; auto-fill-function is set by mew-draft-mode-hook - (when auto-fill-function - (make-local-variable 'auto-fill-function) - (setq auto-fill-function 'mew-draft-auto-fill)) - (setq buffer-undo-list nil)) + (let ((default-directory (expand-file-name mew-home))) + (unless (file-exists-p default-directory) + (mkdir default-directory)) + (mew-draft-setup-decoration) + (mew-ainfo-set-icon (file-name-nondirectory (buffer-file-name))) + (mew-tinfo-set-encrypted-p encrypted) + (mew-tinfo-set-privacy-err nil) + (mew-tinfo-set-privacy-type nil) + (mew-tinfo-set-use-flowed (mew-use-format-flowed (mew-tinfo-get-case))) + (mew-draft-mode-name) ;; must be after (mew-tinfo-set-encrypted-p encrypted) + (mew-run-mode-hooks 'text-mode-hook 'mew-draft-mode-hook) + ;; auto-fill-function is set by mew-draft-mode-hook + (when auto-fill-function + (make-local-variable 'auto-fill-function) + (setq auto-fill-function 'mew-draft-auto-fill)) + (setq buffer-undo-list nil))) (defun mew-draft-mode-name (&optional header) (let ((case (mew-tinfo-get-case)) @@ -288,10 +290,10 @@ the Body: field." (defun mew-draft-header-insert-xface () (if (and mew-x-face-file - (file-exists-p (expand-file-name mew-x-face-file))) + (file-exists-p (expand-file-name mew-x-face-file mew-home))) (let (xface) (with-temp-buffer - (mew-insert-file-contents (expand-file-name mew-x-face-file)) + (mew-insert-file-contents (expand-file-name mew-x-face-file mew-home)) (setq xface (mew-buffer-substring (point-min) (max (buffer-size) 1)))) (mew-draft-header-insert mew-x-face: xface)))) @@ -684,7 +686,7 @@ you can set the case." (setq case (mew-input-case (mew-tinfo-get-case) "Signature"))) (t (setq case (mew-tinfo-get-case)))) - (setq sigfile (expand-file-name (mew-signature-file case))) + (setq sigfile (expand-file-name (mew-signature-file case) mew-home)) (if (not (file-exists-p sigfile)) (message "No signature file %s" sigfile) (if (and (mew-attach-p) mew-signature-as-lastpart) @@ -999,7 +1001,7 @@ Set privacy service which will be effective when \\[mew-draft-make-message]." ;;; Copyright Notice: -;; Copyright (C) 1996-2015 Mew developing team. +;; Copyright (C) 1996-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-edit.el b/elpa/mew-20230415.633/mew-edit.el similarity index 99% rename from elpa/mew-20200130.145/mew-edit.el rename to elpa/mew-20230415.633/mew-edit.el index 36c63f2e..71edf4b3 100644 --- a/elpa/mew-20200130.145/mew-edit.el +++ b/elpa/mew-20230415.633/mew-edit.el @@ -1,6 +1,6 @@ ;;; mew-edit.el -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Nov 9, 1999 ;;; Code: @@ -1175,7 +1175,7 @@ mew-summary-reedit." ;;; Copyright Notice: -;; Copyright (C) 1999-2015 Mew developing team. +;; Copyright (C) 1999-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-encode.el b/elpa/mew-20230415.633/mew-encode.el similarity index 99% rename from elpa/mew-20200130.145/mew-encode.el rename to elpa/mew-20230415.633/mew-encode.el index 70af9e98..8910d06a 100644 --- a/elpa/mew-20200130.145/mew-encode.el +++ b/elpa/mew-20230415.633/mew-encode.el @@ -1,6 +1,6 @@ ;;; mew-encode.el --- MIME syntax encoder for Mew -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Oct 2, 1996 ;;; Code: @@ -1354,7 +1354,7 @@ ;;; Copyright Notice: -;; Copyright (C) 1996-2015 Mew developing team. +;; Copyright (C) 1996-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-env.el b/elpa/mew-20230415.633/mew-env.el similarity index 92% rename from elpa/mew-20200130.145/mew-env.el rename to elpa/mew-20230415.633/mew-env.el index 6bcf03a9..218619a5 100644 --- a/elpa/mew-20200130.145/mew-env.el +++ b/elpa/mew-20230415.633/mew-env.el @@ -1,23 +1,12 @@ ;;; mew-env.el --- Environment setup for Mew -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Mar 6, 1997 ;;; Code: (require 'mew) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; -;;; Suppressing warnings at compile -;;; - -(defmacro mew-no-warning-defvar (var-name) - `(unless (boundp ',var-name) (defvar ,var-name nil))) - -(defmacro mew-no-warning-defun (func-name) - `(unless (fboundp ',func-name) (defun ,func-name(&rest _args) nil))) - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; @@ -99,7 +88,8 @@ requires PTY.") (with-no-warnings (defun mew-set-coding-priority (pri) - (set-coding-priority pri))) + (apply 'set-coding-system-priority + (mapcar (lambda (x) (symbol-value x)) pri)))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; @@ -312,25 +302,12 @@ requires PTY.") (set-mouse-position (selected-frame) (1- (frame-width)) 0))))) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; -;;; Unix/Mac/Win -;;; - -(cond - ((>= emacs-major-version 24) - ;; this must be macro. If implemented as a function, its behavior - ;; is changed. - (defmacro mew-called-interactively-p () - '(called-interactively-p 'interactive))) - (t - (defalias 'mew-called-interactively-p 'called-interactively-p))) (provide 'mew-env) ;;; Copyright Notice: -;; Copyright (C) 1997-2015 Mew developing team. +;; Copyright (C) 1997-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20230415.633/mew-env0.el b/elpa/mew-20230415.633/mew-env0.el new file mode 100644 index 00000000..fb2526a0 --- /dev/null +++ b/elpa/mew-20230415.633/mew-env0.el @@ -0,0 +1,21 @@ +(cond + ((>= emacs-major-version 24) + ;; this must be macro. If implemented as a function, its behavior + ;; is changed. + (defmacro mew-called-interactively-p () + '(called-interactively-p 'interactive))) + (t + (defalias 'mew-called-interactively-p 'called-interactively-p))) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; +;;; Suppressing warnings at compile +;;; + +(defmacro mew-no-warning-defvar (var-name) + `(unless (boundp ',var-name) (defvar ,var-name nil))) + +(defmacro mew-no-warning-defun (func-name) + `(unless (fboundp ',func-name) (defun ,func-name(&rest _args) nil))) + +(provide 'mew-env0) diff --git a/elpa/mew-20200130.145/mew-exec.el b/elpa/mew-20230415.633/mew-exec.el similarity index 99% rename from elpa/mew-20200130.145/mew-exec.el rename to elpa/mew-20230415.633/mew-exec.el index dff3d244..af52904a 100644 --- a/elpa/mew-20200130.145/mew-exec.el +++ b/elpa/mew-20230415.633/mew-exec.el @@ -1,6 +1,6 @@ ;;; mew-exec.el -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Mar 2, 1997 ;;; Code: @@ -661,7 +661,7 @@ the queue, type '\\[mew-summary-send-message]' in the queue online." ;;; Copyright Notice: -;; Copyright (C) 1997-2015 Mew developing team. +;; Copyright (C) 1997-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-ext.el b/elpa/mew-20230415.633/mew-ext.el similarity index 99% rename from elpa/mew-20200130.145/mew-ext.el rename to elpa/mew-20230415.633/mew-ext.el index 3428b082..9738c80b 100644 --- a/elpa/mew-20200130.145/mew-ext.el +++ b/elpa/mew-20230415.633/mew-ext.el @@ -1,6 +1,6 @@ ;;; mew-ext.el --- Message/External-Body support for Mew -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Nov 13, 1996 ;;; Code: @@ -492,7 +492,7 @@ ;;; Copyright Notice: -;; Copyright (C) 1996-2015 Mew developing team. +;; Copyright (C) 1996-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-fib.el b/elpa/mew-20230415.633/mew-fib.el similarity index 97% rename from elpa/mew-20200130.145/mew-fib.el rename to elpa/mew-20230415.633/mew-fib.el index 385f95d6..aa72b69a 100644 --- a/elpa/mew-20200130.145/mew-fib.el +++ b/elpa/mew-20230415.633/mew-fib.el @@ -1,6 +1,6 @@ ;;; mew-fib.el --- Filling blanks for Mew -;; Author: Yoshinari NOMURA +;; Author: Mew developing team ;; Created: Nov 29, 1994 ;;; Code: @@ -92,7 +92,7 @@ ;;; Copyright Notice: -;; Copyright (C) 1994-2015 Mew developing team. +;; Copyright (C) 1994-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-func.el b/elpa/mew-20230415.633/mew-func.el similarity index 98% rename from elpa/mew-20200130.145/mew-func.el rename to elpa/mew-20230415.633/mew-func.el index 33113055..928a4085 100644 --- a/elpa/mew-20200130.145/mew-func.el +++ b/elpa/mew-20230415.633/mew-func.el @@ -1,6 +1,6 @@ ;;; mew-func.el --- Basic functions for Mew -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Mar 23, 1997 ;;; Code: @@ -764,7 +764,7 @@ If case is \"default\", it is not prepended." (setq maxfile (number-to-string max)) (setq maxpath (mew-expand-new-msg folder maxfile))) (while (file-exists-p maxpath) - (setq maxfile (read-string (format "%s/%s exists. Input a message number: " max folder))) + (setq maxfile (read-string (format "%s/%s exists. Input a message number: " folder max))) (while (not (string-match mew-regex-message-files maxfile)) (setq maxfile (read-string "Input NUMBER: "))) (setq maxpath (mew-expand-new-msg folder maxfile))) @@ -1190,17 +1190,28 @@ and sets buffer-file-coding-system." (if disp (setenv "DISPLAY" disp)) (apply 'start-process name buffer program program-args))) +(defvar mew-process-prior-locale-category "LC_ALL") +(defvar mew-process-prior-locale-value + (let ((case-fold-search t) + (locale-prog (executable-find "locale"))) + (with-temp-buffer + (if (and locale-prog + (call-process locale-prog nil t nil "-a") + (re-search-backward "^C.utf-?8" nil t)) + (match-string 0) + "C")))) + (defun mew-start-process-lang (name buffer program &rest program-args) (let ((process-environment (copy-sequence process-environment))) (setenv "LANGUAGE" "C") - (setenv "LC_ALL" "C") + (setenv mew-process-prior-locale-category mew-process-prior-locale-value) (setenv "LANG" "C") (apply 'start-process name buffer program program-args))) (defun mew-call-process-lang (prog &optional infile buffer display &rest args) (let ((process-environment (copy-sequence process-environment))) (setenv "LANGUAGE" "C") - (setenv "LC_ALL" "C") + (setenv mew-process-prior-locale-category mew-process-prior-locale-value) (setenv "LANG" "C") (apply 'call-process prog infile buffer display args))) @@ -1644,7 +1655,7 @@ by side-effect." ;;; Copyright Notice: -;; Copyright (C) 1997-2015 Mew developing team. +;; Copyright (C) 1997-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-gemacs.el b/elpa/mew-20230415.633/mew-gemacs.el similarity index 99% rename from elpa/mew-20200130.145/mew-gemacs.el rename to elpa/mew-20230415.633/mew-gemacs.el index 47e8df04..62c0b58c 100644 --- a/elpa/mew-20200130.145/mew-gemacs.el +++ b/elpa/mew-20230415.633/mew-gemacs.el @@ -1,10 +1,12 @@ ;;; mew-gemacs.el --- Environment of Graphical Emacs for Mew -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Jun 22, 2000 ;;; Code: +(require 'mew) + (defvar mew-prog-pamscale (or (executable-find "pamscale") "pnmscale")) (defvar mew-prog-pamscale-opt (cond @@ -143,7 +145,8 @@ :type 'boolean) (defcustom mew-image-display-resize-always nil - "*If nil, only a larger image than frame size will be displayed with fitting to frame size" + "*If nil, only a larger image than frame size will be displayed +with fitting to frame size" :group 'mew-message :type 'boolean) @@ -434,7 +437,7 @@ ;;; Copyright Notice: -;; Copyright (C) 1997-2015 Mew developing team. +;; Copyright (C) 1997-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-header.el b/elpa/mew-20230415.633/mew-header.el similarity index 97% rename from elpa/mew-20200130.145/mew-header.el rename to elpa/mew-20230415.633/mew-header.el index d832d1b7..b59dcfcf 100644 --- a/elpa/mew-20200130.145/mew-header.el +++ b/elpa/mew-20230415.633/mew-header.el @@ -1,6 +1,6 @@ ;; mew-header.el --- Mail header stuff for Mew -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Oct 2, 1996 ;;; Code: @@ -29,12 +29,16 @@ (mew-header-goto-end) (forward-line)) +(defvar mew-header-single-fields + (list mew-date: mew-from: mew-sender: mew-reply-to: mew-to: mew-cc: mew-bcc: mew-message-id: mew-references: mew-subj:)) + (defun mew-header-get-value (field &optional as-list) "currently, when no match, it returns nil." ;; maybe called in narrowed region. ;; we cannot widen for citation. (let ((case-fold-search t) (regex (format "^%s[ \t]*" field)) + (singlep (member field mew-header-single-fields)) start match ret) (save-excursion (mew-header-goto-end) @@ -55,7 +59,7 @@ (if as-list (setq ret (list match)) (setq ret match)) - (if (string= field mew-from:) (throw 'only-one nil)))))))) + (if singlep (throw 'only-one nil)))))))) (if as-list (nreverse ret) ret))) @@ -516,7 +520,7 @@ Remove anonymous addresses." ;;; Copyright Notice: -;; Copyright (C) 1996-2015 Mew developing team. +;; Copyright (C) 1996-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-highlight.el b/elpa/mew-20230415.633/mew-highlight.el similarity index 99% rename from elpa/mew-20200130.145/mew-highlight.el rename to elpa/mew-20230415.633/mew-highlight.el index 729283ec..91d305cc 100644 --- a/elpa/mew-20200130.145/mew-highlight.el +++ b/elpa/mew-20230415.633/mew-highlight.el @@ -1,6 +1,6 @@ ;;; mew-highlight.el --- Highlight for Mew -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Oct 18, 1997 ;;; Code: @@ -354,7 +354,7 @@ ;;; Copyright Notice: -;; Copyright (C) 1997-2015 Mew developing team. +;; Copyright (C) 1997-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-imap.el b/elpa/mew-20230415.633/mew-imap.el similarity index 94% rename from elpa/mew-20200130.145/mew-imap.el rename to elpa/mew-20230415.633/mew-imap.el index 0d4447cc..0df21f98 100644 --- a/elpa/mew-20200130.145/mew-imap.el +++ b/elpa/mew-20230415.633/mew-imap.el @@ -1,6 +1,6 @@ ;;; mew-imap.el for reading -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Feb 21, 2002 ;;; Code: @@ -30,7 +30,7 @@ ;;; (defvar mew-imap-info-list - '("server" "port" "process" "ssh-process" "ssl-process" "status" + '("server" "port" "process" "ssh-process" "ssl-process" "ssl-p" "status" "directive" "bnm" "mdb" "rmvs" "kils" "refs" "movs" "rtrs" "dels" "uidl" "range" @@ -56,6 +56,7 @@ (defvar mew-imap-fsm '(("greeting" ("OK" . "capability")) ("capability" ("OK" . "post-capability")) + ("auth-xoauth2" ("OK" . "next") ("NO" . "xoauth2-wpwd")) ("auth-cram-md5" ("OK" . "pwd-cram-md5") ("NO" . "wpwd")) ("pwd-cram-md5" ("OK" . "next") ("NO" . "wpwd")) ("auth-login" ("OK" . "user-login") ("NO" . "wpwd")) @@ -104,7 +105,7 @@ ;;; (defun mew-imap-secure-p (pnm) - (or (mew-imap-get-ssh-process pnm) (mew-imap-get-ssl-process pnm))) + (or (mew-imap-get-ssh-process pnm) (mew-imap-get-ssl-p pnm))) (defun mew-imap-command-capability (pro pnm) (mew-net-status (mew-imap-get-status-buf pnm) @@ -969,7 +970,8 @@ (defvar mew-imap-auth-alist '(("CRAM-MD5" mew-imap-command-auth-cram-md5) - ("LOGIN" mew-imap-command-auth-login))) + ("LOGIN" mew-imap-command-auth-login) + ("XOAUTH2" mew-imap-command-auth-xoauth2))) (defun mew-imap-auth-get-func (auth) (nth 1 (mew-assoc-case-equal auth mew-imap-auth-alist 0))) @@ -1007,6 +1009,43 @@ (epasswd (mew-base64-encode-string passwd))) (mew-imap-process-send-string2 pro epasswd))) +;;;;;;;;;;;;;;;; +;; XOAUTH2 + +(defun mew-imap-command-auth-xoauth2 (pro pnm) + (let* ((user (mew-imap-get-user pnm)) + (token (mew-auth-oauth2-token-access-token)) + (auth-string (mew-auth-xoauth2-auth-string user token))) + ;; XXX: need to reset satus if token is nil. + (mew-imap-process-send-string pro pnm (format "AUTHENTICATE XOAUTH2 %s" auth-string)) + (mew-imap-set-status pnm "auth-xoauth2"))) + +;; XXX: defalias does not work! +;; (defalias 'mew-imap2-command-auth-xoauth2 'mew-imap-command-auth-xoauth2) +(defun mew-imap2-command-auth-xoauth2 (pro pnm) + (let* ((user (mew-imap2-get-user pnm)) + (token (mew-auth-oauth2-token-access-token)) + (auth-string (mew-auth-xoauth2-auth-string user token))) + ;; XXX: need to reset satus if token is nil. + (mew-imap2-process-send-string pro pnm (format "AUTHENTICATE XOAUTH2 %s" auth-string)) + (mew-imap2-set-status pnm "auth-xoauth2"))) + +(defun mew-imap-command-xoauth2-wpwd (pro pnm) + (mew-imap-set-done pnm t) + (mew-passwd-set-passwd (mew-imap-passtag pnm) nil) + (delete-process pro) + ;; XXX: Should be cared more! Clear process and filter without sending LOGOUT. + (error "IMAP XOAUTH2 token is wrong!")) + +;; XXX: defalias does not work! +;; (defalias 'mew-imap2-command-xoauth2-wpwd 'mew-imap-command-xoauth2-wpwd) +(defun mew-imap2-command-xoauth2-wpwd (pro pnm) + (mew-imap2-set-done pnm t) + (mew-passwd-set-passwd (mew-imap2-passtag pnm) nil) + (delete-process pro) + ;; XXX: Should be cared more! Clear process and filter without sending LOGOUT. + (error "IMAP XOAUTH2 token is wrong!")) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; Sub functions @@ -1224,14 +1263,18 @@ ;;; Opening IMAP ;;; -(defun mew-imap-open (pnm server port no-msg) +(defun mew-imap-open (pnm case server port no-msg starttlsp) (let ((sprt (mew-*-to-port port)) + (sslnp (mew-ssl-native-p (mew-imap-ssl case))) pro tm) (condition-case emsg (progn (setq tm (run-at-time mew-imap-timeout-time nil 'mew-imap-timeout)) (or no-msg (message "Connecting to the IMAP server...")) - (setq pro (open-network-stream pnm nil server sprt)) + (setq pro (mew-open-network-stream pnm nil server sprt + 'imap sslnp starttlsp case)) + (setq pro (car pro)) + (when (not (processp pro)) (signal 'quit nil)) (mew-process-silent-exit pro) (mew-set-process-cs pro mew-cs-binary mew-cs-text-for-net) (or no-msg (message "Connecting to the IMAP server...done"))) @@ -1245,7 +1288,11 @@ pro)) (defun mew-imap-timeout () - (signal 'quit nil)) + ;; Do not timeout if the NSM query pane is active. + (unless (get-buffer "*Network Security Manager*") + (message "IMAP connection timed out (%d seconds)" + mew-imap-timeout-time) + (signal 'quit nil))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; @@ -1274,6 +1321,11 @@ (sshsrv (mew-imap-ssh-server case)) (sslp (mew-imap-ssl case)) (sslport (mew-imap-ssl-port case)) + (sslnp (mew-ssl-native-p (mew-imap-ssl case))) + (starttlsp + (mew-ssl-starttls-p (mew-imap-ssl case) + (mew-*-to-string (mew-imap-port case)) + (mew-imap-ssl-port case))) (proxysrv (mew-imap-proxy-server case)) (proxyport (mew-imap-proxy-port case)) ;; dirty but necessary for migration @@ -1288,29 +1340,32 @@ (if (mew-imap-get-process pnm) (message "Another IMAP process is running. Try later") (cond + (sslnp + (let ((serv (if starttlsp port sslport))) + (setq process (mew-imap-open pnm case server serv no-msg starttlsp)))) (sshsrv (setq sshpro (mew-open-ssh-stream case server port sshsrv)) (when sshpro (setq sshname (process-name sshpro)) (setq lport (mew-ssh-pnm-to-lport sshname)) (when lport - (setq process (mew-imap-open pnm "localhost" lport no-msg))))) + (setq process (mew-imap-open pnm case "localhost" lport no-msg nil))))) (sslp - (if (mew-port-equal port sslport) (setq tls mew-tls-imap)) + (when starttlsp (setq tls mew-tls-imap)) (setq sslpro (mew-open-ssl-stream case server sslport tls)) (when sslpro (setq sslname (process-name sslpro)) (setq lport (mew-ssl-pnm-to-lport sslname)) (when lport - (setq process (mew-imap-open pnm mew-ssl-localhost lport no-msg))))) + (setq process (mew-imap-open pnm case mew-ssl-localhost lport no-msg nil))))) (proxysrv - (setq process (mew-imap-open pnm proxysrv proxyport no-msg))) + (setq process (mew-imap-open pnm case proxysrv proxyport no-msg nil))) (t - (setq process (mew-imap-open pnm server port no-msg)))) + (setq process (mew-imap-open pnm case server port no-msg nil)))) (if (null process) (when (eq directive 'exec) (mew-imap-exec-recover bnm)) - (mew-summary-lock process "IMAPing" (or sshpro sslpro)) + (mew-summary-lock process "IMAPing" (or sshpro sslp)) (mew-sinfo-set-summary-form (mew-get-summary-form bnm)) (mew-sinfo-set-summary-column (mew-get-summary-column bnm)) (mew-sinfo-set-unread-mark nil) @@ -1322,6 +1377,7 @@ (mew-imap-set-process pnm process) (mew-imap-set-ssh-process pnm sshpro) (mew-imap-set-ssl-process pnm sslpro) + (mew-imap-set-ssl-p pnm sslp) (mew-imap-set-server pnm server) (mew-imap-set-port pnm port) (mew-imap-set-user pnm user) @@ -1361,7 +1417,7 @@ (when virtual (mew-imap-set-status-buf pnm virtual) (with-current-buffer virtual - (mew-summary-lock process "IMAPing" (or sshpro sslpro))))) + (mew-summary-lock process "IMAPing" (or sshpro sslp))))) ((eq directive 'scan) (mew-imap-set-range pnm (nth 0 args)) (mew-imap-set-get-body pnm (nth 1 args)) @@ -1403,7 +1459,15 @@ ;; (set-process-sentinel process 'mew-imap-sentinel) (set-process-filter process 'mew-imap-filter) - (set-process-buffer process buf))))) + (set-process-buffer process buf) + ;; + (when sslnp + ;; GnuTLS requires a client-initiated command after the + ;; session is established or upgraded to use TLS because + ;; no additional greeting from the server. + (mew-imap-set-status pnm "capability") + (mew-imap-command-capability process pnm)) + )))) (defun mew-imap-exec-recover (bnm) (mew-summary-visible-buffer bnm) @@ -1449,7 +1513,7 @@ (mew-imap-secure-p pnm)) (goto-char (point-min)) (when (and (null bytes) - (looking-at "^\\*[^{]*{\\([0-9]+\\)}")) + (looking-at "^\\*[^{]*{\\([0-9]+\\)}.*\n")) (setq bytes (string-to-number (mew-match-string 1))) (mew-imap-set-bytes pnm bytes)) (when (looking-at "^\\* .*X-GM-THRID +\\([0-9]+\\)") @@ -1477,8 +1541,12 @@ (if (string= status "greeting") (setq next (mew-imap-fsm-next "greeting" "OK")) (setq stay t))) - ((and (goto-char (point-min)) (looking-at "\\+")) - (setq next (mew-imap-fsm-next status "OK"))) + ((and (goto-char (point-min)) (looking-at "\\+ *\\(.*\\)")) + (setq next (mew-imap-fsm-next + status + (if (string= status "auth-xoauth2") + (mew-auth-xoauth2-json-status (mew-match-string 1)) + "OK")))) ((and (goto-char (point-max)) (= (forward-line -1) 0) (looking-at eos)) (mew-imap-set-tag pnm nil) (setq code (mew-match-string 1)) @@ -1888,7 +1956,7 @@ ;;; Copyright Notice: -;; Copyright (C) 2002-2015 Mew developing team. +;; Copyright (C) 2002-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-imap2.el b/elpa/mew-20230415.633/mew-imap2.el similarity index 91% rename from elpa/mew-20200130.145/mew-imap2.el rename to elpa/mew-20230415.633/mew-imap2.el index 49b82314..28350577 100644 --- a/elpa/mew-20200130.145/mew-imap2.el +++ b/elpa/mew-20230415.633/mew-imap2.el @@ -1,6 +1,6 @@ ;;; mew-imap2.el for appending -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: May 22, 2003 ;;; Code: @@ -37,6 +37,7 @@ (defvar mew-imap2-fsm '(("greeting" ("OK" . "capability")) ("capability" ("OK" . "post-capability")) + ("auth-xoauth2" ("OK" . "next") ("NO" . "xoauth2-wpwd")) ("auth-cram-md5" ("OK" . "pwd-cram-md5") ("NO" . "wpwd")) ("pwd-cram-md5" ("OK" . "next") ("NO" . "wpwd")) ("auth-login" ("OK" . "user-login") ("NO" . "wpwd")) @@ -241,7 +242,8 @@ (defvar mew-imap2-auth-alist '(("CRAM-MD5" mew-imap2-command-auth-cram-md5) - ("LOGIN" mew-imap2-command-auth-login))) + ("LOGIN" mew-imap2-command-auth-login) + ("XOAUTH2" mew-imap2-command-auth-xoauth2))) (defun mew-imap2-auth-get-func (auth) (nth 1 (mew-assoc-case-equal auth mew-imap2-auth-alist 0))) @@ -360,14 +362,18 @@ ;;; Opening IMAP ;;; -(defun mew-imap2-open (pnm server port) +(defun mew-imap2-open (pnm case server port starttlsp) (let ((sprt (mew-*-to-port port)) + (sslnp (mew-ssl-native-p (mew-imap-ssl case))) pro tm) (condition-case emsg (progn (setq tm (run-at-time mew-imap-timeout-time nil 'mew-imap2-timeout)) (message "Connecting to the IMAP server...") - (setq pro (open-network-stream pnm nil server sprt)) + (setq pro (mew-open-network-stream pnm nil server sprt + 'imap sslnp starttlsp case)) + (setq pro (car pro)) + (when (not (processp pro)) (signal 'quit nil)) (mew-process-silent-exit pro) (mew-set-process-cs pro mew-cs-text-for-net mew-cs-text-for-net) (message "Connecting to the IMAP server...done")) @@ -381,7 +387,11 @@ pro)) (defun mew-imap2-timeout () - (signal 'quit nil)) + ;; Do not timeout if the NSM query pane is active. + (unless (get-buffer "*Network Security Manager*") + (message "IMAP connection timed out (%d seconds)" + mew-imap-timeout-time) + (signal 'quit nil))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; @@ -396,29 +406,37 @@ (sshsrv (mew-imap-ssh-server case)) (sslp (mew-imap-ssl case)) (sslport (mew-imap-ssl-port case)) + (sslnp (mew-ssl-native-p (mew-imap-ssl case))) + (starttlsp + (mew-ssl-starttls-p (mew-imap-ssl case) + (mew-*-to-string (mew-imap-port case)) + (mew-imap-ssl-port case))) (proxysrv (mew-imap-proxy-server case)) (proxyport (mew-imap-proxy-port case)) process sshname sshpro sslname sslpro lport tls) (cond + (sslnp + (let ((serv (if starttlsp port sslport))) + (setq process (mew-imap2-open pnm case server serv starttlsp)))) (sshsrv (setq sshpro (mew-open-ssh-stream case server port sshsrv)) (when sshpro (setq sshname (process-name sshpro)) (setq lport (mew-ssh-pnm-to-lport sshname)) (when lport - (setq process (mew-imap2-open pnm "localhost" lport))))) + (setq process (mew-imap2-open pnm case "localhost" lport nil))))) (sslp - (if (mew-port-equal port sslport) (setq tls mew-tls-imap)) + (when starttlsp (setq tls mew-tls-imap)) (setq sslpro (mew-open-ssl-stream case server sslport tls)) (when sslpro (setq sslname (process-name sslpro)) (setq lport (mew-ssl-pnm-to-lport sslname)) (when lport - (setq process (mew-imap2-open pnm mew-ssl-localhost lport))))) + (setq process (mew-imap2-open pnm case mew-ssl-localhost lport nil))))) (proxysrv - (setq process (mew-imap2-open pnm proxysrv proxyport))) + (setq process (mew-imap2-open pnm case proxysrv proxyport nil))) (t - (setq process (mew-imap2-open pnm server port)))) + (setq process (mew-imap2-open pnm case server port nil)))) (if (null process) (cond ((and sshsrv (null sshpro)) @@ -448,7 +466,14 @@ (set-process-buffer process nil) (set-process-sentinel process 'mew-imap2-sentinel) (set-process-filter process 'mew-imap2-filter) - (message "Copying in background...")))) + (message "Copying in background...") + (when sslnp + ;; GnuTLS requires a client-initiated command after the + ;; session is established or upgraded to use TLS because + ;; no additional greeting from the server. + (mew-imap2-set-status pnm "capability") + (mew-imap2-command-capability process pnm)) + ))) (defun mew-summary-from-local-to-imap () "Copy messages in local folders under specified folder prefix @@ -537,7 +562,7 @@ with '*' in the region are handled." (buf (process-buffer process)) aux stay next func code resp) (save-excursion - (mew-imap2-debug (upcase status) string) + (mew-imap2-debug (upcase (format "%s" status)) string) (if (and buf (get-buffer buf)) (set-buffer buf)) (while (string-match "^\\*[^\n]*\n" str) (setq aux (substring str 0 (match-end 0))) @@ -551,9 +576,13 @@ with '*' in the region are handled." (cond (next nil) - ((string-match "^\\+" str) + ((string-match "^\\+ *\\(.*\\)" str) (mew-imap2-set-aux pnm str) - (setq next (mew-imap2-fsm-next status "OK"))) + (setq next (mew-imap2-fsm-next + status + (if (string= status "auth-xoauth2") + (mew-auth-xoauth2-json-status (mew-match-string 1)) + "OK")))) ((string-match eos str) (mew-imap2-set-tag pnm nil) (setq code (mew-match-string 1 str)) @@ -628,7 +657,7 @@ with '*' in the region are handled." ;;; Copyright Notice: -;; Copyright (C) 2003-2015 Mew developing team. +;; Copyright (C) 2003-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-key.el b/elpa/mew-20230415.633/mew-key.el similarity index 99% rename from elpa/mew-20200130.145/mew-key.el rename to elpa/mew-20230415.633/mew-key.el index 4b753f6a..ffa88ea3 100644 --- a/elpa/mew-20200130.145/mew-key.el +++ b/elpa/mew-20230415.633/mew-key.el @@ -1,6 +1,6 @@ ;;; mew-key.el -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Feb 1, 1999 ;;; Code: @@ -659,7 +659,7 @@ ;;; Copyright Notice: -;; Copyright (C) 2000-2015 Mew developing team. +;; Copyright (C) 2000-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-lang-jp.el b/elpa/mew-20230415.633/mew-lang-jp.el similarity index 98% rename from elpa/mew-20200130.145/mew-lang-jp.el rename to elpa/mew-20230415.633/mew-lang-jp.el index cfc63a86..91f7ea79 100644 --- a/elpa/mew-20200130.145/mew-lang-jp.el +++ b/elpa/mew-20230415.633/mew-lang-jp.el @@ -1,8 +1,7 @@ ;;-*-coding:iso-2022-7bit;-*- ;;; mew-lang-jp.el --- Japanese specific stuff for Mew -;; Author: Mito -;; Kazu Yamamoto +;; Author: Mew developing team ;; Created: Sep 08, 1997 ;;; Code: @@ -188,7 +187,7 @@ ;;; Copyright Notice: -;; Copyright (C) 1997-2015 Mew developing team. +;; Copyright (C) 1997-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-lang-kr.el b/elpa/mew-20230415.633/mew-lang-kr.el similarity index 95% rename from elpa/mew-20200130.145/mew-lang-kr.el rename to elpa/mew-20230415.633/mew-lang-kr.el index d7c3a35c..b048a6f3 100644 --- a/elpa/mew-20200130.145/mew-lang-kr.el +++ b/elpa/mew-20230415.633/mew-lang-kr.el @@ -1,7 +1,7 @@ ;;-*-coding:euc-kr;-*- ;;; mew-lang-kr.el --- Korean specific stuff for Mew -;; Author: CHOI Junho +;; Author: Mew developing team ;; Created: Mar 31, 2003 ;;; Code: @@ -12,7 +12,7 @@ ;;; Copyright Notice: -;; Copyright (C) 1997-2015 Mew developing team. +;; Copyright (C) 1997-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-lang-latin.el b/elpa/mew-20230415.633/mew-lang-latin.el similarity index 97% rename from elpa/mew-20200130.145/mew-lang-latin.el rename to elpa/mew-20230415.633/mew-lang-latin.el index 233ef996..ef6fc582 100644 --- a/elpa/mew-20200130.145/mew-lang-latin.el +++ b/elpa/mew-20230415.633/mew-lang-latin.el @@ -1,6 +1,6 @@ ;;; mew-lang-latin.el --- Latin specific stuff for Mew -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Dec 11, 2002 ;;; Code: @@ -57,7 +57,7 @@ ;;; Copyright Notice: -;; Copyright (C) 2002-2015 Mew developing team. +;; Copyright (C) 2002-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-local.el b/elpa/mew-20230415.633/mew-local.el similarity index 99% rename from elpa/mew-20200130.145/mew-local.el rename to elpa/mew-20230415.633/mew-local.el index 7257b31d..7a4bbce1 100644 --- a/elpa/mew-20200130.145/mew-local.el +++ b/elpa/mew-20230415.633/mew-local.el @@ -1,8 +1,11 @@ ;;; mew-local.el -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Dec 12, 2001 +(eval-when-compile + (require 'mew-summary)) + (defvar mew-local-folder-alist-file ".mew-folder-alist") (defvar mew-local-folder-alist nil) (defvar mew-local-folder-alist-time nil) @@ -395,7 +398,7 @@ Binary search is used for speed reasons." ;;; Copyright Notice: -;; Copyright (C) 2001-2015 Mew developing team. +;; Copyright (C) 2001-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-mark.el b/elpa/mew-20230415.633/mew-mark.el similarity index 99% rename from elpa/mew-20200130.145/mew-mark.el rename to elpa/mew-20230415.633/mew-mark.el index 477fa6e1..fd74d2a1 100644 --- a/elpa/mew-20200130.145/mew-mark.el +++ b/elpa/mew-20230415.633/mew-mark.el @@ -1,6 +1,6 @@ ;;; mew-mark.el --- Marking for Mew Summary and Virtual mode -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Mar 2, 1997 ;;; Code: @@ -900,7 +900,7 @@ The 'o' mark is not exchangeable." ;;; Copyright Notice: -;; Copyright (C) 1997-2015 Mew developing team. +;; Copyright (C) 1997-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-message.el b/elpa/mew-20230415.633/mew-message.el similarity index 99% rename from elpa/mew-20200130.145/mew-message.el rename to elpa/mew-20230415.633/mew-message.el index 91c5b35d..3f5b26a9 100644 --- a/elpa/mew-20200130.145/mew-message.el +++ b/elpa/mew-20230415.633/mew-message.el @@ -1,6 +1,6 @@ ;;; mew-message.el --- Message mode for Mew -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Oct 2, 1996 ;;; Code: @@ -310,7 +310,7 @@ confused. Please use '\\[mew-message-forward]' instead." ;;; Copyright Notice: -;; Copyright (C) 1996-2015 Mew developing team. +;; Copyright (C) 1996-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-mime.el b/elpa/mew-20230415.633/mew-mime.el similarity index 99% rename from elpa/mew-20200130.145/mew-mime.el rename to elpa/mew-20230415.633/mew-mime.el index 98843ca6..7dffd00f 100644 --- a/elpa/mew-20200130.145/mew-mime.el +++ b/elpa/mew-20230415.633/mew-mime.el @@ -1,11 +1,14 @@ ;;; mew-mime.el --- MIME launcher for Mew -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Mar 23, 1997 ;;; Code: (require 'mew) +(eval-when-compile + (require 'mew-env0)) + (eval-when-compile (cond ((memq system-type '(windows-nt cygwin)) @@ -958,7 +961,7 @@ See 'mew-mime-content-type' to know how actions can be defined." ;;; Copyright Notice: -;; Copyright (C) 1997-2015 Mew developing team. +;; Copyright (C) 1997-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-minibuf.el b/elpa/mew-20230415.633/mew-minibuf.el similarity index 99% rename from elpa/mew-20200130.145/mew-minibuf.el rename to elpa/mew-20230415.633/mew-minibuf.el index 705bde01..e5ac3ad1 100644 --- a/elpa/mew-20200130.145/mew-minibuf.el +++ b/elpa/mew-20230415.633/mew-minibuf.el @@ -1,6 +1,6 @@ ;;; mew-minibuf.el --- Minibuffer input methods for Mew -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Mar 23, 1997 ;;; Code: @@ -1027,7 +1027,7 @@ it is deleted automatically." ;;; Copyright Notice: -;; Copyright (C) 1997-2015 Mew developing team. +;; Copyright (C) 1997-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-mule.el b/elpa/mew-20230415.633/mew-mule.el similarity index 97% rename from elpa/mew-20200130.145/mew-mule.el rename to elpa/mew-20230415.633/mew-mule.el index aabebf38..04571fcd 100644 --- a/elpa/mew-20200130.145/mew-mule.el +++ b/elpa/mew-20230415.633/mew-mule.el @@ -1,10 +1,13 @@ ;;; mew-mule.el --- Environment of Mule common for Mew -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Jul 15, 1998 ;;; Code: +(eval-when-compile + (require 'mew-env0)) + ;; ;; Charset ;; @@ -139,7 +142,7 @@ ;;; Copyright Notice: -;; Copyright (C) 1998-2015 Mew developing team. +;; Copyright (C) 1998-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-mule3.el b/elpa/mew-20230415.633/mew-mule3.el similarity index 98% rename from elpa/mew-20200130.145/mew-mule3.el rename to elpa/mew-20230415.633/mew-mule3.el index 3b0dc8aa..8cda9ffe 100644 --- a/elpa/mew-20200130.145/mew-mule3.el +++ b/elpa/mew-20230415.633/mew-mule3.el @@ -1,10 +1,14 @@ ;;; mew-mule3.el --- Environment of Mule version 3 for Mew -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Mar 20, 1997 ;;; Code: +(eval-when-compile + (require 'mew-env0) + (require 'mew-func)) + (eval-when-compile (mew-no-warning-defun charset-priority-list)) @@ -395,7 +399,7 @@ ;;; Copyright Notice: -;; Copyright (C) 1997-2015 Mew developing team. +;; Copyright (C) 1997-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-net.el b/elpa/mew-20230415.633/mew-net.el similarity index 99% rename from elpa/mew-20200130.145/mew-net.el rename to elpa/mew-20230415.633/mew-net.el index 2206b288..453d866b 100644 --- a/elpa/mew-20200130.145/mew-net.el +++ b/elpa/mew-20230415.633/mew-net.el @@ -1,6 +1,6 @@ ;;; mew-net.el -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Feb 27, 2002 ;;; Code: @@ -14,9 +14,7 @@ (defvar mew-port-db '(("smtp" 25) - ;; This is officially assigned to another service (urd) by IANA. - ;; IESG will never assign a port number to SMTP over SSL... - ("smtps" 465) + ("smtps" 465) ; RFC 8314 ("pop3" 110) ("pop3s" 995) ("nntp" 119) @@ -185,6 +183,8 @@ (if func (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))) (unless (member ent global-mode-string) (if global-mode-string (setq global-mode-string @@ -881,7 +881,7 @@ The messages in the server side is always retained." ;;; Copyright Notice: -;; Copyright (C) 2002-2015 Mew developing team. +;; Copyright (C) 2002-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-nntp.el b/elpa/mew-20230415.633/mew-nntp.el similarity index 93% rename from elpa/mew-20200130.145/mew-nntp.el rename to elpa/mew-20230415.633/mew-nntp.el index e9c33523..93169794 100644 --- a/elpa/mew-20200130.145/mew-nntp.el +++ b/elpa/mew-20230415.633/mew-nntp.el @@ -1,6 +1,6 @@ ;;; mew-nntp.el for reading -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Feb 1, 1999 ;;; Code: @@ -22,7 +22,7 @@ ;;; (defvar mew-nntp-info-list - '("server" "port" "process" "ssh-process" "ssl-process" "status" + '("server" "port" "process" "ssh-process" "ssl-process" "ssl-p" "status" "directive" "bnm" "mdb" "rtrs" "refs" "range" "rttl" "rcnt" "hlds" @@ -66,7 +66,7 @@ ;;; (defun mew-nntp-secure-p (pnm) - (or (mew-nntp-get-ssh-process pnm) (mew-nntp-get-ssl-process pnm))) + (or (mew-nntp-get-ssh-process pnm) (mew-nntp-get-ssl-p pnm))) (defun mew-nntp-command-mode-reader (pro pnm) (mew-net-status (mew-nntp-get-status-buf pnm) @@ -388,14 +388,18 @@ ;;; Opening NNTP ;;; -(defun mew-nntp-open (pnm server port no-msg) +(defun mew-nntp-open (pnm case server port no-msg starttlsp) (let ((sprt (mew-*-to-port port)) + (sslnp (mew-ssl-native-p (mew-nntp-ssl case))) pro tm) (condition-case emsg (progn (setq tm (run-at-time mew-nntp-timeout-time nil 'mew-nntp-timeout)) (or no-msg (message "Connecting to the NNTP server...")) - (setq pro (open-network-stream pnm nil server sprt)) + (setq pro (mew-open-network-stream pnm nil server sprt + 'nntp sslnp starttlsp case)) + (setq pro (car pro)) + (when (not (processp pro)) (signal 'quit nil)) (mew-process-silent-exit pro) (mew-set-process-cs pro mew-cs-text-for-net mew-cs-text-for-net) (or no-msg (message "Connecting to the NNTP server...done"))) @@ -409,7 +413,11 @@ pro)) (defun mew-nntp-timeout () - (signal 'quit nil)) + ;; Do not timeout if the NSM query pane is active. + (unless (get-buffer "*Network Security Manager*") + (message "NNTP connection timed out (%d seconds)" + mew-nntp-timeout-time) + (signal 'quit nil))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; @@ -423,6 +431,11 @@ (sshsrv (mew-nntp-ssh-server case)) (sslp (mew-nntp-ssl case)) (sslport (mew-nntp-ssl-port case)) + (sslnp (mew-ssl-native-p (mew-nntp-ssl case))) + (starttlsp + (mew-ssl-starttls-p (mew-nntp-ssl case) + (mew-*-to-string (mew-nntp-port case)) + (mew-nntp-ssl-port case))) (newsgroup (mew-bnm-to-newsgroup bnm)) (pnm (mew-nntp-info-name case newsgroup)) (buf (get-buffer-create (mew-nntp-buffer-name pnm))) @@ -432,25 +445,28 @@ (if (mew-nntp-get-process pnm) (message "Another NNTP process is running. Try later") (cond + (sslnp + (let ((serv (if starttlsp port sslport))) + (setq process (mew-nntp-open pnm case server serv no-msg starttlsp)))) (sshsrv (setq sshpro (mew-open-ssh-stream case server port sshsrv)) (when sshpro (setq sshname (process-name sshpro)) (setq lport (mew-ssh-pnm-to-lport sshname)) (when lport - (setq process (mew-nntp-open pnm "localhost" lport no-msg))))) + (setq process (mew-nntp-open pnm case "localhost" lport no-msg nil))))) (sslp - (if (mew-port-equal port sslport) (setq tls mew-tls-nntp)) + (when starttlsp (setq tls mew-tls-nntp)) (setq sslpro (mew-open-ssl-stream case server sslport tls)) (when sslpro (setq sslname (process-name sslpro)) (setq lport (mew-ssl-pnm-to-lport sslname)) (when lport - (setq process (mew-nntp-open pnm mew-ssl-localhost lport no-msg))))) + (setq process (mew-nntp-open pnm case mew-ssl-localhost lport no-msg nil))))) (t - (setq process (mew-nntp-open pnm server port no-msg)))) + (setq process (mew-nntp-open pnm case server port no-msg nil)))) (when process - (mew-summary-lock process "NNTPing" (or sshpro sslpro)) + (mew-summary-lock process "NNTPing" (or sshpro sslp)) (mew-sinfo-set-summary-form (mew-get-summary-form bnm)) (mew-sinfo-set-summary-column (mew-get-summary-column bnm)) (mew-sinfo-set-unread-mark nil) @@ -462,6 +478,7 @@ (mew-nntp-set-process pnm process) (mew-nntp-set-ssh-process pnm sshpro) (mew-nntp-set-ssl-process pnm sslpro) + (mew-nntp-set-ssl-p pnm sslp) (mew-nntp-set-server pnm server) (mew-nntp-set-port pnm port) (mew-nntp-set-user pnm user) @@ -488,7 +505,7 @@ (when virtual (mew-nntp-set-status-buf pnm virtual) (with-current-buffer virtual - (mew-summary-lock process "NNTPing" (or sshpro sslpro))))) + (mew-summary-lock process "NNTPing" (or sshpro sslp))))) ((eq directive 'scan) (mew-nntp-set-range pnm (nth 0 args)) (mew-nntp-set-get-body pnm (nth 1 args)) @@ -502,7 +519,13 @@ (mew-sinfo-set-start-point (point)) ;; after erase-buffer (set-process-sentinel process 'mew-nntp-sentinel) (set-process-filter process 'mew-nntp-filter) - (set-process-buffer process buf))))) + (set-process-buffer process buf) + (when sslnp + ;; GnuTLS requires a client-initiated command after the + ;; session is established or upgraded to use TLS because + ;; no additional greeting from the server. + (mew-nntp-command-mode-reader process pnm)) + )))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; @@ -713,7 +736,7 @@ ;;; Copyright Notice: -;; Copyright (C) 1999-2015 Mew developing team. +;; Copyright (C) 1999-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-nntp2.el b/elpa/mew-20230415.633/mew-nntp2.el similarity index 90% rename from elpa/mew-20200130.145/mew-nntp2.el rename to elpa/mew-20230415.633/mew-nntp2.el index 4b177b76..6d821fa1 100644 --- a/elpa/mew-20200130.145/mew-nntp2.el +++ b/elpa/mew-20230415.633/mew-nntp2.el @@ -1,6 +1,6 @@ ;;; mew-nntp2.el for posting -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Nov 19, 1999 ;;; Code: @@ -177,14 +177,18 @@ ;;; Opening NNTP ;;; -(defun mew-nntp2-open (pnm server port) +(defun mew-nntp2-open (pnm case server port starttlsp) (let ((sprt (mew-*-to-port port)) + (sslnp (mew-ssl-native-p (mew-nntp-ssl case))) pro tm) (condition-case emsg (progn (setq tm (run-at-time mew-nntp-timeout-time nil 'mew-nntp2-timeout)) (message "Connecting to the NNTP server...") - (setq pro (open-network-stream pnm nil server sprt)) + (setq pro (mew-open-network-stream pnm nil server sprt + 'nntp sslnp starttlsp case)) + (setq pro (car pro)) + (when (not (processp pro)) (signal 'quit nil)) (mew-process-silent-exit pro) (mew-set-process-cs pro mew-cs-text-for-net mew-cs-text-for-net) (message "Connecting to the NNTP server...done")) @@ -198,7 +202,11 @@ pro)) (defun mew-nntp2-timeout () - (signal 'quit nil)) + ;; Do not timeout if the NSM query pane is active. + (unless (get-buffer "*Network Security Manager*") + (message "NNTP connection timed out (%d seconds)" + mew-nntp-timeout-time) + (signal 'quit nil))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; @@ -213,25 +221,33 @@ (sshsrv (mew-nntp-ssh-server case)) (sslp (mew-nntp-ssl case)) (sslport (mew-nntp-ssl-port case)) + (sslnp (mew-ssl-native-p (mew-nntp-ssl case))) + (starttlsp + (mew-ssl-starttls-p (mew-nntp-ssl case) + (mew-*-to-string (mew-nntp-port case)) + (mew-nntp-ssl-port case))) process sshname sshpro sslname sslpro lport tls) (cond + (sslnp + (let ((serv (if starttlsp port sslport))) + (setq process (mew-nntp2-open pnm case server serv starttlsp)))) (sshsrv (setq sshpro (mew-open-ssh-stream case server port sshsrv)) (when sshpro (setq sshname (process-name sshpro)) (setq lport (mew-ssh-pnm-to-lport sshname)) (when lport - (setq process (mew-nntp2-open pnm "localhost" lport))))) + (setq process (mew-nntp2-open pnm case "localhost" lport nil))))) (sslp - (if (mew-port-equal port sslport) (setq tls mew-tls-nntp)) + (when starttlsp (setq tls mew-tls-nntp)) (setq sslpro (mew-open-ssl-stream case server sslport tls)) (when sslpro (setq sslname (process-name sslpro)) (setq lport (mew-ssl-pnm-to-lport sslname)) (when lport - (setq process (mew-nntp2-open pnm mew-ssl-localhost lport))))) + (setq process (mew-nntp2-open pnm case mew-ssl-localhost lport nil))))) (t - (setq process (mew-nntp2-open pnm server port)))) + (setq process (mew-nntp2-open pnm case server port nil)))) (if (null process) (cond ((and sshsrv (null sshpro)) @@ -256,8 +272,13 @@ (set-process-buffer process nil) (set-process-sentinel process 'mew-nntp2-sentinel) (set-process-filter process 'mew-nntp2-filter) - (message "Posting in background...")))) - + (message "Posting in background...") + (when sslnp + ;; GnuTLS requires a client-initiated command after the + ;; session is established or upgraded to use TLS because + ;; no additional greeting from the server. + (mew-nntp-command-mode-reader process pnm)) + ))) (defun mew-nntp2-flush-queue (case &optional qfld) (let (msgs) (unless qfld (setq qfld (mew-postq-folder case))) @@ -334,7 +355,9 @@ (set-buffer buf) (mew-nntp2-queue case error)) (mew-nntp2-log pnm error) - (message-box (format "%s This mail has been queued to %s" error qfld))) + (if (memq system-type '(windows-nt ms-dos cygwin)) + (message (format "%s This mail has been queued to %s" error qfld)) + (message-box (format "%s This mail has been queued to %s" error qfld)))) (done (message "Posting in background...done")) (t @@ -415,7 +438,7 @@ ;;; Copyright Notice: -;; Copyright (C) 1999-2015 Mew developing team. +;; Copyright (C) 1999-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-passwd.el b/elpa/mew-20230415.633/mew-passwd.el similarity index 76% rename from elpa/mew-20200130.145/mew-passwd.el rename to elpa/mew-20230415.633/mew-passwd.el index a80d87b9..592ccbd3 100644 --- a/elpa/mew-20200130.145/mew-passwd.el +++ b/elpa/mew-20230415.633/mew-passwd.el @@ -1,6 +1,6 @@ ;;; mew-passwd.el -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: May 23, 2006 ;;; Code: @@ -35,12 +35,100 @@ ;;; (defun mew-passwd-get-passwd (key) - (nth 1 (assoc key mew-passwd-alist))) + (cond + ((mew-passwd-use-auth-source-p) + (mew-passwd-auth-source-get-passwd key)) + (t (nth 1 (assoc key mew-passwd-alist))))) (defun mew-passwd-set-passwd (key val) - (if (assoc key mew-passwd-alist) - (setcar (nthcdr 1 (assoc key mew-passwd-alist)) val) - (setq mew-passwd-alist (cons (list key val 0) mew-passwd-alist)))) + (cond + ((mew-passwd-use-auth-source-p) + (mew-passwd-auth-source-set-passwd key val)) + (t (if (assoc key mew-passwd-alist) + (setcar (nthcdr 1 (assoc key mew-passwd-alist)) val) + (setq mew-passwd-alist (cons (list key val 0) mew-passwd-alist)))))) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; +;;; Functions for auth-source backend +;;; + +(autoload 'auth-source-search "auth-source") + +(defun mew-passwd-use-auth-source-p () + (eq mew-master-passwd-type 'auth-source)) + +(defun mew-passwd-auth-source-parse-key (key) + (let ((st (split-string key "[@:]"))) + (list :user (nth 0 st) + :host (nth 1 st) + :port (nth 2 st)))) + +;;; XXX will be revisited. +(defun mew-passwd-auth-source-parse-key-x (key) + (if (string-match "\\([^@]+\\)@\\([^:]+\\):\\(.+\\)" key) + (list :user (match-string 1 key) + :host (match-string 2 key) + :port (match-string 3 key)) + (list :key key + :user nil + :host nil + :port nil))) + +;;; XXX epa-pinentry-mode is set to 'loopback to avoid GUI pinentry +;;; window. This might not be a recommended way but it works. +;;; +;;; XXX when the backend is an encrypted file and an wrong passphrase +;;; is provided, a password prompt will be displayed. This may be +;;; confusing. +(defun mew-passwd-auth-source-get-passwd (key) + (let* ((epa-pinentry-mode 'loopback) + (slist (mew-passwd-auth-source-parse-key key)) + found) + (cond + ((member key mew-pgp-list) + ;; Never get GnuPG passphrase. Rely on gpg-agent for caching. + (setq found nil)) + (t + (condition-case error + (setq found (apply #'auth-source-search (nconc slist))) + (error + (setq found nil))))) + (if found + (let ((secret (plist-get (nth 0 found) :secret))) + (if (functionp secret) + (funcall secret) + secret)) + nil))) + +(defun mew-passwd-auth-source-set-passwd (key val) + (cond + ((member key mew-pgp-list) + ;; Never store GnuPG passphrase. Rely on gpg-agent for caching. + ) + (val + ;; Authenticated successfully. + (let* ((epa-pinentry-mode 'loopback) + (slist (mew-passwd-auth-source-parse-key key)) + (entry (apply #'auth-source-search + (append slist (list + :secret val :create t)))) + (save-function (plist-get (nth 0 entry) :save-function))) + (when (functionp save-function) + (funcall save-function)))) + (t + ;; Authentication failed. + ;; + ;; XXX: removal of the wrong password is not supported by any + ;; backends (i.e. auth-source-delete is noop). + (let* ((epa-pinentry-mode 'loopback) + (slist (mew-passwd-auth-source-parse-key key)) + (num (apply #'auth-source-forget+ (nconc slist))) + (entry (apply #'auth-source-delete (nconc slist))) + (save-function (plist-get (nth 0 entry) :save-function))) + (when (functionp save-function) + (funcall save-function)) + (message "Wrong password is stored. Please remove it manually."))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; @@ -63,7 +151,7 @@ ;;; (defun mew-passwd-gpg-version () - (when (mew-which mew-prog-passwd exec-path) + (when (mew-which-exec mew-prog-passwd) (with-temp-buffer (call-process mew-prog-passwd nil t nil "--version") (goto-char (point-min)) @@ -95,14 +183,19 @@ (mew-timer (* mew-passwd-timer-unit 60) 'mew-passwd-timer)))) (defun mew-passwd-setup-master () - (when (and (not mew-passwd-master) mew-use-master-passwd) + (cond + ((mew-passwd-use-auth-source-p) + ;;; do nothing + ) + (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))) + (add-hook 'kill-emacs-hook 'mew-passwd-clean-up))))) (defun mew-passwd-clean-up () (remove-hook 'kill-emacs-hook 'mew-passwd-clean-up) @@ -322,7 +415,7 @@ ;;; Copyright Notice: -;; Copyright (C) 1996-2015 Mew developing team. +;; Copyright (C) 1996-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-pgp.el b/elpa/mew-20230415.633/mew-pgp.el similarity index 99% rename from elpa/mew-20200130.145/mew-pgp.el rename to elpa/mew-20230415.633/mew-pgp.el index 6f53cdd2..a3ac252b 100644 --- a/elpa/mew-20200130.145/mew-pgp.el +++ b/elpa/mew-20230415.633/mew-pgp.el @@ -1,6 +1,6 @@ ;;; mew-pgp.el --- PGP/MIME for Mew -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Aug 17, 1994 ;;; Code: @@ -1267,7 +1267,7 @@ according to a URL in a field specified by 'mew-x-pgp-key-list'." ;;; Copyright Notice: -;; Copyright (C) 1994-2015 Mew developing team. +;; Copyright (C) 1994-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-pick.el b/elpa/mew-20230415.633/mew-pick.el similarity index 99% rename from elpa/mew-20200130.145/mew-pick.el rename to elpa/mew-20230415.633/mew-pick.el index 74ff9a8c..504911ef 100644 --- a/elpa/mew-20200130.145/mew-pick.el +++ b/elpa/mew-20230415.633/mew-pick.el @@ -1,6 +1,6 @@ ;;; mew-pick.el --- Picking up messages for Mew -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Oct 2, 1996 ;;; Code: @@ -822,7 +822,7 @@ If you want to change the stored keyword, execute this command with '\\[universa ;;; Copyright Notice: -;; Copyright (C) 1996-2015 Mew developing team. +;; Copyright (C) 1996-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20230415.633/mew-pkg.el b/elpa/mew-20230415.633/mew-pkg.el new file mode 100644 index 00000000..c29f2a4f --- /dev/null +++ b/elpa/mew-20230415.633/mew-pkg.el @@ -0,0 +1,9 @@ +(define-package "mew" "20230415.633" "Messaging in the Emacs World" 'nil :commit "47886a3b6bc64e5822546318e5a3dd0ff5eeb967" :authors + '(("Mew developing team")) + :maintainers + '(("Mew developing team")) + :maintainer + '("Mew developing team")) +;; Local Variables: +;; no-byte-compile: t +;; End: diff --git a/elpa/mew-20200130.145/mew-pop.el b/elpa/mew-20230415.633/mew-pop.el similarity index 93% rename from elpa/mew-20200130.145/mew-pop.el rename to elpa/mew-20230415.633/mew-pop.el index 9e2db7c4..951aa69c 100644 --- a/elpa/mew-20200130.145/mew-pop.el +++ b/elpa/mew-20230415.633/mew-pop.el @@ -1,6 +1,6 @@ ;;; mew-pop.el -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Jun 28, 2000 ;;; Code: @@ -21,7 +21,7 @@ ;;; (defvar mew-pop-info-list - '("server" "port" "process" "ssh-process" "ssl-process" "status" + '("server" "port" "process" "ssh-process" "ssl-process" "ssl-p" "status" "directive" "bnm" "mdb" "rtrs" "dels" "refs" "rmvs" "kils" "left" "uidl" "range" "rttl" "rcnt" "dttl" "dcnt" "hlds" @@ -41,6 +41,7 @@ (defvar mew-pop-fsm '(("greeting" nil ("\\+OK" . "capa")) ("capa" t ("\\+OK" . "auth") ("-ERR" . "pswd")) + ("xoauth2" nil ("\\+OK" . "list") ("-ERR" . "wpwd")) ("auth-cram-md5" nil ("\\+OK" . "pwd-cram-md5") ("-ERR" . "wpwd")) ("pwd-cram-md5" nil ("\\+OK" . "list") ("-ERR" . "wpwd")) ("auth-plain" nil ("\\+OK" . "pwd-plain") ("-ERR" . "wpwd")) @@ -80,7 +81,7 @@ ;;; (defun mew-pop-secure-p (pnm) - (or (mew-pop-get-ssh-process pnm) (mew-pop-get-ssl-process pnm))) + (or (mew-pop-get-ssh-process pnm) (mew-pop-get-ssl-p pnm))) (defun mew-pop-command-capa (pro pnm) (mew-net-status (mew-pop-get-status-buf pnm) @@ -503,11 +504,19 @@ (defvar mew-pop-auth-alist '(("CRAM-MD5" mew-pop-command-auth-cram-md5) - ("PLAIN" mew-pop-command-auth-plain))) + ("PLAIN" mew-pop-command-auth-plain) + ("XOAUTH2" mew-pop-command-auth-xoauth2))) (defun mew-pop-auth-get-func (auth) (nth 1 (mew-assoc-case-equal auth mew-pop-auth-alist 0))) +(defun mew-pop-command-auth-xoauth2 (pro pnm) + (let* ((user (mew-pop-get-user pnm)) + (token (mew-auth-oauth2-token-access-token)) + (auth-string (mew-auth-xoauth2-auth-string user token))) + (mew-pop-process-send-string pro "AUTH XOAUTH2 %s" auth-string) + (mew-smtp-set-status pnm "auth-xoauth2"))) + (defun mew-pop-command-auth-cram-md5 (pro pnm) (mew-pop-process-send-string pro "AUTH CRAM-MD5") (mew-pop-set-status pnm "auth-cram-md5")) @@ -610,14 +619,18 @@ ;;; Opening POP ;;; -(defun mew-pop-open (pnm server port no-msg) +(defun mew-pop-open (pnm case server port no-msg starttlsp) (let ((sprt (mew-*-to-port port)) + (sslnp (mew-ssl-native-p (mew-pop-ssl case))) pro tm) (condition-case emsg (progn (setq tm (run-at-time mew-pop-timeout-time nil 'mew-pop-timeout)) (or no-msg (message "Connecting to the POP server...")) - (setq pro (open-network-stream pnm nil server sprt)) + (setq pro (mew-open-network-stream pnm nil server sprt + 'pop sslnp starttlsp case)) + (setq pro (car pro)) + (when (not (processp pro)) (signal 'quit nil)) (mew-process-silent-exit pro) (mew-set-process-cs pro mew-cs-text-for-net mew-cs-text-for-net) (or no-msg (message "Connecting to the POP server...done"))) @@ -631,7 +644,11 @@ pro)) (defun mew-pop-timeout () - (signal 'quit nil)) + ;; Do not timeout if the NSM query pane is active. + (unless (get-buffer "*Network Security Manager*") + (message "POP connection timed out (%d seconds)" + mew-pop-timeout-time) + (signal 'quit nil))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; @@ -646,6 +663,11 @@ (sshsrv (mew-pop-ssh-server case)) (sslp (mew-pop-ssl case)) (sslport (mew-pop-ssl-port case)) + (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))) (proxysrv (mew-pop-proxy-server case)) (proxyport (mew-pop-proxy-port case)) (pnm (mew-pop-info-name case)) @@ -656,29 +678,32 @@ (if (mew-pop-get-process pnm) (message "Another POP process is running. Try later") (cond + (sslnp + (let ((serv (if starttlsp port sslport))) + (setq process (mew-pop-open pnm case server serv no-msg starttlsp)))) (sshsrv (setq sshpro (mew-open-ssh-stream case server port sshsrv)) (when sshpro (setq sshname (process-name sshpro)) (setq lport (mew-ssh-pnm-to-lport sshname)) (when lport - (setq process (mew-pop-open pnm "localhost" lport no-msg))))) + (setq process (mew-pop-open pnm case "localhost" lport no-msg nil))))) (sslp - (if (mew-port-equal port sslport) (setq tls mew-tls-pop)) + (when starttlsp (setq tls mew-tls-pop)) (setq sslpro (mew-open-ssl-stream case server sslport tls)) (when sslpro (setq sslname (process-name sslpro)) (setq lport (mew-ssl-pnm-to-lport sslname)) (when lport - (setq process (mew-pop-open pnm mew-ssl-localhost lport no-msg))))) + (setq process (mew-pop-open pnm case mew-ssl-localhost lport no-msg nil))))) (proxysrv - (setq process (mew-pop-open pnm proxysrv proxyport no-msg))) + (setq process (mew-pop-open pnm case proxysrv proxyport no-msg nil))) (t - (setq process (mew-pop-open pnm server port no-msg)))) + (setq process (mew-pop-open pnm case server port no-msg nil)))) (if (null process) (if (eq directive 'exec) (mew-summary-visible-buffer bnm)) - (mew-summary-lock process "POPing" (or sshpro sslpro)) + (mew-summary-lock process "POPing" (or sshpro sslp)) (mew-sinfo-set-summary-form (mew-get-summary-form bnm)) (mew-sinfo-set-summary-column (mew-get-summary-column bnm)) (mew-sinfo-set-unread-mark nil) @@ -690,6 +715,7 @@ (mew-pop-set-process pnm process) (mew-pop-set-ssh-process pnm sshpro) (mew-pop-set-ssl-process pnm sslpro) + (mew-pop-set-ssl-p pnm sslp) (mew-pop-set-server pnm server) (mew-pop-set-port pnm port) (mew-pop-set-user pnm user) @@ -725,7 +751,7 @@ (when virtual (mew-pop-set-status-buf pnm virtual) (with-current-buffer virtual - (mew-summary-lock process "POPing" (or sshpro sslpro))))) + (mew-summary-lock process "POPing" (or sshpro sslp))))) ((eq directive 'scan) (mew-pop-set-range pnm (nth 0 args)) (mew-pop-set-get-body pnm (nth 1 args)) @@ -743,7 +769,13 @@ ;; (set-process-sentinel process 'mew-pop-sentinel) (set-process-filter process 'mew-pop-filter) - (set-process-buffer process buf))))) + (set-process-buffer process buf) + (when sslnp + ;; GnuTLS requires a client-initiated command after the + ;; session is established or upgraded to use TLS because + ;; no additional greeting from the server. + (mew-pop-command-capa process pnm)) + )))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; @@ -960,7 +992,7 @@ ;;; Copyright Notice: -;; Copyright (C) 1999-2015 Mew developing team. +;; Copyright (C) 1999-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-refile.el b/elpa/mew-20230415.633/mew-refile.el similarity index 99% rename from elpa/mew-20200130.145/mew-refile.el rename to elpa/mew-20230415.633/mew-refile.el index 1ed35e51..d2f12a88 100644 --- a/elpa/mew-20200130.145/mew-refile.el +++ b/elpa/mew-20230415.633/mew-refile.el @@ -1,7 +1,6 @@ ;;; mew-refile.el --- Refile for Mew -;; Author: Yoshinari NOMURA -;; Kazu Yamamoto +;; Author: Mew developing team ;; Created: Jun 11, 1994 ;;; Code: @@ -917,7 +916,7 @@ This is very convenient to refile all messages picked by '\\[mew-summary-pick]'. ;;; Copyright Notice: -;; Copyright (C) 1994-2015 Mew developing team. +;; Copyright (C) 1994-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-scan.el b/elpa/mew-20230415.633/mew-scan.el similarity index 99% rename from elpa/mew-20200130.145/mew-scan.el rename to elpa/mew-20230415.633/mew-scan.el index daa67ecf..cee49f47 100644 --- a/elpa/mew-20200130.145/mew-scan.el +++ b/elpa/mew-20230415.633/mew-scan.el @@ -1,11 +1,13 @@ ;;; mew-scan.el --- Scanning messages for Mew -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Oct 2, 1996 ;;; Code: (require 'mew) +(eval-when-compile + (require 'mew-env0)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; @@ -849,14 +851,15 @@ non-nil, only headers of messages are cached. If executed with (defun mew-summary-folder-cache-save () (let* ((folder (mew-summary-folder-name 'ext)) - (cache (mew-expand-file folder mew-summary-cache-file))) + (cache (mew-expand-file folder mew-summary-cache-file)) + (cbuf (current-buffer))) (when (file-writable-p cache) (mew-touch-folder folder) (save-restriction (widen) - (if (mew-decode-syntax-p) - (let ((cbuf (current-buffer)) - (min (point-min)) + (if (and (mew-decode-syntax-p) + (equal (mew-decode-syntax-buffer) cbuf)) + (let ((min (point-min)) (max (point-max)) (beg (mew-decode-syntax-begin)) (end (mew-decode-syntax-end))) @@ -898,7 +901,7 @@ non-nil, only headers of messages are cached. If executed with ;;; Copyright Notice: -;; Copyright (C) 1996-2015 Mew developing team. +;; Copyright (C) 1996-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-search.el b/elpa/mew-20230415.633/mew-search.el similarity index 99% rename from elpa/mew-20200130.145/mew-search.el rename to elpa/mew-20230415.633/mew-search.el index cd2985ca..2a00783d 100644 --- a/elpa/mew-20200130.145/mew-search.el +++ b/elpa/mew-20230415.633/mew-search.el @@ -1,6 +1,6 @@ ;;; mew-search.el --- Index Search -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Aug 24, 2005 ;;; Code: @@ -784,7 +784,7 @@ from scratch." ;;; Copyright Notice: -;; Copyright (C) 2005-2015 Mew developing team. +;; Copyright (C) 2005-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-smime.el b/elpa/mew-20230415.633/mew-smime.el similarity index 99% rename from elpa/mew-20200130.145/mew-smime.el rename to elpa/mew-20230415.633/mew-smime.el index c720ad44..2e95fab0 100644 --- a/elpa/mew-20200130.145/mew-smime.el +++ b/elpa/mew-20230415.633/mew-smime.el @@ -1,10 +1,12 @@ ;;; mew-smime.el --- S/MIME for Mew -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Nov 12, 2004 ;;; Code: +(require 'mew) + ;; for gpgsm only ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -470,7 +472,7 @@ ;;; Copyright Notice: -;; Copyright (C) 2004-2015 Mew developing team. +;; Copyright (C) 2004-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-smtp.el b/elpa/mew-20230415.633/mew-smtp.el similarity index 69% rename from elpa/mew-20200130.145/mew-smtp.el rename to elpa/mew-20230415.633/mew-smtp.el index 121689b5..2e0747a6 100644 --- a/elpa/mew-20200130.145/mew-smtp.el +++ b/elpa/mew-20230415.633/mew-smtp.el @@ -1,11 +1,16 @@ ;;; mew-smtp.el -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Dec 3, 1999 ;;; Code: (require 'mew) +(autoload 'puny-encode-domain "puny") +(when (and (fboundp 'gnutls-available-p) + (gnutls-available-p)) + (require 'gnutls) + (require 'nsm)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; @@ -21,7 +26,7 @@ "server" "port" "ssh-server" "user" "auth-user" "auth-list" "helo-domain" - "status" "process" "ssh-process" "ssl-process" + "status" "process" "ssh-process" "ssl-process" "ssl-p" "qfld" "messages" ;; parameters used internally and should be initialized "string" "error" "auth-selected" "timer" "cont" "from" "sender" @@ -48,6 +53,10 @@ ("user-login" ("334" . "pwd-login") (t . "wpwd")) ("pwd-login" ("235" . "next") (t . "wpwd")) ("auth-plain" ("235" . "next") (t . "wpwd")) + ;; This is checked only for Gmail https://developers.google.com/gmail/imap/xoauth2-protocol + ;; 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")) @@ -249,7 +258,8 @@ (defvar mew-smtp-auth-alist '(("CRAM-MD5" mew-smtp-command-auth-cram-md5) ;; RFC 2195 ("PLAIN" mew-smtp-command-auth-plain) ;; RFC 2595 - ("LOGIN" mew-smtp-command-auth-login))) ;; No spec + ("LOGIN" mew-smtp-command-auth-login) ;; No spec + ("XOAUTH2" mew-smtp-command-auth-xoauth2))) (defun mew-smtp-auth-get-func (auth) (nth 1 (mew-assoc-case-equal auth mew-smtp-auth-alist 0))) @@ -308,6 +318,13 @@ (mew-smtp-process-send-string pro "AUTH PLAIN %s" plain) (mew-smtp-set-status pnm "auth-plain"))) +(defun mew-smtp-command-auth-xoauth2 (pro pnm) + (let* ((user (mew-smtp-get-auth-user pnm)) + (token (mew-auth-oauth2-token-access-token)) + (auth-string (mew-auth-xoauth2-auth-string user token))) + (mew-smtp-process-send-string pro "AUTH XOAUTH2 %s" auth-string) + (mew-smtp-set-status pnm "auth-xoauth2"))) + ;; (defun mew-smtp-command-auth-plain (pro pnm) ;; (mew-smtp-process-send-string pro "AUTH PLAIN") ;; (mew-smtp-set-status pnm "auth-plain")) @@ -386,25 +403,237 @@ (defvar mew-smtp-submission-family 'ipv4) +;;; XXX: (mew-open-network-stream) always returns a list +;; and is also used for non-SMTP protocols. +;;; 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) +(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) - (let (family nowait pro) - (when mew-inherit-submission + (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)) - (when (and (stringp port) (string-match "^/" port)) + ;; 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)) - (setq pro (make-network-process :name name :buffer buf - :host server :service port - :family family :nowait nowait)) - (if nowait + (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))) + (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))))))))) + (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)) - (defalias 'mew-open-network-stream 'open-network-stream)) + (defun mew-open-network-stream (name buf server port proto sslnp starttlsp case) + (open-network-stream name buf server port :return-list t))) -(defun mew-smtp-open (pnm server port) +(defun mew-smtp-open (pnm case server port starttlsp) (let ((sprt (mew-*-to-port port)) + (sslnp (mew-ssl-native-p (mew-smtp-ssl case))) pro tm) ;; xxx some OSes do not define "submission", sigh. (when (and (stringp sprt) (string= sprt "submission")) @@ -413,7 +642,15 @@ (progn (setq tm (run-at-time mew-smtp-timeout-time nil 'mew-smtp-timeout)) (message "Connecting to the SMTP server...") - (setq pro (mew-open-network-stream pnm nil server sprt)) + (setq pro (mew-open-network-stream pnm nil server sprt + 'smtp sslnp starttlsp case)) + (when (and sslnp starttlsp) + (mew-smtp-debug "*GREETING*" + (plist-get (cdr pro) :greeting)) + (mew-smtp-debug "*CAPABILITIES*" + (plist-get (cdr pro) :capabilities))) + (setq pro (car pro)) + (when (not (processp pro)) (signal 'quit nil)) (mew-process-silent-exit pro) (mew-set-process-cs pro mew-cs-text-for-net mew-cs-text-for-net) (message "Connecting to the SMTP server...done")) @@ -427,7 +664,11 @@ pro)) (defun mew-smtp-timeout () - (signal 'quit nil)) + ;; Do not timeout if the NSM query pane is active. + (unless (get-buffer "*Network Security Manager*") + (message "SMTP connection timed out (%d seconds)" + mew-smtp-timeout-time) + (signal 'quit nil))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; @@ -441,52 +682,65 @@ (pnm (mew-smtp-info-name case fallbacked)) (sshsrv (mew-smtp-ssh-server case)) (sslp (mew-smtp-ssl case)) - (sslport (mew-smtp-ssl-port case)) + (sslport (mew-*-to-string (mew-smtp-ssl-port case))) + (sslnp (mew-ssl-native-p (mew-smtp-ssl case))) + (starttlsp + (mew-ssl-starttls-p (mew-smtp-ssl case) + (mew-*-to-string (mew-smtp-port case)) + (mew-smtp-ssl-port case))) mew-inherit-submission process sshname sshpro sslname sslpro lport tlsp tls fallback) - (when (and sslp (mew-port-equal port sslport)) + (cond + ((and (not sslnp) sslp starttlsp) (setq tlsp t) ;; let stunnel know that a wrapper protocol is SMTP - (setq tls mew-tls-smtp)) + (setq tls mew-tls-smtp))) ;; a fallback: "submission" -> "smtp" ;; mew-smtp-port is "smtp" and mew-use-submission is t on Emacs 22 - (when (and (or (not sslp) tlsp) + (when (and (or (not sslp) starttlsp tlsp) (not fallbacked) mew-use-submission (fboundp 'make-network-process) ;; Emacs 22 or later (mew-port-equal port "smtp")) (setq port "submission") (setq fallback t) - (unless tlsp + (when (and sslp (not sslnp) (not tlsp)) ;; TLS uses stunnel. So, we should not use non-blocking connect. ;; Timeout should be carried out by stunnel. (setq mew-inherit-submission t)) - (if (mew-port-equal sslport "smtp") (setq sslport "submission"))) + (if (mew-port-equal sslport "smtp") + (setq sslport "submission"))) (cond + (sslnp + (let ((serv (if starttlsp port sslport))) + (setq process (mew-smtp-open pnm case server serv starttlsp)))) (sshsrv (setq sshpro (mew-open-ssh-stream case server port sshsrv)) (when sshpro (setq sshname (process-name sshpro)) (setq lport (mew-ssh-pnm-to-lport sshname)) (when lport - (setq process (mew-smtp-open pnm "localhost" lport))))) + (setq process (mew-smtp-open pnm case "localhost" lport nil))))) (sslp (setq sslpro (mew-open-ssl-stream case server sslport tls)) (when sslpro (setq sslname (process-name sslpro)) (setq lport (mew-ssl-pnm-to-lport sslname)) (when lport - (setq process (mew-smtp-open pnm mew-ssl-localhost lport))))) + (setq process (mew-smtp-open pnm case mew-ssl-localhost lport nil))))) (t - (setq process (mew-smtp-open pnm server port)))) + (setq process (mew-smtp-open pnm case server port nil)))) (if (null process) (cond ((and sshsrv (null sshpro)) (message "Cannot create to the SSH connection")) + (sslnp + (message "Cannot open an SSL/TLS (GnuTLS) connection")) ((and sslp (null sslpro)) (message "Cannot create to the SSL/TLS connection")) (t - (if (and (or (not sslp) tlsp) + (if (and (not (eq server 'local)) + (or (not sslp) tlsp) (not fallbacked) mew-use-submission (fboundp 'make-network-process) @@ -502,11 +756,14 @@ (mew-smtp-set-qfld pnm qfld) (mew-smtp-set-messages pnm msgs) (mew-smtp-set-server pnm server) - (mew-smtp-set-port pnm port) + (if sslp + (mew-smtp-set-port pnm sslport) + (mew-smtp-set-port pnm port)) (mew-smtp-set-process pnm process) (mew-smtp-set-ssh-server pnm sshsrv) (mew-smtp-set-ssh-process pnm sshpro) (mew-smtp-set-ssl-process pnm sslpro) + (mew-smtp-set-ssl-p pnm sslp) (mew-smtp-set-helo-domain pnm (mew-smtp-helo-domain case)) (mew-smtp-set-user pnm user) (mew-smtp-set-auth-user pnm (mew-smtp-user case)) @@ -517,7 +774,15 @@ (set-process-buffer process nil) (set-process-sentinel process 'mew-smtp-sentinel) (set-process-filter process 'mew-smtp-filter) - (message "Sending in background...")))) + (message "Sending in background...") + ;; + (when sslnp + ;; GnuTLS requires a client-initiated command after the + ;; 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)) + ))) (defun mew-smtp-flush-queue (case &optional qfld) (let (msgs) @@ -623,7 +888,10 @@ (set-buffer buf) (mew-smtp-queue case error pnm)) (mew-smtp-log pnm error) - (message-box (format "%s This mail has been queued to %s" error qfld))) + + (if (memq system-type '(windows-nt ms-dos cygwin)) + (message (format "%s This mail has been queued to %s" error qfld)) + (message-box (format "%s This mail has been queued to %s" error qfld)))) (done (message "Sending in background...done")) (t @@ -732,7 +1000,7 @@ (server (mew-smtp-get-server pnm)) (port (mew-smtp-get-port pnm)) (sshsrv (mew-smtp-get-ssh-server pnm)) - (sslp (mew-smtp-get-ssl-process pnm))) + (sslp (mew-smtp-get-ssl-p pnm))) (with-temp-buffer (and logtime (insert logtime)) (and msgid (insert " id=" msgid)) @@ -756,7 +1024,7 @@ ;;; Copyright Notice: -;; Copyright (C) 1999-2015 Mew developing team. +;; Copyright (C) 1999-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-sort.el b/elpa/mew-20230415.633/mew-sort.el similarity index 99% rename from elpa/mew-20200130.145/mew-sort.el rename to elpa/mew-20230415.633/mew-sort.el index 391476c1..0dba8846 100644 --- a/elpa/mew-20200130.145/mew-sort.el +++ b/elpa/mew-20230415.633/mew-sort.el @@ -1,7 +1,6 @@ ;;; mew-sort.el --- Sorting messages for Mew -;; Author: Takashi P.KATOH -;; Kazu Yamamoto +;; Author: Mew developing team ;; Created: Feb 6, 1996 ;;; Code: @@ -496,7 +495,7 @@ local cache messages are packed." ;;; Copyright Notice: -;; Copyright (C) 1996-2015 Mew developing team. +;; Copyright (C) 1996-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-ssh.el b/elpa/mew-20230415.633/mew-ssh.el similarity index 99% rename from elpa/mew-20200130.145/mew-ssh.el rename to elpa/mew-20230415.633/mew-ssh.el index 7aa3adc3..c7934d65 100644 --- a/elpa/mew-20200130.145/mew-ssh.el +++ b/elpa/mew-20230415.633/mew-ssh.el @@ -1,6 +1,6 @@ ;;; mew-ssh.el -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Dec 14, 1999 ;;; Code: @@ -227,7 +227,7 @@ after ':'." ;;; Copyright Notice: -;; Copyright (C) 1999-2015 Mew developing team. +;; Copyright (C) 1999-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-ssl.el b/elpa/mew-20230415.633/mew-ssl.el similarity index 66% rename from elpa/mew-20200130.145/mew-ssl.el rename to elpa/mew-20230415.633/mew-ssl.el index 608ab79a..9531420a 100644 --- a/elpa/mew-20200130.145/mew-ssl.el +++ b/elpa/mew-20230415.633/mew-ssl.el @@ -1,12 +1,87 @@ ;;; mew-ssl.el -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Jul 25, 2002 ;;; Code: (require 'mew) +(defun mew-ssl-native-p (type) + "Return if the type is native or not" + (or (eq type 'native) + (and (eq type t) (eq mew-ssl-default 'native)))) +(defun mew-ssl-starttls-p (type port sslport) + "Return if STARTTLS should be used or not" + (and type (mew-port-equal port sslport))) +(defvar mew-ssl-min-prime-bits 2048 + "Default prime bits for GnuTLS connection.") +(defvar mew-ssl-verify-error nil + "verify-error parameter passed to GnuTLS. You might want to +keep this as nil.") +(defvar mew-ssl-native-starttls-plist + '( + ;; RFC 3207 + (smtp . (:capability-command + (format "EHLO %s\r\n" (mew-smtp-helo-domain case)) + :always-query-capabilities t + :end-of-command + (format "^[0-9]+ .*\r?\n") + :end-of-capability + (format "^[0-9]+ .*\r?\n") + :success (format "^2.*\r?\n") + :starttls-function + (lambda (capabilities) + (and (string-match "[ -]STARTTLS" capabilities) + "STARTTLS\r\n")))) + ;; RFC 2595 + (imap . (:capability-command + (format "1 CAPABILITY\r\n") + :always-query-capabilities t + :end-of-capability + (format "\r?\n") + :end-of-command + (format "\r?\n") + :success + (format "^1 OK ") + :starttls-function + (lambda (capabilities) + (when (string-match-p "STARTTLS" capabilities) + "1 STARTTLS\r\n")))) + ;; RFC 2595 + (pop . (:capability-command + (format "CAPA\r\n") + :always-query-capabilities nil + :end-of-capability + (format "^\\.\r?\n\\|^-ERR") + :end-of-command + (format "^\\(-ERR\\|+OK\\).*\r?\n") + :success + (format "^\\+OK.*\n") + :starttls-function + (lambda (capabilities) + (and (string-match "\\bSTLS\\b" capabilities) + "STLS\r\n")))) + ;; RFC 4642 + (nntp . (:capability-command + (format "CAPABILITIES\r?\n") + :always-query-capabilities t + :end-of-capability + (format "^\\.\r?\n") + :end-of-command + (format "^\\.\r?\n") + :success + (format "^2.+ \r?\n") + :starttls-function + (lambda (capabilities) + (when (string-match-p "STARTTLS" capabilities) + "STARTTLS\r\n")))) + )) +(defun mew-starttls-get-param (proto key evalp) + "Get parameter from mew-ssl-native-starttls-plist" + (let ((p (plist-get (cdr (assq proto mew-ssl-native-starttls-plist)) key))) + (if evalp (eval p) p))) + (defvar mew-prog-ssl "stunnel") (defvar mew-ssl-cert-directory "~/.certs" "The directory where certificates of root servers are stored. @@ -26,21 +101,32 @@ A file name of a certificate should be 'cert-hash.0'. the server).") (defvar mew-prog-ssl-arg nil - "For stunnel v3, a list of command-line arguments, each one a string. -For stunnel v4 or v5, a string of extra text to place in the configuration -file, which should end with a newline (example: \"fips=no\\n\"); or nil to -insert no extra text.") + "A string of extra text to place in the configuration file, +which should end with a newline (example: \"fips=no\\n\"); or nil to insert +no extra text.") + +(defvar mew-ssl-proxy-server nil) +(defvar mew-ssl-proxy-port nil) (defvar mew-ssl-ver nil) (defvar mew-ssl-minor-ver nil) -(defvar mew-ssl-libwrap nil) -(defvar mew-ssl-unixlike nil +(defvar mew-ssl-libwrap nil + "Set to t when stunnel supports \"LIBWRAP\" feature.") +(defvar mew-ssl-foreground nil "Set to t when stunnel supports \"foreground\" option.") -(defvar mew-ssl-checkhost nil) +(defvar mew-ssl-pid nil + "Set to t when stunnel supports \"pid\" option.") +(defvar mew-ssl-syslog nil + "Set to t when stunnel supports \"syslog\" option.") (defconst mew-ssl-process-exec-cnt 3) +(defconst mew-ssl-min-major-ver 5 + "Minimum major version of stunnel that Mew supports.") +(defconst mew-ssl-min-minor-ver 15 + "Minimum minor version of stunnel that Mew supports.") + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; Magic words @@ -51,8 +137,7 @@ insert no extra text.") (defconst mew-tls-nntp "nntp") (defconst mew-tls-imap "imap") ;; xxx stunnel does not support this. -;; stunnel does not support IPv6, sigh -(defconst mew-ssl-localhost "127.0.0.1") +(defconst mew-ssl-localhost "localhost") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; @@ -91,46 +176,37 @@ insert no extra text.") (defun mew-ssl-options (case server remoteport localport tls) (setq server (mew-ssl-server server)) - (if (= mew-ssl-ver 3) - (let (args) - (setq args - `("-c" "-f" - "-a" ,(expand-file-name (mew-ssl-cert-directory case)) - "-d" ,(format "%s:%d" mew-ssl-localhost localport) - "-v" ,(number-to-string (mew-ssl-verify-level case)) - "-D" "debug" - "-P" "" - "-r" ,(format "%s:%d" server remoteport) - ,@mew-prog-ssl-arg)) - (if tls (setq args (cons "-n" (cons tls args)))) - args) - (let ((file (mew-make-temp-name))) - (with-temp-buffer - (insert "client=yes\n") - (if mew-ssl-unixlike - (insert "pid=\n")) - (insert (format "verify=%d\n" (mew-ssl-verify-level case))) - (if (and (> (mew-ssl-verify-level case) 0) mew-ssl-checkhost) - (insert (format "checkHost=%s\n" server))) - (if mew-ssl-unixlike - (insert "foreground=yes\n")) - (insert "debug=debug\n") - (if (and mew-ssl-libwrap (or (>= mew-ssl-ver 5) (>= mew-ssl-minor-ver 45))) - (insert "libwrap=no\n")) - (if (and (or (>= mew-ssl-ver 5) (>= mew-ssl-minor-ver 22)) - mew-ssl-unixlike) - (insert "syslog=no\n")) - (insert "CApath=" (expand-file-name (mew-ssl-cert-directory case)) "\n") - (if mew-prog-ssl-arg - (insert mew-prog-ssl-arg)) - (insert (format "[%d]\n" localport)) - (insert (format "accept=%s:%d\n" mew-ssl-localhost localport)) + (let ((file (mew-make-temp-name))) + (with-temp-buffer + (insert "client=yes\n") + (if mew-ssl-pid + (insert "pid=\n")) + (insert (format "verify=%d\n" (mew-ssl-verify-level case))) + (if (> (mew-ssl-verify-level case) 0) + (insert (format "checkHost=%s\n" server))) + (if mew-ssl-foreground + (insert "foreground=yes\n")) + (insert "debug=debug\n") + (if mew-ssl-libwrap + (insert "libwrap=no\n")) + (if mew-ssl-syslog + (insert "syslog=no\n")) + (insert "CApath=" (expand-file-name (mew-ssl-cert-directory case)) "\n") + (if (mew-prog-ssl-arg case) + (insert (mew-prog-ssl-arg case))) + (insert (format "[%d]\n" localport)) + (insert (format "accept=%s:%d\n" mew-ssl-localhost localport)) + (if (mew-ssl-proxy-server case) + (insert + (format "connect=%s:%s\nprotocol=connect\nprotocolHost=%s:%d\n" + (mew-ssl-proxy-server case) (mew-ssl-proxy-port case) + server remoteport)) (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)) - (list file))))) + (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)) + (list file)))) (defun mew-open-ssl-stream (case server serv tls) "Open an SSL/TLS stream for SERVER's SERV. @@ -143,6 +219,13 @@ A local port number can be obtained the process name after ':'. " ((or (null mew-ssl-ver) (not (mew-which-exec mew-prog-ssl))) (message "'%s' is not found" mew-prog-ssl) nil) + ((or (< mew-ssl-ver mew-ssl-min-major-ver) + (and (= mew-ssl-ver mew-ssl-min-major-ver) + (< mew-ssl-minor-ver mew-ssl-min-minor-ver))) + (message "Version %d.%d of '%s' is installed, but Mew requires version %d.%d or later." + mew-ssl-ver mew-ssl-minor-ver mew-prog-ssl mew-ssl-min-major-ver + mew-ssl-min-minor-ver) + nil) (t (let* ((remoteport (mew-serv-to-port serv)) (localport (+ 8000 (% (mew-random) 4000))) @@ -181,7 +264,7 @@ A local port number can be obtained the process name after ':'. " (setq pnm (process-name pro)) (mew-info-clean-up pnm) (mew-ssl-set-try pnm 0) - (if (>= mew-ssl-ver 4) (mew-ssl-set-file pnm (car opts))) + (mew-ssl-set-file pnm (car opts)) (mew-set-process-cs pro mew-cs-text-for-read mew-cs-text-for-write) (set-process-filter pro 'mew-ssl-filter1) (set-process-sentinel pro 'mew-ssl-sentinel) @@ -286,15 +369,17 @@ A local port number can be obtained the process name after ':'. " (when (re-search-forward "LIBWRAP" nil t) (setq mew-ssl-libwrap t)) (when (re-search-forward "foreground" nil t) - (setq mew-ssl-unixlike t)) - (when (re-search-forward "checkHost" nil t) - (setq mew-ssl-checkhost t))))) + (setq mew-ssl-foreground t)) + (when (re-search-forward "pid" nil t) + (setq mew-ssl-pid t)) + (when (re-search-forward "syslog" nil t) + (setq mew-ssl-syslog t))))) (provide 'mew-ssl) ;;; Copyright Notice: -;; Copyright (C) 2002-2018 Mew developing team. +;; Copyright (C) 2002-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-summary.el b/elpa/mew-20230415.633/mew-summary.el similarity index 91% rename from elpa/mew-20200130.145/mew-summary.el rename to elpa/mew-20230415.633/mew-summary.el index 06b575ec..5999a256 100644 --- a/elpa/mew-20200130.145/mew-summary.el +++ b/elpa/mew-20230415.633/mew-summary.el @@ -1,6 +1,6 @@ ;;; mew-summary.el --- Summary mode for Mew -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Oct 2, 1996 ;;; Code: @@ -258,11 +258,8 @@ and return (beg . end)." ;;; Modeline ;;; -(defvar mew-mode-line-target "%p") (defvar mew-mode-line-format `("" - (mew-summary-buffer-left-msgs mew-summary-buffer-left-msgs "L%l") - (mew-summary-buffer-raw "*") (mew-summary-buffer-secure-process ,mew-secure-format2))) (defvar mew-mode-line-process @@ -270,28 +267,17 @@ and return (beg . end)." (mew-summary-buffer-process mew-summary-buffer-process-status))) (defun mew-summary-setup-mode-line () - (let ((tgt mew-mode-line-target) - target prev pos) - (if (boundp 'mode-line-position) - (progn - (make-local-variable 'mode-line-position) ;; Emacs 21.3.50 - (setq mode-line-position - (copy-sequence (default-value 'mode-line-position))) - (setq prev mode-line-position)) - (setq mode-line-format (copy-sequence (default-value 'mode-line-format))) - (setq prev mode-line-format)) - (setq target (or (rassoc (list tgt) prev) ;; Emacs 21.3.50 - (rassoc tgt prev) - (car (member tgt prev)))) - (when target - (setq pos (- (length prev) (length (member target prev)))) - (setcar (nthcdr pos prev) mew-mode-line-format)) - (when (boundp 'line-number-mode) - (make-local-variable 'line-number-mode) - (setq line-number-mode nil)) - (or (assq 'mew-summary-buffer-process mode-line-process) - (setq mode-line-process - (append mew-mode-line-process mode-line-process))))) + (when (boundp 'mode-line-format) + (make-local-variable 'mode-line-format) + (setq mode-line-format + (copy-sequence (default-value 'mode-line-format))) + (nconc mode-line-format mew-mode-line-format)) + (when (boundp 'line-number-mode) + (make-local-variable 'line-number-mode) + (setq line-number-mode nil)) + (or (assq 'mew-summary-buffer-process mode-line-process) + (setq mode-line-process + (append mew-mode-line-process mode-line-process)))) (defun mew-summary-reset-mode-line () (setq mew-summary-buffer-left-msgs nil)) @@ -397,7 +383,7 @@ and return (beg . end)." ;;; Copyright Notice: -;; Copyright (C) 1996-2015 Mew developing team. +;; Copyright (C) 1996-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-summary2.el b/elpa/mew-20230415.633/mew-summary2.el similarity index 99% rename from elpa/mew-20200130.145/mew-summary2.el rename to elpa/mew-20230415.633/mew-summary2.el index 7434d273..65b5269c 100644 --- a/elpa/mew-20200130.145/mew-summary2.el +++ b/elpa/mew-20230415.633/mew-summary2.el @@ -1,11 +1,13 @@ ;;; mew-summary2.el --- Summary mode for Mew -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Oct 2, 1996 ;;; Code: (require 'mew) +(eval-when-compile + (require 'mew-env0)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; @@ -788,7 +790,7 @@ over the window. Type '\\[mew-summary-prev-page]' to see them when a message is ;;; Copyright Notice: -;; Copyright (C) 1996-2015 Mew developing team. +;; Copyright (C) 1996-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-summary3.el b/elpa/mew-20230415.633/mew-summary3.el similarity index 99% rename from elpa/mew-20200130.145/mew-summary3.el rename to elpa/mew-20230415.633/mew-summary3.el index e9b3a4c1..b99dc599 100644 --- a/elpa/mew-20200130.145/mew-summary3.el +++ b/elpa/mew-20230415.633/mew-summary3.el @@ -1,6 +1,6 @@ ;;; mew-summary3.el --- Summary mode for Mew -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Oct 2, 1996 ;;; Code: @@ -461,7 +461,7 @@ attached." ;;; Copyright Notice: -;; Copyright (C) 1996-2015 Mew developing team. +;; Copyright (C) 1996-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-summary4.el b/elpa/mew-20230415.633/mew-summary4.el similarity index 99% rename from elpa/mew-20200130.145/mew-summary4.el rename to elpa/mew-20230415.633/mew-summary4.el index 3e900cc9..6ad7ea03 100644 --- a/elpa/mew-20200130.145/mew-summary4.el +++ b/elpa/mew-20230415.633/mew-summary4.el @@ -1,11 +1,13 @@ ;;; mew-summary4.el --- Summary mode for Mew -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Oct 2, 1996 ;;; Code: (require 'mew) +(eval-when-compile + (require 'mew-env0)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; @@ -1198,7 +1200,7 @@ Executing this command enables searching such information." ;;; Copyright Notice: -;; Copyright (C) 1996-2015 Mew developing team. +;; Copyright (C) 1996-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-syntax.el b/elpa/mew-20230415.633/mew-syntax.el similarity index 99% rename from elpa/mew-20200130.145/mew-syntax.el rename to elpa/mew-20230415.633/mew-syntax.el index 9a6ea2f1..abb88e03 100644 --- a/elpa/mew-20200130.145/mew-syntax.el +++ b/elpa/mew-20230415.633/mew-syntax.el @@ -1,6 +1,6 @@ ;;; mew-syntax.el --- Internal syntax for Mew -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Oct 2, 1996 ;;; Code: @@ -350,8 +350,8 @@ "Display the folder name of this message, its number, its size and its unique id. If this is a cache message, both the unique id and the size are also shown. If called with -'\\[universal-argument]', its Message-ID: and its parent's -Message-ID: are displayed instead. If 'mew-use-cut-file-name' is +'\\[universal-argument]', its Message-Id: and its parent's +Message-Id: are displayed instead. If 'mew-use-cut-file-name' is non-nil, the file path is pushed to the cut buffer of your window system." (interactive "P") @@ -1026,7 +1026,7 @@ system." ;;; Copyright Notice: -;; Copyright (C) 1996-2015 Mew developing team. +;; Copyright (C) 1996-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-thread.el b/elpa/mew-20230415.633/mew-thread.el similarity index 99% rename from elpa/mew-20200130.145/mew-thread.el rename to elpa/mew-20230415.633/mew-thread.el index 7e575cb3..70ef785f 100644 --- a/elpa/mew-20200130.145/mew-thread.el +++ b/elpa/mew-20230415.633/mew-thread.el @@ -1,6 +1,6 @@ ;;; mew-thread.el -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Feb 1, 1999 ;;; Code: @@ -1151,7 +1151,7 @@ The thread/message is specified with the mark(\\[set-mark-command])." ;;; Copyright Notice: -;; Copyright (C) 2000-2015 Mew developing team. +;; Copyright (C) 2000-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-unix.el b/elpa/mew-20230415.633/mew-unix.el similarity index 98% rename from elpa/mew-20200130.145/mew-unix.el rename to elpa/mew-20230415.633/mew-unix.el index 7c407262..f9b0bb9d 100644 --- a/elpa/mew-20200130.145/mew-unix.el +++ b/elpa/mew-20230415.633/mew-unix.el @@ -1,6 +1,6 @@ ;;; mew-unix.el -- Settings for Mew on Unix -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Dec 4, 1997 ;;; Code: @@ -116,7 +116,7 @@ ;;; Copyright Notice: -;; Copyright (C) 1996-2015 Mew developing team. +;; Copyright (C) 1996-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-vars.el b/elpa/mew-20230415.633/mew-vars.el similarity index 95% rename from elpa/mew-20200130.145/mew-vars.el rename to elpa/mew-20230415.633/mew-vars.el index 1777bb62..a6dc23d6 100644 --- a/elpa/mew-20200130.145/mew-vars.el +++ b/elpa/mew-20230415.633/mew-vars.el @@ -1,11 +1,13 @@ ;;; mew-vars.el --- Variables and Constants for Mew -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Nov 22, 1997 ;;; Code: (require 'mew-env) +(eval-when-compile + (require 'mew-env0)) ;;; ;;; User option variables which are easy to set. @@ -117,6 +119,12 @@ :group 'mew-env :type 'directory) +(defcustom mew-suffix ".mew" + "*Suffix of message files. This suffix will be added if +`mew-use-suffix` is non-nil." + :group 'mew-env + :type 'string) + (defcustom mew-pop-inbox-folder "$inbox" "*The default folder for POP." :group 'mew-folder @@ -412,7 +420,8 @@ Eash function is called with a deleted folder as the argument." (defcustom mew-summary-rename-folder-hook nil "*Hook called when a folder renamed. -Each function is called with a source folder and a destination folder as the argument." +Each function is called with a source folder and a destination +folder as the argument." :group 'mew-summary :type 'hook) @@ -569,6 +578,35 @@ is kept for further connections. This must be 't' for IMAP and NNTP." :group 'mew-net :type 'boolean) +(defcustom mew-ssl-default 'tunnel + "*Default SSL/TLS type when mew-{imap,nntp,pop,smtp}-ssl is 't'." + :group 'mew-net + :type '(choice (const :tag "Native (GnuTLS)" native) + (const :tag "External (stunnel)" tunnel))) + +;; XXX: the default value of gnutls-trustfiles can +;; be different from the compile-time list. +(defcustom mew-ssl-trustfiles nil + "List of CA buldle location filenames used by GnuTLS. +nil - use the default list specified at compile time of the Emacs." + :group 'mew-net + :type '(choice (const :tag "System Default" nil) + (repeat string))) + +(defcustom mew-ssl-algorithm-priority nil + "TLS priority string used by GnuTLS. +nil - use the default specified by Emacs Network Security Manager." + :group 'mew-net + :type '(choice (const :tag "System Default" nil) + (string :tag "Priority string"))) + +(defcustom mew-ssl-client-keycert-list nil + "The client-side certificate used for TLS connection. +'((\"keyfile\" \"certfile\")) - A list of key/cert pairs." + :group 'mew-net + :type '(choice (const :tag "None" nil) + (repeat string))) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; SMTP @@ -592,11 +630,19 @@ server, set an appropriate value." (string :tag "Ssh server"))) (defcustom mew-smtp-ssl nil - "*If non-nil, SMTP connections are made over SSL/TLS." + "*If non-nil, SMTP connections are made over SSL/TLS. +native - Use GnuTLS (this requires Emacs compiled with GnuTLS + library). When mew-smtp-ssl-port is equal to + mew-smtp-port, a plain connection will be opened and + upgraded by STARTTLS. +tunnel - Use an external program to establish a TLS tunnel. + stunnel(1) utility is used by default." :group 'mew-smtp - :type 'boolean) + :type '(choice (const :tag "No TLS/SSL" nil) + (const :tag "Native (GnuTLS)" native) + (const :tag "External (stunnel)" tunnel))) -(defcustom mew-smtp-ssl-port 465 ;; no universal consensus +(defcustom mew-smtp-ssl-port 465 ;; RFC 8314 "*The port for SMTP over SSL/TLS. Set this to \"smtp\" if you want to use TLS." :group 'mew-smtp @@ -610,9 +656,9 @@ your e-mail address is automatically set" (defcustom mew-smtp-auth-list '("CRAM-MD5" "PLAIN" "LOGIN") "*A list of SMTP AUTH methods in the preferred order. -Currently, \"CRAM-MD5\", \"PLAIN\", and \"LOGIN\" can be used." +Currently, \"CRAM-MD5\", \"PLAIN\", \"LOGIN\", and \"XOAUTH2\" can be used." :group 'mew-smtp - :type '(repeat (choice (const "CRAM-MD5") (const "PLAIN") (const "LOGIN")))) + :type '(repeat (choice (const "CRAM-MD5") (const "PLAIN") (const "LOGIN") (const "XOAUTH2")))) (defcustom mew-smtp-helo-domain "localhost" "*An e-mail domain to tell a SMTP server with HELO/EHLO." @@ -703,9 +749,17 @@ server, set an appropriate value." :type '(choice string (const nil))) (defcustom mew-pop-ssl nil - "*If non-nil, POP connections are made over SSL/TLS." + "*If non-nil, POP connections are made over SSL/TLS. +native - Use GnuTLS (this requires Emacs compiled with GnuTLS + library). When mew-pop-ssl-port is equal to + mew-pop-port, a plain connection will be opened and + upgraded by STARTTLS. +tunnel - Use an external program to establish a TLS tunnel. + stunnel(1) utility is used by default." :group 'mew-pop - :type 'boolean) + :type '(choice (const :tag "No TLS/SSL" nil) + (const :tag "Native (GnuTLS)" native) + (const :tag "External (stunnel)" tunnel))) (defcustom mew-pop-ssl-port "pop3s" "*The port for POP over SSL/TLS." @@ -727,9 +781,9 @@ t means SASL according to 'mew-pop-auth-list'." (defcustom mew-pop-auth-list '("CRAM-MD5" "PLAIN") "*A list of SASL methods in the preferred order. -Currently, \"CRAM-MD5\" can be used." +Currently, \"CRAM-MD5\", \"PLAIN\", and \"XOAUTH2\" can be used." :group 'mew-pop - :type '(repeat (choice (const "CRAM-MD5") (const "PLAIN")))) + :type '(repeat (choice (const "CRAM-MD5") (const "PLAIN") (const "XOAUTH2")))) (defcustom mew-pop-delete t "*Whether or not delete messages on a POP server after retrieval by @@ -796,9 +850,17 @@ server, set an appropriate value." :type '(choice string (const nil))) (defcustom mew-imap-ssl nil - "*If non-nil, IMAP connections are made over SSL/TLS." + "*If non-nil, IMAP connections are made over SSL/TLS. +native - Use GnuTLS (this requires Emacs compiled with GnuTLS + library). When mew-imap-ssl-port is equal to + mew-imap-port, a plain connection will be opened and + upgraded by STARTTLS. +tunnel - Use an external program to establish a TLS tunnel. + stunnel(1) utility is used by default." :group 'mew-imap - :type 'boolean) + :type '(choice (const :tag "No TLS/SSL" nil) + (const :tag "Native (GnuTLS)" native) + (const :tag "External (stunnel)" tunnel))) (defcustom mew-imap-ssl-port "imaps" "*The port for IMAP over SSL/TLS." @@ -817,11 +879,11 @@ t means SASL according to 'mew-imap-auth-list'." :group 'mew-imap :type 'boolean) -(defcustom mew-imap-auth-list '("CRAM-MD5" "LOGIN") +(defcustom mew-imap-auth-list '("CRAM-MD5" "LOGIN") "*A list of SASL methods in the preferred order. -Currently, \"CRAM-MD5\" and \"LOGIN\" can be used." +Currently, \"CRAM-MD5\", \"LOGIN\", and \"XOAUTH2\" can be used." :group 'mew-imap - :type '(repeat (choice (const "CRAM-MD5") (const "LOGIN")))) + :type '(repeat (choice (const "CRAM-MD5") (const "LOGIN") (const "XOAUTH2")))) (defcustom mew-imap-delete t "*Whether or not delete messages on an IMAP server after retrieval by @@ -913,9 +975,17 @@ server, set an appropriate value." :type '(choice string (const nil))) (defcustom mew-nntp-ssl nil - "*If non-nil, NNTP connections are made over SSL/TLS." + "*If non-nil, NNTP connections are made over SSL/TLS. +native - Use GnuTLS (this requires Emacs compiled with GnuTLS + library). When mew-nntp-ssl-port is equal to + mew-nntp-port, a plain connection will be opened and + upgraded by STARTTLS. +tunnel - Use an external program to establish a TLS tunnel. + stunnel(1) utility is used by default." :group 'mew-nntp - :type 'boolean) + :type '(choice (const :tag "No TLS/SSL" nil) + (const :tag "Native (GnuTLS)" native) + (const :tag "External (stunnel)" tunnel))) (defcustom mew-nntp-ssl-port "nntps" "*The port for NNTP over SSL/TLS." @@ -1665,6 +1735,13 @@ created (if the feature is provided)." :group 'mew-privacy :type 'boolean) +(defcustom mew-master-passwd-type 'master + "*Type of the password manager when mew-use-master-passwd is non-nil." + :group 'mew-privacy + :type '(choice + (const :tag "Master Password" 'master) + (const :tag "auth-source" 'auth-source))) + (defcustom mew-use-8bit nil "*If non-nil, the 8bit-clean charset mechanism is used for 8bit charsets, such as ISO-8859-1, in Draft mode. If nil, an appropriate @@ -2696,7 +2773,9 @@ reversed." (defcustom mew-auto-flush-queue t "If *non-nil* and if there are queued messages in +queue, -they are flushed after getting message (i.e. '\\\\[mew-summary-retrieve]'). This idea saves money in dial up environment." +they are flushed after getting +message (i.e. '\\\\[mew-summary-retrieve]'). This +idea saves money in dial up environment." :group 'mew-draft :type 'boolean) @@ -3288,7 +3367,7 @@ Level 2: syntax error." ;;; Copyright Notice: -;; Copyright (C) 1996-2015 Mew developing team. +;; Copyright (C) 1996-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-vars2.el b/elpa/mew-20230415.633/mew-vars2.el similarity index 99% rename from elpa/mew-20200130.145/mew-vars2.el rename to elpa/mew-20230415.633/mew-vars2.el index c7d629ef..1c9268a8 100644 --- a/elpa/mew-20200130.145/mew-vars2.el +++ b/elpa/mew-20230415.633/mew-vars2.el @@ -1,6 +1,6 @@ ;;; mew-vars2.el -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Feb 1, 1999 ;;; Code: @@ -940,7 +940,8 @@ imap-proxy-server, imap-proxy-port, nntp-server, nntp-port, nntp-ssh-server, nntp-ssl, nntp-ssl-port, nntp-user, nntp-size, nntp-header-only, nntp-msgid-user, nntp-msgid-domain, -ssl-cert-directory, ssl-verify-level, +prog-ssl-arg, ssl-cert-directory, ssl-verify-level, +ssl-algorithm-priority, ssl-client-keycert-list, ssl-trustfiles, inbox-folder, queue-folder, postq-folder, mailbox-type, mbox-command, mbox-command-arg, signature-file, content-type, refile-guess-alist, @@ -984,7 +985,7 @@ An example is as follows: ;;; Copyright Notice: -;; Copyright (C) 2000-2015 Mew developing team. +;; Copyright (C) 2000-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-vars3.el b/elpa/mew-20230415.633/mew-vars3.el similarity index 98% rename from elpa/mew-20200130.145/mew-vars3.el rename to elpa/mew-20230415.633/mew-vars3.el index a35ec18d..f13c750f 100644 --- a/elpa/mew-20200130.145/mew-vars3.el +++ b/elpa/mew-20230415.633/mew-vars3.el @@ -1,10 +1,13 @@ ;;; mew-vars3.el -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: May 10, 2006 ;;; Code: +(eval-when-compile + (require 'mew-env)) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; Macro @@ -194,7 +197,7 @@ ;;; Copyright Notice: -;; Copyright (C) 1996-2015 Mew developing team. +;; Copyright (C) 1996-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-varsx.el b/elpa/mew-20230415.633/mew-varsx.el similarity index 99% rename from elpa/mew-20200130.145/mew-varsx.el rename to elpa/mew-20230415.633/mew-varsx.el index a66afd93..89ad80ad 100644 --- a/elpa/mew-20200130.145/mew-varsx.el +++ b/elpa/mew-20230415.633/mew-varsx.el @@ -1,6 +1,6 @@ ;;; mew-varsx.el --- Variables depends on other variables -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: May 10, 2006 ;;; Code: @@ -239,7 +239,7 @@ ;;; Copyright Notice: -;; Copyright (C) 1996-2015 Mew developing team. +;; Copyright (C) 1996-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-virtual.el b/elpa/mew-20230415.633/mew-virtual.el similarity index 98% rename from elpa/mew-20200130.145/mew-virtual.el rename to elpa/mew-20230415.633/mew-virtual.el index da0c794c..8301c9b3 100644 --- a/elpa/mew-20200130.145/mew-virtual.el +++ b/elpa/mew-20230415.633/mew-virtual.el @@ -1,6 +1,6 @@ ;;; mew-virtual.el --- Virtual mode for Mew -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Oct 2, 1996 ;;; Code: @@ -214,7 +214,7 @@ If called with '\\[universal-argument]', you can specify a target mark." ;;; Copyright Notice: -;; Copyright (C) 1996-2015 Mew developing team. +;; Copyright (C) 1996-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew-win32.el b/elpa/mew-20230415.633/mew-win32.el similarity index 98% rename from elpa/mew-20200130.145/mew-win32.el rename to elpa/mew-20230415.633/mew-win32.el index 4d33cd42..c69c03bc 100644 --- a/elpa/mew-20200130.145/mew-win32.el +++ b/elpa/mew-20230415.633/mew-win32.el @@ -3,6 +3,10 @@ ;; Author: Shuichi Kitaguchi ;; Created: Dec 05, 1997 +(require 'mew) +(eval-when-compile + (require 'mew-env0)) + ;;; Code: (eval-when-compile @@ -237,7 +241,7 @@ ;;; Copyright Notice: -;; Copyright (C) 1996-2015 Mew developing team. +;; Copyright (C) 1996-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew.el b/elpa/mew-20230415.633/mew.el similarity index 99% rename from elpa/mew-20200130.145/mew.el rename to elpa/mew-20230415.633/mew.el index 64c19b01..5d82ea1c 100644 --- a/elpa/mew-20200130.145/mew.el +++ b/elpa/mew-20230415.633/mew.el @@ -1,8 +1,8 @@ ;;; mew.el --- Messaging in the Emacs World -;; Author: Kazu Yamamoto +;; Author: Mew developing team ;; Created: Mar 23, 1994 -;; Revised: Jun 7, 2018 +;; Revised: Feb 10, 2023 ;;; Commentary: @@ -18,7 +18,7 @@ ;;; Mew version ;;; -(defconst mew-version-number "6.8" +(defconst mew-version-number "6.9" "Version number for this version of Mew.") (defconst mew-version (format "Mew version %s" mew-version-number) "Version string for this version of Mew.") @@ -29,6 +29,8 @@ (require 'mew-vars) ;; mew-env && mew-key (require 'mew-vars2) (require 'mew-vars3) +(eval-when-compile + (require 'mew-env0)) (defun mew-version-show () "Show mew-version in minibuffer." @@ -744,7 +746,7 @@ Mew remain, so you can resume with buffer operations." ;;; Copyright Notice: -;; Copyright (C) 1994-2015 Mew developing team. +;; Copyright (C) 1994-2023 Mew developing team. ;; All rights reserved. ;; Redistribution and use in source and binary forms, with or without diff --git a/elpa/mew-20200130.145/mew.info b/elpa/mew-20230415.633/mew.info similarity index 99% rename from elpa/mew-20200130.145/mew.info rename to elpa/mew-20230415.633/mew.info index 58c3c56e..407f1da6 100644 --- a/elpa/mew-20200130.145/mew.info +++ b/elpa/mew-20230415.633/mew.info @@ -1,6 +1,6 @@ Info file: mew.info, -*-Text-*- produced by ‘texinfo-format-buffer’ -from file ‘mew.texi’ +from file ‘tmp.texi’ using ‘texinfmt.el’ version 2.42 of 7 Jul 2006. INFO-DIR-SECTION Message User Agent @@ -15,14 +15,14 @@ END-INFO-DIR-ENTRY  File: mew.info, Node: Top, Next: Overview, Prev: (dir), Up: (dir) -Mew 6.8 Manual +Mew 6.9 Manual ************** Kazu YAMAMOTO Created 1996/02/18 - Modified 2018/06/07 + Modified 2023/02/11 -This manual documents Mew version 6.8. In addition to this manual, you +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/). @@ -80,7 +80,7 @@ File: mew.info, Node: characteristic, Next: Emacsen, Prev: Overview, Up: Overvie Mew's features ============== -The features of Mew 6.8 are as follows: +The features of Mew 6.9 are as follows: - You can easily display a very complicated structured message. What you should do to view messages is just type `SPC'. @@ -117,7 +117,7 @@ File: mew.info, Node: Emacsen, Next: modes, Prev: characteristic, Up: Overview Supported Emacs versions ======================== -Please use Emacs 24.3 or later. Mew doesn't support earlier versions +Please use Emacs 26.1 or later. Mew doesn't support earlier versions nor XEmacs. @@ -1223,7 +1223,7 @@ Then a buffer like the following is prepared. To: Subject: From: Kazu Yamamoto - X-Mailer: Mew version 6.8 on Emacs 26.1 + X-Mailer: Mew version 6.9 on Emacs 28.2 ---- We call this "Draft mode". In Draft mode, we call the region above @@ -1734,7 +1734,7 @@ following example: To: pooh Subject: the next Sunday From: Piglet - X-Mailer: Mew version 6.8 on Emacs 26.1 + X-Mailer: Mew version 6.9 on Emacs 28.2 ---- Would you like to play with me next Sunday? @@ -1748,7 +1748,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.8 on Emacs 26.1 + X-Mailer: Mew version 6.9 on Emacs 28.2 Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit @@ -1882,7 +1882,7 @@ body. Now the entire draft looks like: To: mew-dist Subject: This is header - X-Mailer: Mew version 6.8 on Emacs 26.1 + X-Mailer: Mew version 6.9 on Emacs 28.2 ---- This is the body. @@ -4347,8 +4347,8 @@ and format in `mew-cite-format'. Define citation prefix to To add Message-ID: to citation label, take this way. - (setq mew-cite-fields '("From:" "Subject:" "Date:" "Message-ID:")) - (setq mew-cite-format "From: %s\nSubject: %s\nDate: %s\nMessage-ID: %s\n\n") + (setq mew-cite-fields '("From:" "Subject:" "Date:" "Message-Id:")) + (setq mew-cite-format "From: %s\nSubject: %s\nDate: %s\nMessage-Id: %s\n\n") To add a user part of an address to the citation prefix, configure as follows: @@ -4510,7 +4510,7 @@ If `mew-use-highlight-x-face' is `t', X-Face: in a header is iconified in Message mode. The default value is `t'. To use this feature, install the "netpbm" package and the "compface" package. -To modify colors, copy "dot.theme" contained Mew's source file to +To modify colors, copy "conf/dot.theme" contained Mew's source file to an appropriate place, say "~/.mew-theme.el". First, set `mew-theme-file' to this file name in ".mew.el" as follows: @@ -4534,7 +4534,7 @@ configuration as follows: (mew-setface-bold header-subject :tty "green" :light "ForestGreen" :dark "LimeGreen") -To know what kind of symbols are prepared, see the "dot.mew". +To know what kind of symbols are prepared, see the "conf/dot.theme". The method above does not prepare symbols for all field names and field value. So, `mew-header-color' and `mew-header-color-bold' exist @@ -4817,7 +4817,11 @@ password. This section describes following variables to control SMTP. `mew-smtp-server' The name of your SMTP server. `mew-smtp-port' - The port for SMTP. + The port for SMTP. When an absolute pathname is specified, it + will be used as a Unix domain socket. +`mew-smtp-submission-family' + The address family to be used for the SMTP server. The default + value is 'ipv4. `mew-smtp-ssh-server' The name of SSH server which forwards the SMTP port. `mew-smtp-ssl' @@ -4856,6 +4860,16 @@ number is 587), configure as follows: (setq mew-smtp-port "submission") +If you want to use a Unix domain socket to connect MTA, configure as +follows: + + (setq mew-smtp-port "/var/run/msp.sock") + +If you want to use IPv6 as the transport protocol to connect MTA, +configure as follows: + + (setq mew-smtp-submission-family 'ipv6) + Please refer also to SSL (*Note SSL::) and TLS (*Note TLS::). Some SMTP servers are mis-configured. They requests authentication @@ -4940,7 +4954,7 @@ the variable `mew-"key"'. The following list enumerates such keys. nntp-server, nntp-port, nntp-ssh-server, nntp-ssl, nntp-ssl-port, nntp-user, nntp-size, nntp-header-only, nntp-msgid-user, nntp-msgid-domain, - ssl-cert-directory, ssl-verify-level, + prog-ssl-arg, ssl-cert-directory, ssl-verify-level, inbox-folder, queue-folder, postq-folder, mailbox-type, mbox-command, mbox-command-arg, signature-file, content-type, refile-guess-alist, @@ -5644,7 +5658,7 @@ Copyright Mew conforms the following copyright. -Copyright (C) 1994-2018 Mew developing team. +Copyright (C) 1994-2023 Mew developing team. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -5888,6 +5902,7 @@ Variable Index * mew-smtp-ssl: SSL. (line 5) * mew-smtp-ssl-port: smtp. * mew-smtp-ssl: smtp. +* mew-smtp-submission-family: smtp. * mew-smtp-user: smtp. * mew-sort-default-key-alist: sorting. (line 5) * mew-sort-default-key: sorting. (line 5) @@ -6305,32 +6320,32 @@ Node: message-mode147542 Node: draft-mode151076 Node: charset154043 Node: highlight156249 -Node: hooks159213 -Node: pop163762 -Node: imap165441 -Node: nntp167009 -Node: smtp168370 -Node: config170855 -Node: config2176785 -Node: custom-misc178301 -Node: Tips179322 -Node: region179910 -Node: visiting180600 -Node: SSH181130 -Node: SSL182102 -Node: TLS184475 -Node: spam185374 -Node: spam2187663 -Node: addr-warn188997 -Node: biff190125 -Node: edit190883 -Node: Convention192158 -Node: Implementation194226 -Node: Avail196589 -Node: obtain196896 -Node: ml197188 -Node: Copyright197476 -Node: Variable Index199425 -Node: Key Index214736 +Node: hooks159225 +Node: pop163774 +Node: imap165453 +Node: nntp167021 +Node: smtp168382 +Node: config171334 +Node: config2177278 +Node: custom-misc178794 +Node: Tips179815 +Node: region180403 +Node: visiting181093 +Node: SSH181623 +Node: SSL182595 +Node: TLS184968 +Node: spam185867 +Node: spam2188156 +Node: addr-warn189490 +Node: biff190618 +Node: edit191376 +Node: Convention192651 +Node: Implementation194719 +Node: Avail197082 +Node: obtain197389 +Node: ml197681 +Node: Copyright197969 +Node: Variable Index199918 +Node: Key Index215267  End tag table diff --git a/elpa/mew-20200130.145/mew.ja.info b/elpa/mew-20230415.633/mew.ja.info similarity index 98% rename from elpa/mew-20200130.145/mew.ja.info rename to elpa/mew-20230415.633/mew.ja.info index 9b7d7b34..d6b4aeda 100644 --- a/elpa/mew-20200130.145/mew.ja.info +++ b/elpa/mew-20230415.633/mew.ja.info @@ -1,6 +1,6 @@ Info file: mew.ja.info, -*-Text-*- produced by ‘texinfo-format-buffer’ -from file ‘mew.texi’ +from file ‘tmpj.texi’ using ‘texinfmt.el’ version 2.42 of 7 Jul 2006. INFO-DIR-SECTION Message User Agent @@ -15,14 +15,14 @@ END-INFO-DIR-ENTRY  File: mew.ja.info, Node: Top, Next: Overview, Prev: (dir), Up: (dir) -Mew 6.8 マニュアル +Mew 6.9 マニュアル ****************** 山本和彦 作成 1996/02/19 - 更新 2018/06/07 + 更新 2023/02/11 -このマニュアルでは、Mew バージョン 6.8 について解説します。このマニュ +このマニュアルでは、Mew バージョン 6.9 について解説します。このマニュ アルの他に、Mew に関する有益な情報は Mew の公式ホームページ (http://www.Mew.org/)から得られるかもしれません。 @@ -80,7 +80,7 @@ File: mew.ja.info, Node: characteristic, Next: Emacsen, Prev: Overview, Up: Over Mew の特長 ========== -Mew バージョン 6.8 の特長を以下に示します。 +Mew バージョン 6.9 の特長を以下に示します。 - 複雑な構造を持つメッセージを簡単に表示できます。メッセージを表示 する作業は、`SPC' を押すだけです。 @@ -118,7 +118,7 @@ File: mew.ja.info, Node: Emacsen, Next: modes, Prev: characteristic, Up: Overvie Emacs のバージョン ================== -Emacs 24.3 以降を使って下さい。これらより前のバージョンや XEmacs は、 +Emacs 26.1 以降を使って下さい。これらより前のバージョンや XEmacs は、 サポートしていません。 @@ -1183,7 +1183,7 @@ File: mew.ja.info, Node: Composing, Next: header, Prev: invalid, Up: Top To: Subject: From: Kazu Yamamoto - X-Mailer: Mew version 6.8 on Emacs 26.1 + X-Mailer: Mew version 6.9 on Emacs 28.2 ---- これを Draft モードといいます。Draft モードにおいて、"----" より上をヘッ @@ -1666,7 +1666,7 @@ File: mew.ja.info, Node: send, Next: cite, Prev: addr-comp2, Up: Composing To: pooh Subject: 明日の日曜日 From: Piglet - X-Mailer: Mew version 6.8 on Emacs 26.1 + X-Mailer: Mew version 6.9 on Emacs 28.2 ---- 明日の日曜日、遊びませんか? @@ -1680,7 +1680,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.8 on Emacs 26.1 + X-Mailer: Mew version 6.9 on Emacs 28.2 Mime-Version: 1.0 Content-Type: Text/Plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit @@ -1808,7 +1808,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.8 on Emacs 26.1 + X-Mailer: Mew version 6.9 on Emacs 28.2 ---- 本文だよ。 @@ -4221,8 +4221,8 @@ Draft mode 引用ラベルに Message-ID: を加えるには以下のようにします。 - (setq mew-cite-fields '("From:" "Subject:" "Date:" "Message-ID:")) - (setq mew-cite-format "From: %s\nSubject: %s\nDate: %s\nMessage-ID: %s\n\n") + (setq mew-cite-fields '("From:" "Subject:" "Date:" "Message-Id:")) + (setq mew-cite-format "From: %s\nSubject: %s\nDate: %s\nMessage-Id: %s\n\n") 引用記号にアドレスのユーザ部分が付くようにするには以下のようにします。 @@ -4376,7 +4376,7 @@ Message モードでアイコン化されます。初期値は `t' です。こ 利用するには、"netpbm" と "compface" パッケージをインストールして下 さい。 -色を変更するには、Mew のソースと一緒に配布されている "dot.theme" を +色を変更するには、Mew のソースと一緒に配布されている "conf/dot.theme" を 適当な名前でコピーし内容を変更します。ここでは、そのファイル名を "~/.mew-theme.el" としましょう。まず、この名前を ".mew.el" で `mew-theme-file' に指定して下さい。 @@ -4399,7 +4399,7 @@ Message モードでアイコン化されます。初期値は `t' です。こ (mew-setface-bold header-subject :tty "green" :light "ForestGreen" :dark "LimeGreen") -シンボルに何があるのかは、"dot.mew" を見て下さい。 +シンボルに何があるのかは、"conf/dot.theme" を見て下さい。 上記の方法では、ヘッダのすべてのフィールド名やフィールド値に対してシン ボルが定義されている訳ではありません。そこで、どんなフィールドの色でも @@ -4681,7 +4681,10 @@ Mew では、メッセージを送信する際に SMTP を利用します。SMTP `mew-smtp-server' SMTP サーバの名前。 `mew-smtp-port' - SMTP ポート番号。 + SMTP ポート番号。絶対パス名を指定すると Unix ドメインソケットを使 + 用する。 +`mew-smtp-submission-family' + SMTP サーバと接続する際に用いるアドレスファミリ。初期値は 'ipv4。 `mew-smtp-ssh-server' SSH 経由でメッセージを送る際の SSH サーバの名前。 `mew-smtp-ssl' @@ -4719,6 +4722,16 @@ Message Submission (ポート番号が 587 である送信用の SMTP)を使い (setq mew-smtp-port "submission") +送信サーバとの接続に Unix ドメインソケットを使いたい場合は、以下のように +`mew-smtp-port' に絶対パス名を設定して下さい。 + + (setq mew-smtp-port "/var/run/msp.sock") + +送信サーバとの接続に IPv6 を使いたい場合は、以下のように +`mew-smtp-submission-family' に 'ipv6 を設定して下さい。 + + (setq mew-smtp-submission-family 'ipv6) + SSL (*Note SSL::)や TLS (*Note TLS::) の章も参考にして下さい。 SMTP サーバの中には、認証なし、つまりパスワードを送られるとエラーと見 @@ -4798,7 +4811,7 @@ File: mew.ja.info, Node: config, Next: config2, Prev: smtp, Up: Customize nntp-server, nntp-port, nntp-ssh-server, nntp-ssl, nntp-ssl-port, nntp-user, nntp-size, nntp-header-only, nntp-msgid-user, nntp-msgid-domain, - ssl-cert-directory, ssl-verify-level, + prog-ssl-arg, ssl-cert-directory, ssl-verify-level, inbox-folder, queue-folder, postq-folder, mailbox-type, mbox-command, mbox-command-arg, signature-file, content-type, refile-guess-alist, @@ -5484,7 +5497,7 @@ File: mew.ja.info, Node: Copyright, Next: Variable Index, Prev: ml, Up: Top Mew は以下の著作権に従います。 -Copyright (C) 1994-2018 Mew developing team. +Copyright (C) 1994-2023 Mew developing team. All rights reserved. 変更の有無にかかわらず、ソースおよびバイナリ形式の再配布および利用は、 @@ -5725,6 +5738,7 @@ File: mew.ja.info, Node: Variable Index, Next: Key Index, Prev: Copyright, Up: T * mew-smtp-ssl: SSL. (line 5) * mew-smtp-ssl-port: smtp. * mew-smtp-ssl: smtp. +* mew-smtp-submission-family: smtp. * mew-smtp-user: smtp. * mew-sort-default-key-alist: sorting. (line 5) * mew-sort-default-key: sorting. (line 5) @@ -6063,111 +6077,111 @@ File: mew.ja.info, Node: Key Index, Prev: Variable Index, Up: Top * zz (Summary): message-mode. (line 5)  Tag table: -Node: Top288 -Node: Overview1325 -Node: characteristic1968 -Node: Emacsen2980 -Node: modes3158 -Node: folder convention3668 -Node: configuration5541 -Node: password7870 -Node: start9449 -Node: Viewing10214 -Node: singlepart11193 -Node: multipart12097 -Node: analysis14362 -Node: cipher-viewing16623 -Node: retrieving19502 -Node: moving22065 -Node: sum-write23630 -Node: features25094 -Node: status-update26668 -Node: invalid27369 -Node: Composing28665 -Node: header30173 -Node: cheader30847 -Node: addr-comp32052 -Node: addrbook33047 -Node: auto-alias35186 -Node: addr-comp136196 -Node: addr-comp237889 -Node: send39250 -Node: cite41360 -Node: mime-comp42761 -Node: charset-guess48340 -Node: longline50560 -Node: reply51696 -Node: forward54701 -Node: resend55293 -Node: shortcut56474 -Node: mark-b-comp59886 -Node: pgp-key62300 -Node: anonymous62875 -Node: Marks63850 -Node: unread mark64993 -Node: delete mark65865 -Node: refile mark67450 -Node: target mark68443 -Node: escape mark69504 -Node: unmark70019 -Node: mark change70636 -Node: sync71501 -Node: off-line72194 -Node: mew-mark73461 -Node: Refile73989 -Node: by-folder75137 -Node: by-alist76318 -Node: by-thread77972 -Node: by-from-folder78588 -Node: by-from79541 -Node: by-newsgroups80752 -Node: by-default80987 -Node: guess-rule81344 -Node: auto-refile82872 -Node: copy-msg84573 -Node: Virtual85442 -Node: selection86560 -Node: sorting87066 -Node: dialog88344 -Node: search89010 -Node: condition89647 -Node: dbsearch91385 -Node: keyword92267 -Node: thread92766 -Node: thread-op93571 -Node: Quit94887 -Node: Customize95310 -Node: summary-mode95998 -Node: message-mode98787 -Node: draft-mode101380 -Node: charset103475 -Node: highlight105101 -Node: hooks107141 -Node: pop110547 -Node: imap111629 -Node: nntp112640 -Node: smtp113759 -Node: config115496 -Node: config2120010 -Node: custom-misc121166 -Node: Tips121883 -Node: region122410 -Node: visiting122919 -Node: SSH123281 -Node: SSL123878 -Node: TLS125429 -Node: spam126140 -Node: spam2127891 -Node: addr-warn129010 -Node: biff129783 -Node: edit130265 -Node: Convention131025 -Node: Implementation132065 -Node: Avail133524 -Node: obtain133773 -Node: ml133997 -Node: Copyright134188 -Node: Variable Index135196 -Node: Key Index150455 +Node: Top289 +Node: Overview1326 +Node: characteristic1969 +Node: Emacsen2981 +Node: modes3159 +Node: folder convention3669 +Node: configuration5542 +Node: password7871 +Node: start9450 +Node: Viewing10215 +Node: singlepart11194 +Node: multipart12098 +Node: analysis14363 +Node: cipher-viewing16624 +Node: retrieving19503 +Node: moving22066 +Node: sum-write23631 +Node: features25095 +Node: status-update26669 +Node: invalid27370 +Node: Composing28666 +Node: header30174 +Node: cheader30848 +Node: addr-comp32053 +Node: addrbook33048 +Node: auto-alias35187 +Node: addr-comp136197 +Node: addr-comp237890 +Node: send39251 +Node: cite41361 +Node: mime-comp42762 +Node: charset-guess48341 +Node: longline50561 +Node: reply51697 +Node: forward54702 +Node: resend55294 +Node: shortcut56475 +Node: mark-b-comp59887 +Node: pgp-key62301 +Node: anonymous62876 +Node: Marks63851 +Node: unread mark64994 +Node: delete mark65866 +Node: refile mark67451 +Node: target mark68444 +Node: escape mark69505 +Node: unmark70020 +Node: mark change70637 +Node: sync71502 +Node: off-line72195 +Node: mew-mark73462 +Node: Refile73990 +Node: by-folder75138 +Node: by-alist76319 +Node: by-thread77973 +Node: by-from-folder78589 +Node: by-from79542 +Node: by-newsgroups80753 +Node: by-default80988 +Node: guess-rule81345 +Node: auto-refile82873 +Node: copy-msg84574 +Node: Virtual85443 +Node: selection86561 +Node: sorting87067 +Node: dialog88345 +Node: search89011 +Node: condition89648 +Node: dbsearch91386 +Node: keyword92268 +Node: thread92767 +Node: thread-op93572 +Node: Quit94888 +Node: Customize95311 +Node: summary-mode95999 +Node: message-mode98788 +Node: draft-mode101381 +Node: charset103476 +Node: highlight105102 +Node: hooks107154 +Node: pop110560 +Node: imap111642 +Node: nntp112653 +Node: smtp113772 +Node: config115865 +Node: config2120393 +Node: custom-misc121549 +Node: Tips122266 +Node: region122793 +Node: visiting123302 +Node: SSH123664 +Node: SSL124261 +Node: TLS125812 +Node: spam126523 +Node: spam2128274 +Node: addr-warn129393 +Node: biff130166 +Node: edit130648 +Node: Convention131408 +Node: Implementation132448 +Node: Avail133907 +Node: obtain134156 +Node: ml134380 +Node: Copyright134571 +Node: Variable Index135579 +Node: Key Index150876  End tag table -- 2.47.3