Merge from origin/emacs-30

853719c4c2 ; * lisp/net/eww.el (eww-download): Doc fix (bug#75585)
45ec5865aa ; * etc/NEWS: Tweak wording of NSM items.
b981889e9e ; cperl-mode-tests.el: Don't run the newest test in perl-...
6a864ef8f3 Add smtpmail cross-reference to 'auth-sources'.
1fd7957bc7 ; cperl-mode.el: Add a test for Bug#74245
8d289670d6 Merge branch 'emacs-30' of git.savannah.gnu.org:/srv/git/...
b74ac4af94 ; cperl-mode.el: Allow bare $ in a signature (Bug#74245)
30e84fc653 Emphasize the use of :tag for new customization types

# Conflicts:
#	etc/NEWS
This commit is contained in:
Eli Zaretskii 2025-01-18 07:46:34 -05:00
commit dcfc31dabd
6 changed files with 62 additions and 18 deletions

View file

@ -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

View file

@ -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.

View file

@ -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

View file

@ -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:
;; "\\(\\<sub[ \t\n\f]+\\|[&*$@%]\\)[a-zA-Z0-9_]*'")
((match-beginning 19) ; old $abc'efg syntax
(setq bb (match-end 0))

View file

@ -0,0 +1,16 @@
# This resource file can be run with cperl--run-testcases from
# cperl-tests.el and works with both perl-mode and cperl-mode.
# -------- signature where last parameter is ignored: input -------
package P {
use v5.36;
sub ignore ($first, $) {}
ignore(qw(first second));
}
# -------- signature where last parameter is ignored: expected output -------
package P {
use v5.36;
sub ignore ($first, $) {}
ignore(qw(first second));
}
# -------- signature where last parameter is ignored: end -------

View file

@ -622,10 +622,9 @@ Also includes valid cases with whitespace in strange places."
"Test subroutine signatures."
(skip-unless (eq cperl-test-mode #'cperl-mode))
(let ((valid
'("()" "( )" "($self, %params)" "(@params)"))
'("()" "( )" "($self, %params)" "(@params)" "($first,$)"))
(invalid
'("$self" ; missing paren
"($)" ; a subroutine signature
"($!)" ; globals not permitted in a signature
"(@par,%options)" ; two slurpy parameters
"{$self}"))) ; wrong type of paren
@ -1590,6 +1589,16 @@ and the slash, then we have a division."
(should (equal (nth 8 (cperl-test-ppss code "/")) 9)))
)
(ert-deftest cperl-test-bug-74245 ()
"Verify that a bare \"$\" can appear at the end of a subroutine signature.
It must not be mistaken for \"$)\"."
(skip-unless (eq cperl-test-mode #'cperl-mode))
(cperl--run-test-cases
(ert-resource-file "cperl-bug-74245.pl")
(while (null (eobp))
(cperl-indent-command)
(forward-line 1))))
(ert-deftest test-indentation ()
(ert-test-erts-file (ert-resource-file "cperl-indents.erts")))