diff --git a/doc/misc/smtpmail.texi b/doc/misc/smtpmail.texi index 5f99acaf7d8..12b4ea41810 100644 --- a/doc/misc/smtpmail.texi +++ b/doc/misc/smtpmail.texi @@ -225,7 +225,8 @@ send mail via a server and the SMTP server reports back that it requires authentication, Emacs (version 24.1 and later) prompts you for the user name and password to use, and then offers to save the information. By default, Emacs stores authentication information in a -file @file{~/.authinfo}. +file @file{~/.authinfo}, but this can be changed by customizing +@code{auth-sources} (@pxref{Authentication, Persisting Authinfo,,emacs}). @vindex smtpmail-servers-requiring-authorization Some SMTP servers may bandwidth-limit (or deny) requests from clients diff --git a/etc/NEWS.30 b/etc/NEWS.30 index 31a0c4938ad..ce5290171a1 100644 --- a/etc/NEWS.30 +++ b/etc/NEWS.30 @@ -172,17 +172,17 @@ the default one. It is reimplemented in native code, reducing GC churn. To undo this change, set 'fast-read-process-output' to nil. +++ -** The Network Security Manager now warns about 3DES by default. +** Network Security Manager now warns about 3DES by default. This cypher is no longer recommended owing to a major vulnerability disclosed in 2016, and its small 112 bit key size. Emacs now warns about its use also when 'network-security-level' is set to 'medium' (the default). See 'network-security-protocol-checks'. --- -** The Network Security Manager now warns about <2048 bits in DH key exchange. -Emacs used to warn for Diffie-Hellman key exchanges with prime numbers -smaller than 1024 bits. Since more servers now support it, this -number has been bumped to 2048 bits. +** Network Security Manager now warns about <2048 bits in DH key exchange. +Emacs used to warn for ephemeral Diffie-Hellman (DHE) key exchanges with +prime numbers smaller than 1024 bits. Since more servers now support +it, this number has been bumped to 2048 bits. +++ ** URL now never sends user email addresses in HTTP requests. diff --git a/lisp/net/eww.el b/lisp/net/eww.el index 0c23ebc19cd..7c7303d073d 100644 --- a/lisp/net/eww.el +++ b/lisp/net/eww.el @@ -2237,8 +2237,16 @@ Differences in #targets are ignored." (kill-new (plist-get eww-data :url))) (defun eww-download () - "Download URL to `eww-download-directory'. -Use link at point if there is one, else the current page's URL." + "Download a Web page to `eww-download-directory'. +Use link at point if there is one, else the current page's URL. +This command downloads the page to the download directory, under +a file name generated from the last portion of the page's URL, +after the last slash. (If URL ends in a slash, the page will be +saved under the name \"!\".) +If there's already a file by that name in the download directory, +this command will modify the name to make it unique. +The command shows in the echo-area the actual file name where the +page was saved." (interactive nil eww-mode) (let ((dir (if (stringp eww-download-directory) eww-download-directory diff --git a/lisp/progmodes/cperl-mode.el b/lisp/progmodes/cperl-mode.el index 989f3310635..e1ec4880058 100644 --- a/lisp/progmodes/cperl-mode.el +++ b/lisp/progmodes/cperl-mode.el @@ -1375,13 +1375,14 @@ prototypes from signatures.") (optional (sequence (0+ (sequence ,cperl--ws*-rx - ,cperl--basic-scalar-rx + (or ,cperl--basic-scalar-rx "$") ,cperl--ws*-rx ",")) ,cperl--ws*-rx (or ,cperl--basic-scalar-rx ,cperl--basic-array-rx - ,cperl--basic-hash-rx))) + ,cperl--basic-hash-rx + "$" "%" "@"))) (optional (sequence ,cperl--ws*-rx) "," ) ,cperl--ws*-rx ")") @@ -4416,8 +4417,8 @@ recursive calls in starting lines of here-documents." (opt (group (eval cperl--normal-identifier-rx))) ; #13 (eval cperl--ws*-rx) (group (or (group (eval cperl--prototype-rx)) ; #14,#15 - ;; (group (eval cperl--signature-rx)) ; #16 - (group unmatchable) ; #16 + (group (eval cperl--signature-rx)) ; #16 + ;; (group unmatchable) ; #16 (group (or anything buffer-end)))))) ; #17 "\\|" ;; -------- weird variables, capture group 18 @@ -5312,7 +5313,7 @@ recursive calls in starting lines of here-documents." ;; match-string 13: Name of the subroutine (optional) ;; match-string 14: Indicator for proto/attr/signature ;; match-string 15: Prototype - ;; match-string 16: unused + ;; match-string 16: Subroutine signature ;; match-string 17: Distinguish declaration/definition (setq b1 (match-beginning 13) e1 (match-end 13)) (if (memq (char-after (1- b)) @@ -5328,9 +5329,18 @@ recursive calls in starting lines of here-documents." (forward-comment (buffer-size)) (cperl-find-sub-attrs st-l b1 e1 b)) ;; treat attributes without prototype and incomplete stuff - (goto-char (match-beginning 17)) - (cperl-find-sub-attrs st-l b1 e1 b)))) - ;; 1+6+2+1+1+6+1=18 extra () before this: + (if (match-beginning 16) ; a complete subroutine signature + ;; A signature ending in "$)" must not be + ;; mistaken as the punctuation variable $) which + ;; messes up balance of parens (Bug#74245). + (progn + (when (= (char-after (- (match-end 16) 2)) ?$) + (put-text-property (- (match-end 16) 2) (1- (match-end 16)) + 'syntax-table cperl-st-punct)) + (goto-char (match-end 16))) + (goto-char (match-beginning 17)) + (cperl-find-sub-attrs st-l b1 e1 b))))) + ;; 1+6+2+1+1+6+1=18 extra () before this: ;; "\\(\\