commit d2d4916046e31e46598f0a0edbc65e75b8cb4cc3 (HEAD, refs/remotes/origin/master) Author: Jimmy Aguilar Mena Date: Sun May 12 23:20:54 2019 +0200 ; * lisp/faces.el (fill-column-indicator): Fix typo. diff --git a/lisp/faces.el b/lisp/faces.el index 207b627f25..89b598669c 100644 --- a/lisp/faces.el +++ b/lisp/faces.el @@ -2504,7 +2504,7 @@ unwanted effects." (defface fill-column-indicator '((t :inherit shadow :weight normal :slant normal :underline nil :overline nil :strike-through nil - :box nil :invert-video nil :stipple nil)) + :box nil :inverse-video nil :stipple nil)) "Face for displaying fill column indicator. This face is used when `display-fill-column-indicator-mode' is non-nil." commit fccc3d80671d25628fb9b2cf52edd8e5724760a3 Author: Xu Chunyang Date: Sun May 12 16:35:49 2019 -0400 (eww-follow-link): Record the location properly when following #links * lisp/net/eww.el (eww-follow-link): Record the location properly when following #links (bug#35445). diff --git a/lisp/net/eww.el b/lisp/net/eww.el index 3e9334532c..d9ac3e1ff5 100644 --- a/lisp/net/eww.el +++ b/lisp/net/eww.el @@ -1519,6 +1519,7 @@ If EXTERNAL is double prefix, browse in new buffer." (eww-same-page-p url (plist-get eww-data :url))) (let ((dom (plist-get eww-data :dom))) (eww-save-history) + (plist-put eww-data :url url) (eww-display-html 'utf-8 url dom nil (current-buffer)))) (t (eww-browse-url url external))))) commit 3c1967dbfe06b28ac074aee1e55a79bacfc36f8d Author: Stefan Monnier Date: Sun May 12 13:03:24 2019 -0400 * lisp/emacs-lisp/packages.el: Add `all` to package-check-signature (package-check-signature): Add `all` option. (package--check-signature-content): Adjust accordingly. diff --git a/etc/NEWS b/etc/NEWS index d10a553244..43ad8be1cc 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -718,6 +718,12 @@ it can't find the config file. ** Package +*** Change of 'package-check-signature' for packages with multiple sigs +In previous Emacsen, 't' checked that all signatures are valid. +Now 't' only checks that at least one signature is valid and the new 'all' +value needs to be used if you want to enforce that all signatures +are valid. This only affects packages with multiple signatures. + *** New function 'package-get-version' lets packages query their own version. Example use in auctex.el: '(defconst auctex-version (package-get-version))' diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index 61cf690697..949ad711ae 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -334,16 +334,22 @@ default directory." (epg-find-configuration 'OpenPGP)) 'allow-unsigned) "Non-nil means to check package signatures when installing. -The value `allow-unsigned' means to still install a package even if -it is unsigned. +More specifically the value can be: +- nil: package signatures are ignored. +- `allow-unsigned': install a package even if it is unsigned, + but if it is signed and we have the key for it, verify the signature. +- t: accept a package only if it comes with at least one verified signature. +- `all': same as t, except when the package has several signatures, + in which case we verify all the signatures. This also applies to the \"archive-contents\" file that lists the contents of the archive." :type '(choice (const nil :tag "Never") (const allow-unsigned :tag "Allow unsigned") - (const t :tag "Check always")) + (const t :tag "Check always") + (const all :tag "Check all signatures")) :risky t - :version "24.4") + :version "27.1") (defcustom package-unsigned-archives nil "List of archives where we do not check for package signatures." @@ -1257,7 +1263,9 @@ errors." (unless (and (eq package-check-signature 'allow-unsigned) (eq (epg-signature-status sig) 'no-pubkey)) (setq had-fatal-error t)))) - (when (or (null good-signatures) had-fatal-error) + (when (or (null good-signatures) + (and (eq package-check-signature 'all) + had-fatal-error)) (package--display-verify-error context sig-file) (signal 'bad-signature (list sig-file))) good-signatures))) commit 29531785a17acf519070b73b488ad87ddd94aff7 Author: Noam Postavsky Date: Sun May 5 13:24:15 2019 -0400 Improve printing for named keyboard macros (Bug#35486) * lisp/macros.el (macros--insert-vector-macro): New function, extracted from insert-kbd-macro. (insert-kbd-macro): Use it and kmacro-extract-lambda to produce nicer expressions for macros produced by kmacro-lambda-form. diff --git a/lisp/kmacro.el b/lisp/kmacro.el index fc34e16708..01dc058614 100644 --- a/lisp/kmacro.el +++ b/lisp/kmacro.el @@ -776,6 +776,7 @@ If kbd macro currently being defined end it before activating it." ;; letters and digits, provided that we inhibit the keymap while ;; executing the macro later on (but that's controversial...) +;;;###autoload (defun kmacro-lambda-form (mac &optional counter format) "Create lambda form for macro bound to symbol or key." (if counter diff --git a/lisp/macros.el b/lisp/macros.el index ba6a840d60..4b38506d8a 100644 --- a/lisp/macros.el +++ b/lisp/macros.el @@ -36,6 +36,16 @@ ;;;###autoload (defalias 'name-last-kbd-macro #'kmacro-name-last-macro) +(defun macros--insert-vector-macro (definition) + "Print DEFINITION, a vector, into the current buffer." + (dotimes (i (length definition)) + (let ((char (aref definition i))) + (insert (if (zerop i) ?\[ ?\s)) + (if (characterp char) + (princ (prin1-char char) (current-buffer)) + (prin1 char (current-buffer))))) + (insert ?\])) + ;;;###autoload (defun insert-kbd-macro (macroname &optional keys) "Insert in buffer the definition of kbd macro MACRONAME, as Lisp code. @@ -111,19 +121,17 @@ use this command, and then save the file." (delete-region (point) (1+ (point))) (insert "\\M-\\C-?")))))) (if (vectorp definition) - (let ((len (length definition)) (i 0) char) - (while (< i len) - (insert (if (zerop i) ?\[ ?\s)) - (setq char (aref definition i) - i (1+ i)) - (if (not (numberp char)) - (prin1 char (current-buffer)) - (princ (prin1-char char) (current-buffer)))) - (insert ?\])) - ;; FIXME: For kmacros, we shouldn't write the (lambda ...) - ;; gunk but instead we should write something more abstract like - ;; (kmacro-create [] 0 "%d"). - (prin1 definition (current-buffer)))) + (macros--insert-vector-macro definition) + (pcase (kmacro-extract-lambda definition) + (`(,vecdef ,counter ,format) + (insert "(kmacro-lambda-form ") + (macros--insert-vector-macro vecdef) + (insert " ") + (prin1 counter (current-buffer)) + (insert " ") + (prin1 format (current-buffer)) + (insert ")")) + (_ (prin1 definition (current-buffer)))))) (insert ")\n") (if keys (let ((keys (or (where-is-internal (symbol-function macroname) commit b1cc876b6c9d00cd9d9f4ed65176274bf35a81c4 Author: Noam Postavsky Date: Sun May 5 09:13:19 2019 -0400 Use remapping in ffap-bindings (Bug#35577) * lisp/ffap.el (ffap-bindings): Bind to the [remap COMMAND] instead of hardcoding the default keybindings. This better adapts better if non-default are used. And lets the original keybindings be remembered, so that, e.g., \[find-file] in docstrings will still be substituted with C-x C-f (even though that binding has been remapped to find-file-at-point. diff --git a/lisp/ffap.el b/lisp/ffap.el index 36e37e95fe..bcb5efef54 100644 --- a/lisp/ffap.el +++ b/lisp/ffap.el @@ -2042,19 +2042,19 @@ This hook is intended to be put in `file-name-at-point-functions'." '((global-set-key [S-mouse-3] 'ffap-at-mouse) (global-set-key [C-S-mouse-3] 'ffap-menu) - (global-set-key "\C-x\C-f" 'find-file-at-point) - (global-set-key "\C-x\C-r" 'ffap-read-only) - (global-set-key "\C-x\C-v" 'ffap-alternate-file) - - (global-set-key "\C-x4f" 'ffap-other-window) - (global-set-key "\C-x5f" 'ffap-other-frame) - (global-set-key "\C-x4r" 'ffap-read-only-other-window) - (global-set-key "\C-x5r" 'ffap-read-only-other-frame) - - (global-set-key "\C-xd" 'dired-at-point) - (global-set-key "\C-x4d" 'ffap-dired-other-window) - (global-set-key "\C-x5d" 'ffap-dired-other-frame) - (global-set-key "\C-x\C-d" 'ffap-list-directory) + (global-set-key [remap find-file] 'find-file-at-point) + (global-set-key [remap find-file-read-only] 'ffap-read-only) + (global-set-key [remap find-alternate-file] 'ffap-alternate-file) + + (global-set-key [remap find-file-other-window] 'ffap-other-window) + (global-set-key [remap find-file-other-frame] 'ffap-other-frame) + (global-set-key [remap find-file-read-only-other-window] 'ffap-read-only-other-window) + (global-set-key [remap find-file-read-only-other-frame] 'ffap-read-only-other-frame) + + (global-set-key [remap dired] 'dired-at-point) + (global-set-key [remap dired-other-window] 'ffap-dired-other-window) + (global-set-key [remap dired-other-frame] 'ffap-dired-other-frame) + (global-set-key [remap list-directory] 'ffap-list-directory) (add-hook 'gnus-summary-mode-hook 'ffap-gnus-hook) (add-hook 'gnus-article-mode-hook 'ffap-gnus-hook) commit 571d802df38cb1d3f93222f2977b766995616ac7 Author: Basil L. Contovounesios Date: Sat May 4 16:29:39 2019 +0100 Fix Gnus summary widget navigation across frames * lisp/gnus/gnus-sum.el (gnus-summary-widget-forward) (gnus-summary-widget-backward): Signal more informative error if article window is not found. Consider other frames displaying article buffer, and raise its frame before navigating its widgets. (bug#35565) * lisp/gnus/gnus-win.el (gnus-get-buffer-window): Simplify and add docstring. diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el index b8aa302f11..ac222acfd2 100644 --- a/lisp/gnus/gnus-sum.el +++ b/lisp/gnus/gnus-sum.el @@ -9423,8 +9423,11 @@ With optional ARG, move across that many fields." (interactive "p") (gnus-summary-select-article) (gnus-configure-windows 'article) - (select-window (gnus-get-buffer-window gnus-article-buffer)) - (widget-forward arg)) + (let ((win (or (gnus-get-buffer-window gnus-article-buffer t) + (error "No article window found")))) + (select-window win) + (select-frame-set-input-focus (window-frame win)) + (widget-forward arg))) (defun gnus-summary-widget-backward (arg) "Move point to the previous field or button in the article. @@ -9432,10 +9435,13 @@ With optional ARG, move across that many fields." (interactive "p") (gnus-summary-select-article) (gnus-configure-windows 'article) - (select-window (gnus-get-buffer-window gnus-article-buffer)) - (unless (widget-at (point)) - (goto-char (point-max))) - (widget-backward arg)) + (let ((win (or (gnus-get-buffer-window gnus-article-buffer t) + (error "No article window found")))) + (select-window win) + (select-frame-set-input-focus (window-frame win)) + (unless (widget-at (point)) + (goto-char (point-max))) + (widget-backward arg))) (defun gnus-summary-isearch-article (&optional regexp-p) "Do incremental search forward on the current article. diff --git a/lisp/gnus/gnus-win.el b/lisp/gnus/gnus-win.el index 5f7154c545..a992fe731c 100644 --- a/lisp/gnus/gnus-win.el +++ b/lisp/gnus/gnus-win.el @@ -28,6 +28,7 @@ (require 'gnus) (require 'gnus-util) +(require 'seq) (defgroup gnus-windows nil "Window configuration." @@ -509,15 +510,15 @@ should have point." (delq lowest-buf bufs))))) (defun gnus-get-buffer-window (buffer &optional frame) - (cond ((and (null gnus-use-frames-on-any-display) - (memq frame '(t 0 visible))) - (car - (let ((frames (frames-on-display-list))) - (seq-remove (lambda (win) (not (memq (window-frame win) - frames))) - (get-buffer-window-list buffer nil frame))))) - (t - (get-buffer-window buffer frame)))) + "Return a window currently displaying BUFFER, or nil if none. +Like `get-buffer-window', but respecting +`gnus-use-frames-on-any-display'." + (if (and (not gnus-use-frames-on-any-display) + (memq frame '(t 0 visible))) + (let ((frames (frames-on-display-list))) + (seq-find (lambda (win) (memq (window-frame win) frames)) + (get-buffer-window-list buffer nil frame))) + (get-buffer-window buffer frame))) (provide 'gnus-win) commit bb60144d00fce90d7db1fdb5b67d6aa266e5010a Author: Basil L. Contovounesios Date: Thu Apr 11 14:42:20 2019 +0100 Make application/x-patch inlinable in mm-decode.el * lisp/gnus/mm-decode.el (mm-inline-media-tests, mm-inlined-types): Include application/x-patch as a synonym of text/x-patch and text/x-diff. (bug#35236) diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el index 3f255419e7..93b57706f8 100644 --- a/lisp/gnus/mm-decode.el +++ b/lisp/gnus/mm-decode.el @@ -236,6 +236,7 @@ before the external MIME handler is invoked." ("text/x-patch" mm-display-patch-inline identity) ;; In case mime.types uses x-diff (as does Debian's mime-support-3.40). ("text/x-diff" mm-display-patch-inline identity) + ("application/x-patch" mm-display-patch-inline identity) ("application/emacs-lisp" mm-display-elisp-inline identity) ("application/x-emacs-lisp" mm-display-elisp-inline identity) ("application/x-shellscript" mm-display-shell-script-inline identity) @@ -303,8 +304,9 @@ before the external MIME handler is invoked." (defcustom mm-inlined-types '("image/.*" "text/.*" "message/delivery-status" "message/rfc822" - "message/partial" "message/external-body" "application/emacs-lisp" - "application/x-emacs-lisp" + "message/partial" "message/external-body" + "application/x-patch" + "application/emacs-lisp" "application/x-emacs-lisp" "application/pgp-signature" "application/x-pkcs7-signature" "application/pkcs7-signature" "application/x-pkcs7-mime" "application/pkcs7-mime" commit ef62469e566b6254742e0287b04fd138225e82a8 Author: Basil L. Contovounesios Date: Thu Apr 11 23:55:03 2019 +0100 Fix some gnus-msg.el variables (bug#35239) * lisp/gnus/gnus-msg.el (gnus-gcc-externalize-attachments): Fix custom :type. (gnus-debug-files, gnus-debug-exclude-variables): Mark variables that have been unused since Emacs 24.1 as obsolete. (gnus-check-before-posting): Remove unused variable. diff --git a/lisp/gnus/gnus-msg.el b/lisp/gnus/gnus-msg.el index b6d649d760..b7a97f19d0 100644 --- a/lisp/gnus/gnus-msg.el +++ b/lisp/gnus/gnus-msg.el @@ -158,9 +158,9 @@ if a regexp and matches the Gcc group name, attach files as external parts; if nil, attach files as normal parts." :version "22.1" :group 'gnus-message - :type '(choice (const nil :tag "None") - (const all :tag "Any") - (string :tag "Regexp"))) + :type '(choice (const :tag "None" nil) + (const :tag "Any" all) + regexp)) (defcustom gnus-gcc-self-resent-messages 'no-gcc-self "Like `gcc-self' group parameter, only for unmodified resent messages. @@ -232,7 +232,9 @@ List of charsets that are permitted to be unencoded.") "Files whose variables will be reported in `gnus-bug'." :version "22.1" :group 'gnus-message - :type '(repeat (string :tag "File"))) + :type '(repeat file)) + +(make-obsolete-variable 'gnus-debug-files "it is no longer used." "24.1") (defcustom gnus-debug-exclude-variables '(mm-mime-mule-charset-alist @@ -240,7 +242,10 @@ List of charsets that are permitted to be unencoded.") "Variables that should not be reported in `gnus-bug'." :version "22.1" :group 'gnus-message - :type '(repeat (symbol :tag "Variable"))) + :type '(repeat variable)) + +(make-obsolete-variable + 'gnus-debug-exclude-variables "it is no longer used." "24.1") (defcustom gnus-discouraged-post-methods '(nndraft nnml nnimap nnmaildir nnmh nnfolder nndir) @@ -340,7 +345,6 @@ only affect the Gcc copy, but not the original message." (defvar gnus-article-yanked-articles nil) (defvar gnus-message-buffer "*Mail Gnus*") (defvar gnus-article-copy nil) -(defvar gnus-check-before-posting nil) (defvar gnus-last-posting-server nil) (defvar gnus-message-group-art nil)