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#742458d289670d6
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:
commit
dcfc31dabd
6 changed files with 62 additions and 18 deletions
|
@ -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
|
||||
|
|
10
etc/NEWS.30
10
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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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))
|
||||
|
|
16
test/lisp/progmodes/cperl-mode-resources/cperl-bug-74245.pl
Normal file
16
test/lisp/progmodes/cperl-mode-resources/cperl-bug-74245.pl
Normal 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 -------
|
|
@ -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")))
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue