From 61659f36c884fb89f265271e5b118addf7497689 Mon Sep 17 00:00:00 2001 From: Cyril Arnould Date: Wed, 10 May 2023 07:26:52 +0000 Subject: [PATCH 01/24] Another fix for VHDL mode highlighting * lisp/progmodes/vhdl-mode.el (vhdl-version): Bump to 3.38.5. (vhdl-compiler-alist): Fix the regexps and the doc string. Copyright-paperwork-exempt: yes --- lisp/progmodes/vhdl-mode.el | 60 +++++++++++++++++++++++-------------- 1 file changed, 37 insertions(+), 23 deletions(-) diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el index ee0ec63b6bc..77d862f1a17 100644 --- a/lisp/progmodes/vhdl-mode.el +++ b/lisp/progmodes/vhdl-mode.el @@ -16,7 +16,7 @@ ;; Reto also said in Apr 2021 that he preferred to keep the XEmacs ;; compatibility code. -(defconst vhdl-version "3.38.1" +(defconst vhdl-version "3.38.5" "VHDL Mode version number.") (defconst vhdl-time-stamp "2015-03-12" @@ -229,20 +229,20 @@ Overrides local variable `indent-tabs-mode'." ;; [Error] Assignment error: variable is illegal target of signal assignment ("ADVance MS" "vacom" "-work \\1" "make" "-f \\1" nil "valib \\1; vamap \\2 \\1" "./" "work/" "Makefile" "adms" - ("^\\s-+\\([0-9]+\\):\\s-+" nil 1 nil) ("^Compiling file \\(.+\\)" 1) + ("^\\s-+\\([0-9]+\\):\\s-+" nil 1 nil nil) ("^Compiling file \\(.+\\)" 1) ("ENTI/\\1.vif" "ARCH/\\1-\\2.vif" "CONF/\\1.vif" "PACK/\\1.vif" "BODY/\\1.vif" upcase)) ;; Aldec ;; COMP96 ERROR COMP96_0018: "Identifier expected." "test.vhd" 66 3 ("Aldec" "vcom" "-work \\1" "make" "-f \\1" nil "vlib \\1; vmap \\2 \\1" "./" "work/" "Makefile" "aldec" - ("^.* ERROR [^:]+: \".*\" \"\\([^ \t\n]+\\)\" \\([0-9]+\\) \\([0-9]+\\)" 1 2 3) ("" 0) + ("^.* ERROR [^:]+: \".*\" \"\\([^ \t\n]+\\)\" \\([0-9]+\\) \\([0-9]+\\)" 1 2 3 nil) ("" 0) nil) ;; Cadence Leapfrog: cv -file test.vhd ;; duluth: *E,430 (test.vhd,13): identifier (POSITIV) is not declared ("Cadence Leapfrog" "cv" "-work \\1 -file" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "leapfrog" - ("^duluth: \\*E,[0-9]+ (\\([^ \t\n]+\\),\\([0-9]+\\)):" 1 2 nil) ("" 0) + ("^duluth: \\*E,[0-9]+ (\\([^ \t\n]+\\),\\([0-9]+\\)):" 1 2 nil nil) ("" 0) ("\\1/entity" "\\2/\\1" "\\1/configuration" "\\1/package" "\\1/body" downcase)) ;; Cadence Affirma NC vhdl: ncvhdl test.vhd @@ -250,7 +250,7 @@ Overrides local variable `indent-tabs-mode'." ;; (PLL_400X_TOP) is not declared [10.3]. ("Cadence NC" "ncvhdl" "-work \\1" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "ncvhdl" - ("^ncvhdl_p: \\*E,\\w+ (\\([^ \t\n]+\\),\\([0-9]+\\)|\\([0-9]+\\)):" 1 2 3) ("" 0) + ("^ncvhdl_p: \\*E,\\w+ (\\([^ \t\n]+\\),\\([0-9]+\\)|\\([0-9]+\\)):" 1 2 3 nil) ("" 0) ("\\1/entity/pc.db" "\\2/\\1/pc.db" "\\1/configuration/pc.db" "\\1/package/pc.db" "\\1/body/pc.db" downcase)) ;; ghdl vhdl @@ -258,21 +258,21 @@ Overrides local variable `indent-tabs-mode'." ;; bad_counter.vhdl:13:14: operator "=" is overloaded ("GHDL" "ghdl" "-i --workdir=\\1 --ieee=synopsys -fexplicit " "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "ghdl" - ("^ghdl_p: \\*E,\\w+ (\\([^ \t\n]+\\),\\([0-9]+\\)|\\([0-9]+\\)):" 1 2 3) ("" 0) + ("^ghdl_p: \\*E,\\w+ (\\([^ \t\n]+\\),\\([0-9]+\\)|\\([0-9]+\\)):" 1 2 3 nil) ("" 0) ("\\1/entity" "\\2/\\1" "\\1/configuration" "\\1/package" "\\1/body" downcase)) ;; IBM Compiler ;; 00 COACHDL* | [CCHDL-1]: File: adder.vhd, line.column: 120.6 ("IBM Compiler" "g2tvc" "-src" "precomp" "\\1" nil "mkdir \\1" "./" "work/" "Makefile" "ibm" - ("^[0-9]+ COACHDL.*: File: \\([^ \t\n]+\\), *line.column: \\([0-9]+\\).\\([0-9]+\\)" 1 2 3) (" " 0) + ("^[0-9]+ COACHDL.*: File: \\([^ \t\n]+\\), *line.column: \\([0-9]+\\).\\([0-9]+\\)" 1 2 3 nil) (" " 0) nil) ;; Ikos Voyager: analyze test.vhd ;; analyze test.vhd ;; E L4/C5: this library unit is inaccessible ("Ikos" "analyze" "-l \\1" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "ikos" - ("^E L\\([0-9]+\\)/C\\([0-9]+\\):" nil 1 2) + ("^E L\\([0-9]+\\)/C\\([0-9]+\\):" nil 1 2 nil) ("^analyze +\\(.+ +\\)*\\(.+\\)$" 2) nil) ;; ModelSim, Model Technology: vcom test.vhd @@ -294,7 +294,7 @@ Overrides local variable `indent-tabs-mode'." ;; test.vhd:34: error message ("LEDA ProVHDL" "provhdl" "-w \\1 -f" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "provhdl" - ("^\\([^ \t\n:]+\\):\\([0-9]+\\): " 1 2 nil) ("" 0) + ("^\\([^ \t\n:]+\\):\\([0-9]+\\): " 1 2 nil nil) ("" 0) ("ENTI/\\1.vif" "ARCH/\\1-\\2.vif" "CONF/\\1.vif" "PACK/\\1.vif" "BODY/BODY-\\1.vif" upcase)) ;; Quartus compiler @@ -305,21 +305,21 @@ Overrides local variable `indent-tabs-mode'." ;; Warning: VHDL Process Statement warning at dvi2sdi_tst.vhd(172): ... ("Quartus" "make" "-work \\1" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "quartus" - ("^\\(Error\\|Warning\\): .* \\([^ \t\n]+\\)(\\([0-9]+\\))" 2 3 nil) ("" 0) + ("^\\(Error\\|Warning\\): .* \\([^ \t\n]+\\)(\\([0-9]+\\))" 2 3 nil nil) ("" 0) nil) ;; QuickHDL, Mentor Graphics: qvhcom test.vhd ;; ERROR: test.vhd(24): near "dnd": expecting: END ;; WARNING[4]: test.vhd(30): A space is required between ... ("QuickHDL" "qvhcom" "-work \\1" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "quickhdl" - ("^\\(ERROR\\|WARNING\\)[^:]*: \\([^ \t\n]+\\)(\\([0-9]+\\)):" 2 3 nil) ("" 0) + ("^\\(ERROR\\|WARNING\\)[^:]*: \\([^ \t\n]+\\)(\\([0-9]+\\)):" 2 3 nil nil) ("" 0) ("\\1/_primary.dat" "\\2/\\1.dat" "\\1/_primary.dat" "\\1/_primary.dat" "\\1/body.dat" downcase)) ;; Savant: scram -publish-cc test.vhd ;; test.vhd:87: _set_passed_through_out_port(IIR_Boolean) not defined for ("Savant" "scram" "-publish-cc -design-library-name \\1" "make" "-f \\1" nil "mkdir \\1" "./" "work._savant_lib/" "Makefile" "savant" - ("^\\([^ \t\n:]+\\):\\([0-9]+\\): " 1 2 nil) ("" 0) + ("^\\([^ \t\n:]+\\):\\([0-9]+\\): " 1 2 nil nil) ("" 0) ("\\1_entity.vhdl" "\\2_secondary_units._savant_lib/\\2_\\1.vhdl" "\\1_config.vhdl" "\\1_package.vhdl" "\\1_secondary_units._savant_lib/\\1_package_body.vhdl" downcase)) @@ -327,39 +327,39 @@ Overrides local variable `indent-tabs-mode'." ;; Error: CSVHDL0002: test.vhd: (line 97): Invalid prefix ("Simili" "vhdlp" "-work \\1" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "simili" - ("^\\(Error\\|Warning\\): \\w+: \\([^ \t\n]+\\): (line \\([0-9]+\\)): " 2 3 nil) ("" 0) + ("^\\(Error\\|Warning\\): \\w+: \\([^ \t\n]+\\): (line \\([0-9]+\\)): " 2 3 nil nil) ("" 0) ("\\1/prim.var" "\\2/_\\1.var" "\\1/prim.var" "\\1/prim.var" "\\1/_body.var" downcase)) ;; Speedwave (Innoveda): analyze -libfile vsslib.ini -src test.vhd ;; ERROR[11]::File test.vhd Line 100: Use of undeclared identifier ("Speedwave" "analyze" "-libfile vsslib.ini -src" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "speedwave" - ("^ *ERROR\\[[0-9]+]::File \\([^ \t\n]+\\) Line \\([0-9]+\\):" 1 2 nil) ("" 0) + ("^ *ERROR\\[[0-9]+]::File \\([^ \t\n]+\\) Line \\([0-9]+\\):" 1 2 nil nil) ("" 0) nil) ;; Synopsys, VHDL Analyzer (sim): vhdlan -nc test.vhd ;; **Error: vhdlan,703 test.vhd(22): OTHERS is not legal in this context. ("Synopsys" "vhdlan" "-nc -work \\1" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "synopsys" - ("^\\*\\*Error: vhdlan,[0-9]+ \\([^ \t\n]+\\)(\\([0-9]+\\)):" 1 2 nil) ("" 0) + ("^\\*\\*Error: vhdlan,[0-9]+ \\([^ \t\n]+\\)(\\([0-9]+\\)):" 1 2 nil nil) ("" 0) ("\\1.sim" "\\2__\\1.sim" "\\1.sim" "\\1.sim" "\\1__.sim" upcase)) ;; Synopsys, VHDL Analyzer (syn): vhdlan -nc -spc test.vhd ;; **Error: vhdlan,703 test.vhd(22): OTHERS is not legal in this context. ("Synopsys Design Compiler" "vhdlan" "-nc -spc -work \\1" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "synopsys_dc" - ("^\\*\\*Error: vhdlan,[0-9]+ \\([^ \t\n]+\\)(\\([0-9]+\\)):" 1 2 nil) ("" 0) + ("^\\*\\*Error: vhdlan,[0-9]+ \\([^ \t\n]+\\)(\\([0-9]+\\)):" 1 2 nil nil) ("" 0) ("\\1.syn" "\\2__\\1.syn" "\\1.syn" "\\1.syn" "\\1__.syn" upcase)) ;; Synplify: ;; @W:"test.vhd":57:8:57:9|Optimizing register bit count_x(5) to a constant 0 ("Synplify" "n/a" "n/a" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "synplify" - ("^@[EWN]:\"\\([^ \t\n]+\\)\":\\([0-9]+\\):\\([0-9]+\\):" 1 2 3) ("" 0) + ("^@[EWN]:\"\\([^ \t\n]+\\)\":\\([0-9]+\\):\\([0-9]+\\):" 1 2 3 nil) ("" 0) nil) ;; Vantage: analyze -libfile vsslib.ini -src test.vhd ;; Compiling "test.vhd" line 1... ;; **Error: LINE 49 *** No aggregate value is valid in this context. ("Vantage" "analyze" "-libfile vsslib.ini -src" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "vantage" - ("^\\*\\*Error: LINE \\([0-9]+\\) \\*\\*\\*" nil 1 nil) + ("^\\*\\*Error: LINE \\([0-9]+\\) \\*\\*\\*" nil 1 nil nil) ("^ *Compiling \"\\(.+\\)\" " 1) nil) ;; VeriBest: vc vhdl test.vhd @@ -369,26 +369,26 @@ Overrides local variable `indent-tabs-mode'." ;; [Error] Name BITA is unknown ("VeriBest" "vc" "vhdl" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "veribest" - ("^ +\\([0-9]+\\): +[^ ]" nil 1 nil) ("" 0) + ("^ +\\([0-9]+\\): +[^ ]" nil 1 nil nil) ("" 0) nil) ;; Viewlogic: analyze -libfile vsslib.ini -src test.vhd ;; Compiling "test.vhd" line 1... ;; **Error: LINE 49 *** No aggregate value is valid in this context. ("Viewlogic" "analyze" "-libfile vsslib.ini -src" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "viewlogic" - ("^\\*\\*Error: LINE \\([0-9]+\\) \\*\\*\\*" nil 1 nil) + ("^\\*\\*Error: LINE \\([0-9]+\\) \\*\\*\\*" nil 1 nil nil) ("^ *Compiling \"\\(.+\\)\" " 1) nil) ;; Xilinx XST: ;; ERROR:HDLParsers:164 - "test.vhd" Line 3. parse error ("Xilinx XST" "xflow" "" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "xilinx" - ("^ERROR:HDLParsers:[0-9]+ - \"\\([^ \t\n]+\\)\" Line \\([0-9]+\\)\\." 1 2 nil) ("" 0) + ("^ERROR:HDLParsers:[0-9]+ - \"\\([^ \t\n]+\\)\" Line \\([0-9]+\\)\\." 1 2 nil nil) ("" 0) nil) ;; Xilinx Vivado: ;; ERROR: [VRFC 10-1412] syntax error near o_idle [test.vhd:23] ("Xilinx Vivado" "xvhdl" "" "make" "-f \\1" - nil "mkdir \\1" "./" "work" "Makefile" "vivado" + nil "mkdir \\1" "./" "work/" "Makefile" "vivado" ("^\\(?:\\(?1:ERROR\\)\\|\\(?2:WARNING\\)\\|\\(?3:INFO\\)\\): \\(.+\\) \\[\\(?4:[^ \t\n]+\\):\\(?5:[0-9]+\\)\\]" 4 5 nil (2 . 3)) ("" 0) ("\\1/entity" "\\2/\\1" "\\1/configuration" "\\1/package" "\\1/body" downcase)) @@ -414,6 +414,13 @@ Error message: File subexp index: index of subexpression that matches the file name Line subexp index: index of subexpression that matches the line number Column subexp idx: index of subexpression that matches the column number + Type subexp : message type, can be nil for a real error, 1 for warning + or 0 for info. Type can also be detected using the form + (WARNING . INFO). In that case this will be equivalent to + 1 if the WARNING’th subexpression matched or else + equivalent to 0 if the INFO’th subexpression matched, or + else equivalent to nil if neither of them matched. See + also `compilation-error-regexp-alist'. File message: Regexp : regular expression to match a file name message File subexp index: index of subexpression that matches the file name @@ -483,7 +490,14 @@ NOTE: Activate new error and file message regexps and reflect the new setting (integer :tag "Line subexp index") (choice :tag "Column subexp " (integer :tag "Index") - (const :tag "No column number" nil))) + (const :tag "No column number" nil)) + (choice :tag "Type " + (const :tag "Info" 0) + (const :tag "Warning" 1) + (const :tag "Error" nil) + (cons :tag "Type detection" + (natnum :tag "Warning subexp index") + (natnum :tag "Info subexp index ")))) (list :tag "File message" :indent 4 (regexp :tag "Regexp ") (integer :tag "File subexp index")) From 1e6a7594361fa4d60c0d73450e45475593d93696 Mon Sep 17 00:00:00 2001 From: Joseph Turner Date: Sat, 6 May 2023 14:49:43 -0700 Subject: [PATCH 02/24] Fix building of VC package manuals with relative includes * lisp/emacs-lisp/package-vc.el (package-vc--build-documentation): Invoke makeinfo with -I to ensure the package directory is always consulted for @include statements. (Bug#63337) --- lisp/emacs-lisp/package-vc.el | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lisp/emacs-lisp/package-vc.el b/lisp/emacs-lisp/package-vc.el index 85193dd7a30..1fcc30595da 100644 --- a/lisp/emacs-lisp/package-vc.el +++ b/lisp/emacs-lisp/package-vc.el @@ -347,6 +347,7 @@ FILE can be an Org file, indicated by its \".org\" extension, otherwise it's assumed to be an Info file." (let* ((pkg-name (package-desc-name pkg-desc)) (default-directory (package-desc-dir pkg-desc)) + (docs-directory (expand-file-name (file-name-directory file))) (output (expand-file-name (format "%s.info" pkg-name))) clean-up) (when (string-match-p "\\.org\\'" file) @@ -361,7 +362,9 @@ otherwise it's assumed to be an Info file." (erase-buffer) (cond ((/= 0 (call-process "makeinfo" nil t nil - "--no-split" file "-o" output)) + "-I" docs-directory + "--no-split" file + "-o" output)) (message "Failed to build manual %s, see buffer %S" file (buffer-name))) ((/= 0 (call-process "install-info" nil t nil From b96dc472bcba9a484d8151cec61752464f599ad2 Mon Sep 17 00:00:00 2001 From: Gabriel do Nascimento Ribeiro Date: Sat, 13 May 2023 20:31:24 -0300 Subject: [PATCH 03/24] Ignore current-prefix-arg in async-shell-command * lisp/simple.el (async-shell-command): Ignore current-prefix-arg and always pass nil to second argument of `shell-command'. (Bug#63432) --- lisp/simple.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/simple.el b/lisp/simple.el index 959e28c7b75..c3d0726f91b 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -4490,7 +4490,7 @@ a shell (with its need to quote arguments)." ((eq major-mode 'dired-mode) (dired-get-filename nil t))))) (and filename (file-relative-name filename)))) - current-prefix-arg + nil shell-command-default-error-buffer)) (unless (string-match "&[ \t]*\\'" command) (setq command (concat command " &"))) From 5c8864fab4fd445144eb9ba845e02230302819dc Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sun, 14 May 2023 10:13:39 +0300 Subject: [PATCH 04/24] ; * lisp/simple.el (async-shell-command): Doc fix. (Bug#63432) --- lisp/simple.el | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/lisp/simple.el b/lisp/simple.el index c3d0726f91b..0138556787b 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -4460,11 +4460,13 @@ whose `car' is BUFFER." Like `shell-command', but adds `&' at the end of COMMAND to execute it asynchronously. -The output appears in the buffer whose name is stored in the -variable `shell-command-buffer-name-async'. That buffer is in -shell mode. +The output appears in OUTPUT-BUFFER, which could be a buffer or +the name of a buffer, and defaults to `shell-command-buffer-name-async' +if nil or omitted. That buffer is in shell mode. Note that, unlike +with `shell-command', OUTPUT-BUFFER can only be a buffer, a buffer's +name (a string), or nil. -You can configure `async-shell-command-buffer' to specify what to do +You can customize `async-shell-command-buffer' to specify what to do when the buffer specified by `shell-command-buffer-name-async' is already taken by another running shell command. @@ -4473,6 +4475,10 @@ configure `display-buffer-alist' to use the action `display-buffer-no-window' for the buffer given by `shell-command-buffer-name-async'. +Optional argument ERROR-BUFFER is for backward compatibility; it +is ignored, and error output of the async command is always +mingled with its regular output. + In Elisp, you will often be better served by calling `start-process' directly, since it offers more control and does not impose the use of a shell (with its need to quote arguments)." @@ -4491,6 +4497,9 @@ a shell (with its need to quote arguments)." (dired-get-filename nil t))))) (and filename (file-relative-name filename)))) nil + ;; FIXME: the following argument is always ignored by 'shell-commnd', + ;; when the command is invoked asynchronously, except, perhaps, when + ;; 'default-directory' is remote. shell-command-default-error-buffer)) (unless (string-match "&[ \t]*\\'" command) (setq command (concat command " &"))) From ce7d18cbc07886b0d62110a6d26e25271017cd2a Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sun, 14 May 2023 10:26:03 +0300 Subject: [PATCH 05/24] ; Minor fixes in ELisp manual * doc/lispref/functions.texi (Declare Form): Improve indexing. (Obsolete Functions): Add cross-reference. ` --- doc/lispref/functions.texi | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi index 4ab7a194eb0..fc902a70bf0 100644 --- a/doc/lispref/functions.texi +++ b/doc/lispref/functions.texi @@ -2360,6 +2360,11 @@ this: (set-advertised-calling-convention 'sit-for '(seconds &optional nodisp) "22.1") @end example + +@noindent +The alternative to using this function is the +@code{advertised-calling-convention} @code{declare} spec, see +@ref{Declare Form}. @end defun @node Inline Functions @@ -2536,6 +2541,7 @@ Each element in @var{specs} should have the form @code{(@var{property} following effects: @table @code +@cindex @code{advertised-calling-convention} (@code{declare} spec) @item (advertised-calling-convention @var{signature} @var{when}) This acts like a call to @code{set-advertised-calling-convention} (@pxref{Obsolete Functions}); @var{signature} specifies the correct @@ -2561,6 +2567,7 @@ This is typically used for macros, though it works for functions too. Set the function's @code{interactive-only} property to @var{value}. @xref{The interactive-only property}. +@cindex @code{obsolete} (@code{declare} spec) @item (obsolete @var{current-name} @var{when}) Mark the function or macro as obsolete, similar to a call to @code{make-obsolete} (@pxref{Obsolete Functions}). @var{current-name} From 229af8e4b319d44228dbeef1ce4347e2890f03fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Engdeg=C3=A5rd?= Date: Sun, 14 May 2023 11:33:04 +0200 Subject: [PATCH 06/24] ; * lisp/progmodes/csharp-mode.el (csharp-ts-mode--defun-name): typo --- lisp/progmodes/csharp-mode.el | 1 - 1 file changed, 1 deletion(-) diff --git a/lisp/progmodes/csharp-mode.el b/lisp/progmodes/csharp-mode.el index 869a207c567..00587a8a515 100644 --- a/lisp/progmodes/csharp-mode.el +++ b/lisp/progmodes/csharp-mode.el @@ -920,7 +920,6 @@ Return nil if there is no name or if NODE is not a defun node." "struct_declaration" "enum_declaration" "interface_declaration" - "class_declaration" "class_declaration") (treesit-node-text (treesit-node-child-by-field-name From c90d47619e67bccbf92dc5e153002771c0ae90e3 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sun, 14 May 2023 07:32:21 -0400 Subject: [PATCH 07/24] Bump Emacs version for next pretest * README: * configure.ac: * nt/README.W32: * msdos/sed2v2.inp: Bump Emacs version to 29.0.91. --- README | 2 +- configure.ac | 2 +- msdos/sed2v2.inp | 2 +- nt/README.W32 | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README b/README index 64f45764d6d..fda74c12925 100644 --- a/README +++ b/README @@ -2,7 +2,7 @@ Copyright (C) 2001-2023 Free Software Foundation, Inc. See the end of the file for license conditions. -This directory tree holds version 29.0.90 of GNU Emacs, the extensible, +This directory tree holds version 29.0.91 of GNU Emacs, the extensible, customizable, self-documenting real-time display editor. The file INSTALL in this directory says how to build and install GNU diff --git a/configure.ac b/configure.ac index 1fbe7435b22..2c80d4cc9aa 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ dnl along with GNU Emacs. If not, see . AC_PREREQ([2.65]) dnl Note this is parsed by (at least) make-dist and lisp/cedet/ede/emacs.el. -AC_INIT([GNU Emacs], [29.0.90], [bug-gnu-emacs@gnu.org], [], +AC_INIT([GNU Emacs], [29.0.91], [bug-gnu-emacs@gnu.org], [], [https://www.gnu.org/software/emacs/]) dnl Set emacs_config_options to the options of 'configure', quoted for the shell, diff --git a/msdos/sed2v2.inp b/msdos/sed2v2.inp index 9b68359e034..e950d6f23ac 100644 --- a/msdos/sed2v2.inp +++ b/msdos/sed2v2.inp @@ -67,7 +67,7 @@ /^#undef PACKAGE_NAME/s/^.*$/#define PACKAGE_NAME ""/ /^#undef PACKAGE_STRING/s/^.*$/#define PACKAGE_STRING ""/ /^#undef PACKAGE_TARNAME/s/^.*$/#define PACKAGE_TARNAME ""/ -/^#undef PACKAGE_VERSION/s/^.*$/#define PACKAGE_VERSION "29.0.90"/ +/^#undef PACKAGE_VERSION/s/^.*$/#define PACKAGE_VERSION "29.0.91"/ /^#undef SYSTEM_TYPE/s/^.*$/#define SYSTEM_TYPE "ms-dos"/ /^#undef HAVE_DECL_GETENV/s/^.*$/#define HAVE_DECL_GETENV 1/ /^#undef SYS_SIGLIST_DECLARED/s/^.*$/#define SYS_SIGLIST_DECLARED 1/ diff --git a/nt/README.W32 b/nt/README.W32 index 5a674bf2a4e..288e1e398a5 100644 --- a/nt/README.W32 +++ b/nt/README.W32 @@ -1,7 +1,7 @@ Copyright (C) 2001-2023 Free Software Foundation, Inc. See the end of the file for license conditions. - Emacs version 29.0.90 for MS-Windows + Emacs version 29.0.91 for MS-Windows This README file describes how to set up and run a precompiled distribution of the latest version of GNU Emacs for MS-Windows. You From 4627ede36b12414ce89aa08773387e972e192f87 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sun, 14 May 2023 07:57:52 -0400 Subject: [PATCH 08/24] ; * lisp/ldefs-boot.el: Regenerate for emacs-29.0.91. --- lisp/ldefs-boot.el | 75 +++++++++++++++++++++++++++++++--------------- 1 file changed, 51 insertions(+), 24 deletions(-) diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el index 15308c298f8..9e1adab3192 100644 --- a/lisp/ldefs-boot.el +++ b/lisp/ldefs-boot.el @@ -9232,6 +9232,7 @@ Turn on EDT Emulation." t) ;;; Generated autoloads from progmodes/eglot.el +(push (purecopy '(eglot 1 12 29)) package--builtin-versions) (autoload 'eglot "eglot" "\ Start LSP server in support of PROJECT's buffers under MANAGED-MAJOR-MODE. @@ -9274,6 +9275,11 @@ INTERACTIVE is ignored and provided for backward compatibility. (fn MANAGED-MAJOR-MODE PROJECT CLASS CONTACT LANGUAGE-ID &optional INTERACTIVE)" t) (autoload 'eglot-ensure "eglot" "\ Start Eglot session for current buffer if there isn't one.") +(autoload 'eglot-upgrade-eglot "eglot" "\ +Update Eglot to latest version. + +(fn &rest _)" t) +(define-obsolete-function-alias 'eglot-update 'eglot-upgrade-eglot "29.1") (put 'eglot-workspace-configuration 'safe-local-variable 'listp) (put 'eglot--debbugs-or-github-bug-uri 'bug-reference-url-format t) (defun eglot--debbugs-or-github-bug-uri nil (format (if (string= (match-string 2) "github") "https://github.com/joaotavora/eglot/issues/%s" "https://debbugs.gnu.org/%s") (match-string 3))) @@ -10196,7 +10202,7 @@ Look at CONFIG and try to expand GROUP. ;;; Generated autoloads from erc/erc.el -(push (purecopy '(erc 5 5)) package--builtin-versions) +(push (purecopy '(erc 5 5 0 29 1)) package--builtin-versions) (autoload 'erc-select-read-args "erc" "\ Prompt the user for values of nick, server, port, and password.") (autoload 'erc "erc" "\ @@ -12339,7 +12345,7 @@ Variables of interest include: If non-nil, always attempt to create the other file if it was not found. - `ff-quiet-mode' - If non-nil, traces which directories are being searched. + If non-nil, does not trace which directories are being searched. - `ff-special-constructs' A list of regular expressions specifying how to recognize special @@ -18522,6 +18528,11 @@ sequence inside of a word. Standard ispell choices are then available. +This command uses a word-list file specified +by `ispell-alternate-dictionary' or by `ispell-complete-word-dict'; +if none of those name an existing word-list file, this command +signals an error. + (fn &optional INTERIOR-FRAG)" t) (autoload 'ispell-complete-word-interior-frag "ispell" "\ Completes word matching character sequence inside a word." t) @@ -22454,7 +22465,7 @@ Coloring: ;;; Generated autoloads from org/org.el -(push (purecopy '(org 9 6 3)) package--builtin-versions) +(push (purecopy '(org 9 6 5)) package--builtin-versions) (autoload 'org-babel-do-load-languages "org" "\ Load the languages defined in `org-babel-load-languages'. @@ -23446,8 +23457,7 @@ If PACKAGE is a `package-desc' object, MIN-VERSION is ignored. (autoload 'package-install "package" "\ Install the package PKG. PKG can be a `package-desc' or a symbol naming one of the -available packages in an archive in `package-archives'. When -called interactively, prompt for the package name. +available packages in an archive in `package-archives'. Mark the installed package as selected by adding it to `package-selected-packages'. @@ -23459,16 +23469,30 @@ non-nil, install the package but do not add it to If PKG is a `package-desc' and it is already installed, don't try to install it but still mark it as selected. +If the command is invoked with a prefix argument, it will allow +upgrading of built-in packages, as if `package-install-upgrade-built-in' +had been enabled. + (fn PKG &optional DONT-SELECT)" t) -(autoload 'package-update "package" "\ -Update package NAME if a newer version exists. +(autoload 'package-upgrade "package" "\ +Upgrade package NAME if a newer version exists. + +Currently, packages which are part of the Emacs distribution +cannot be upgraded that way. To enable upgrades of such a +package using this command, first upgrade the package to a +newer version from ELPA by using `\\\\[package-menu-mark-install]' after `\\[list-packages]'. (fn NAME)" t) -(autoload 'package-update-all "package" "\ +(autoload 'package-upgrade-all "package" "\ Refresh package list and upgrade all packages. -If QUERY, ask the user before updating packages. When called +If QUERY, ask the user before upgrading packages. When called interactively, QUERY is always true. +Currently, packages which are part of the Emacs distribution are +not upgraded by this command. To enable upgrading such a package +using this command, first upgrade the package to a newer version +from ELPA by using `\\\\[package-menu-mark-install]' after `\\[list-packages]'. + (fn &optional QUERY)" t) (autoload 'package-install-from-buffer "package" "\ Install a package from the current buffer. @@ -23548,10 +23572,10 @@ Location of the file used to speed up activation of packages at startup." :type (autoload 'package-vc-install-selected-packages "package-vc" "\ Ensure packages specified in `package-vc-selected-packages' are installed." t) -(autoload 'package-vc-update-all "package-vc" "\ -Attempt to update all installed VC packages." t) -(autoload 'package-vc-update "package-vc" "\ -Attempt to update the package PKG-DESC. +(autoload 'package-vc-upgrade-all "package-vc" "\ +Attempt to upgrade all installed VC packages." t) +(autoload 'package-vc-upgrade "package-vc" "\ +Attempt to upgrade the package PKG-DESC. (fn PKG-DESC)" t) (autoload 'package-vc-install "package-vc" "\ @@ -23567,11 +23591,13 @@ indicating the package name and SPEC is a plist as described in symbol whose name is the package name, and the URL for the package will be taken from the package's metadata. -By default, this function installs the last version of the package -available from its repository, but if REV is given and non-nil, it -specifies the revision to install. If REV has the special value -`:last-release' (interactively, the prefix argument), that stands -for the last released version of the package. +By default, this function installs the last revision of the +package available from its repository. If REV is a string, it +describes the revision to install, as interpreted by the VC +backend. The special value `:last-release' (interactively, the +prefix argument), will use the commit of the latest release, if +it exists. The last release is the latest revision which changed +the \"Version:\" header of the package's main Lisp file. Optional argument BACKEND specifies the VC backend to use for cloning the package's repository; this is only possible if NAME-OR-URL is a URL, @@ -23608,7 +23634,7 @@ Rebuilding an installation means scraping for new autoload cookies, re-compiling Emacs Lisp files, building and installing any documentation, downloading any missing dependencies. This command does not fetch new revisions from a remote server. That -is the responsibility of `package-vc-update'. Interactively, +is the responsibility of `package-vc-upgrade'. Interactively, prompt for the name of the package to rebuild. (fn PKG-DESC)" t) @@ -23663,7 +23689,9 @@ The values returned are identical to those of `decode-time', but any unknown values other than DST are returned as nil, and an unknown DST value is returned as -1. -(fn STRING)") +See `decode-time' for the meaning of FORM. + +(fn STRING &optional FORM)") (register-definition-prefixes "parse-time" '("parse-")) @@ -26020,7 +26048,7 @@ ENCRYPTION, CERTFP, SERVER-ALIAS are interpreted as in `rcirc-server-alist'. STARTUP-CHANNELS is a list of channels that are joined after authentication. -(fn SERVER &optional PORT NICK USER-NAME FULL-NAME STARTUP-CHANNELS PASSWORD ENCRYPTION CERTFP SERVER-ALIAS)") +(fn SERVER &optional PORT NICK USER-NAME FULL-NAME STARTUP-CHANNELS PASSWORD ENCRYPTION SERVER-ALIAS CERTFP)") (defvar rcirc-track-minor-mode nil "\ Non-nil if Rcirc-Track minor mode is enabled. See the `rcirc-track-minor-mode' command @@ -31769,7 +31797,7 @@ Entering Texinfo mode calls the value of `text-mode-hook', and then the value of `texinfo-mode-hook'. (fn)" t) -(register-definition-prefixes "texinfo" '("texinfo-")) +(register-definition-prefixes "texinfo" '("fill-paragraph-separate" "texinfo-")) ;;; Generated autoloads from textmodes/texnfo-upd.el @@ -37150,10 +37178,9 @@ run a specific program. The program must be a member of (provide 'loaddefs) ;; Local Variables: -;; no-byte-compile: t ;; version-control: never ;; no-update-autoloads: t -;; no-native-compile: t +;; no-byte-compile: t ;; coding: utf-8-emacs-unix ;; End: From 88ca37b858921d7b3ba11bc93080f66bdca614dc Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sun, 14 May 2023 07:58:30 -0400 Subject: [PATCH 09/24] ; Regenerate files for emacs-29.0.91 * ChangeLog.4: * etc/AUTHORS: Regenerate. --- ChangeLog.4 | 1334 ++++++++++++++++++++++++++++++++++++++++++++++++++- etc/AUTHORS | 77 +-- 2 files changed, 1375 insertions(+), 36 deletions(-) diff --git a/ChangeLog.4 b/ChangeLog.4 index 106444e41a7..2ce1351286e 100644 --- a/ChangeLog.4 +++ b/ChangeLog.4 @@ -1,3 +1,1335 @@ +2023-05-14 Gabriel do Nascimento Ribeiro + + Ignore current-prefix-arg in async-shell-command + + * lisp/simple.el (async-shell-command): Ignore current-prefix-arg and + always pass nil to second argument of `shell-command'. (Bug#63432) + +2023-05-13 Joseph Turner + + Fix building of VC package manuals with relative includes + + * lisp/emacs-lisp/package-vc.el (package-vc--build-documentation): + Invoke makeinfo with -I to ensure the package directory is always + consulted for @include statements. (Bug#63337) + +2023-05-13 Cyril Arnould (tiny change) + + Another fix for VHDL mode highlighting + + * lisp/progmodes/vhdl-mode.el (vhdl-version): Bump to 3.38.5. + (vhdl-compiler-alist): Fix the regexps and the doc string. + +2023-05-13 Eli Zaretskii + + Fix auto-filling in Texinfo mode + + This fixes auto-filling in Texinfo buffers. It was broken by the + fix to bug#49558, which made M-q fill over-long @noindent lines by + refraining from customizing 'paragraph-separate' in Texinfo mode. + The underlying problem here is that 'auto-fill-mode' doesn't call + mode-specific filling functions, but does its job by itself, and + depends on 'forward-paragraph' to find the beginning of the + paragraph as appropriate for calculation of 'fill-prefix', and a + different value of 'paragraph-separate' broke that. As a side + effect, the change below also changes paragraph-movement commands + in Texinfo back to how they behaved prior to that bugfix, but I + don't see why the paragraph-movement behavior introduced by that + fix made more sense. Try to move through a series of + @-directives, like a paragraph preceded by several @cindex + entries, and you will see the inconsistencies. In any case, the + adverse effects of that fix on auto-filling is unacceptable. + + * lisp/textmodes/texinfo.el (fill-paragraph-separate): New + variable. + (texinfo-mode): Set 'fill-paragraph-separate' to the default value + of 'paragraph-separate'. Customize 'paragraph-separate' to the + Texinfo-specific value, as it was before commit dde591571abf. + (texinfo--fill-paragraph): Bind 'paragraph-separate' to the value + of 'fill-paragraph-separate', to keep 'M-q' happy. + +2023-05-12 Gregory Heytings + + Merge branch 'scratch/long-lines-cleanup' into 'emacs-29' + +2023-05-12 Gregory Heytings + + Add an assertion in, and a commentary for, 'get_nearby_bol_pos' + + * src/xdisp.c: + (get_nearby_bol_pos): Document the function, and add an assertion + on its return value. + +2023-05-12 Gregory Heytings + + Fix the return type of 'labeled_restrictions_get_bound' + + * src/editfns.c: + (labeled_restrictions_get_bound): Return a Lisp_Object instead of + a pointer to a struct Lisp_Marker. + (unwind_reset_outermost_restriction, reset_outermost_restrictions) + (Fwiden, Fnarrow_to_region): Adapt to the new return type. + +2023-05-12 Eli Zaretskii + + Fix mouse highlight with some fonts in Cairo builds + + * src/ftcrfont.c (ftcrfont_draw): Don't set the + 'background_filled_p' flag of the glyph string. (Bug#63271) + +2023-05-12 Philip Kaludercic + + Ensure that package menu respects 'package-install-upgrade-built-in' + + * lisp/emacs-lisp/package.el (package-menu--find-upgrades): Check if + built-in packages can be upgraded if + 'package-install-upgrade-built-in' is non-nil. + +2023-05-12 Philip Kaludercic + + Ensure that EXTRA-DATA are always written when generating autoloads + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Handle + edge-case where no autoloads are found. (Bug#63260) + +2023-05-11 Jonas Bernoulli + + Update to Transient v0.4.0 + + Or strictly speaking v0.4.0-1-g428576a4.) + +2023-05-11 Eli Zaretskii + + Revert "Don't have nntp-report signal an error" + + This reverts commit 032969e8c65ba1ccda8466f6c61f20e0c7293ebf. + The commit is being reverted because it caused bug#62845. + +2023-05-10 Alan Mackenzie + + Make c-emacs-features use the proper binding of parse-sexp-lookup-properties + + This is relevant for bug #58558, although it does not fix it. Due to a wrong + ordering of with-current-buffer and a let form, the function overwrote the + global value of parse-sexp-lookup-properties and two other variables. + + * lisp/progmodes/cc-defs.el (c-emacs-features): Change the nesting of + with-current-buffer and let so that the let bindings get used. + +2023-05-09 Stefan Monnier + + with-display-message: Workaround for bug#63253 + + Running arbitrary ELisp code from an atimer is still dangerous, + at least because the regexp engine is not-reentrant, so let's patch up + the case we bumped into. There are probably many other such holes :-( + + * src/alloc.c (garbage_collection_inhibited): Make it non-static. + + * src/xdisp.c (garbage_collection_inhibited): Declare it. + (set_message, clear_message): Use it as a proxy for "we're in + a dangerous context like within `probably_quit`". + +2023-05-09 João Távora + + Fido-mode: never shadow 'external' completion style + + As explained in the manual (20.7.2 Fast minibuffer selection) + 'fido-mode' and 'fido-vertical-mode' give priority the "flex" + completion style. + + In fact, bug#62015 was recently fixed in commit because that priority + was not taking place correctly and some completions were missed. + + However, an exception must be made for the 'external' completion + style. + + That style, made available by the lisp/external-completion.el library, + is specifically designed to work with backends that provide only a + partial view of all completions. If we allow 'flex' to step in front + of 'external' it could mean that 'flex' matches something and + 'external' isn't triggered as it probably should. + + To reproduce have the rust-mode ELPA package and the rust-analyzer LSP + server handy. Then: + + emacs -Q -f package-initialize main.rs + + Where main.rs is this content: + + fn foo1() {} fn foo2() {} fn foo3() {} + fn foobar1() {} fn foobar2() {} fn foobar3() {} + + The rust-analyzer server can be quickly configured to return only 3 + workspace symbols max, so evaluate: + + (setq-default eglot-workspace-configuration + '(:rust-analyzer + (:workspace (:symbol (:search (:limit 3)))))) + + Now start M-x eglot and M-x fido-vertical-mode and type C-u M-. to + find an arbitrary symbol in this one-file project. + + Type 'f'. You will see the three foo's are listed, correctly. + + Now type '3'. You will only see "foo3". + + But that's wrong because "foobar3" was available, if only the server + had been asked for it. This commit fixes the situation and no + completions are lost. + + As an unfortunate side-effect of this commit, the fontification of + completions-common-part on the matches is lost, but that is not worse + than missing out on completions and there are better ways to recover + the fontification anyway (in external-completion.el). + + See also: + https://github.com/joaotavora/eglot/discussions/1219#discussioncomment-5818336 + + * lisp/icomplete.el (icomplete--fido-ccd): Do not touch entries + with 'external in them. + + Do not merge to master. + Backport: + + (cherry picked from commit 0e8d8a72284f6b3aaa1bbce73d41c7d84bbc4d3c) + +2023-05-09 Eli Zaretskii + + Avoid crashes in --without-all build trying to scale non-ASCII char + + * src/fontset.c (face_for_char): Display a non-ASCII character as + glyphless if the ASCII face has no fontset. (Bug#63283) + +2023-05-09 Eli Zaretskii + + Improve instructions for dealing with Emacs crashes + + * doc/emacs/trouble.texi (Crashing): Show the variant of the + 'addr2line' command for MS-Windows. + +2023-05-08 Mohsen Banan + + Improved transliterations + improved bidi insertion support for Farsi + + * lisp/leim/quail/persian.el ("farsi-transliterate-banan"): + Improve and add transliterations. (Bug#63361) + +2023-05-08 Alan Third + + Fix crash when creating a child frame in NS (bug#63107) + + * src/nsterm.m ([EmacsView initFrameFromEmacs:]): Have a second go at + creating the toolbar. + ([EmacsWindow createToolbar:]): If there is already a toolbar or the + EmacsView's layer is not an EmacsLayer, then do nothing. + + (cherry picked from commit 3adc1e7f37901235bda83ea65a90644b7b0a8dbf) + +2023-05-07 Andrew G Cohen + + Fix outgoing mime type regression (Bug#62815) + + * lisp/net/mailcap.el (mailcap-mime-extensions, + mailcap-parse-mimetype-file, mailcap-mime-types): Don't regexp-quote + mimetypes in a context where they should be strings. + (mailcap--regexp-quote-type): Remove. + + (cherry picked from commit 605414d018da47f99dec5019142f584b6eb174c8) + +2023-05-07 Nicholas Vollmer + + define-minor-mode: sanitize mode function messages + + * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Ensure mode's + pretty name is not interprted as a message formatting string, + e.g., if the mode name contains a '%'. (Bug#63343) + +2023-05-07 Eli Zaretskii + + Fix beginning/end-of-defun with tree-sitter + + * lisp/treesit.el (treesit-beginning-of-defun) + (treesit-end-of-defun): Push mark, as other beginning/end-of-defun + functions do. + +2023-05-06 Theodor Thornhill + + Fix indent for enums in csharp-mode + + * lisp/progmodes/csharp-mode.el (csharp-guess-basic-syntax): Check for + keywords containing 'enum' on the line before an opening bracket, and + make it behave like a class-open token. + +2023-05-06 Eli Zaretskii + + Teach c-ts-mode about the 'restrict' keyword + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--keywords): Add + "restrict" and "_Atomic" type qualifiers. (Bug#63323) + +2023-05-06 Eli Zaretskii + + * lisp/x-dnd.el (x-dnd-after-move-frame): Skip dead frames. (Bug#63312) + +2023-05-06 Eli Zaretskii + + Fix doc strings of 'mark-sexp' and 'mark-word' + + * lisp/emacs-lisp/lisp.el (mark-sexp): + * lisp/simple.el (mark-word): Clarify the doc strings in various + usage cases. (Bug#62892) + +2023-05-05 Dmitry Gutov + + (package-upgrade): Don't remove the package from 'package-selected-packages' + + * lisp/emacs-lisp/package.el (package-upgrade): + Don't remove the package from 'package-selected-packages', fixing + the problem described in https://debbugs.gnu.org/62720#718. + +2023-05-05 João Távora + + Eglot: re-rename eglot-upgrade to eglot-upgrade-eglot + + * doc/misc/eglot.texi (Getting the latest version): Mention + eglot-upgrade-eglot. + + * etc/EGLOT-NEWS: Mention eglot-upgrade-eglot. + + * lisp/progmodes/eglot.el (eglot-upgrade-eglot): Rename from + eglot-update. + (eglot-update): New compatibility alias. + +2023-05-05 Eli Zaretskii + + Fix arguments of xml.c functions as displayed in Help buffers + + * lisp/subr.el (libxml-parse-xml-region) + (libxml-parse-html-region): Adjust advertised-calling-convention + to the changes in commit cc33c6cf3a. (Bug#63291) + +2023-05-05 Po Lu + + More fixes for NetBSD/vax + + * src/sysdep.c (init_signals) [__vax__]: Treat SIGILL + as a floating point error on VAXen. + Otherwise, (log 0.0) crashes Emacs. + +2023-05-05 Cyril Arnould (tiny change) + + Improve VHDL mode highlighting + + * lisp/progmodes/vhdl-mode.el (vhdl-compiler-alist): Differentiate + between ModelSim errors, warnings, and notes when highlighting + them. Add a new entry for Xilinx Vivado. (Bug#63251) + +2023-05-04 Po Lu + + Clarify documentation wrt floating point division by zero and NaN + + * doc/lispref/numbers.texi (Float Basics) + (Arithmetic Operations): Document what happens on a VAX. + Tested on NetBSD 9.3. + +2023-05-04 Robert Pluim + + Make loaddefs-generate slightly more tolerant + + There are packages in the wild, such as vlf-20191126.2250, which have + entries that are not terminated by three ';', but by two. Tolerate + such entries. + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Search for two + ';' as a delimiter, not three. (Bug#63236) + +2023-05-04 Philip Kaludercic + + Fix order of rcirc-connect arguments + + * lisp/net/rcirc.el (rcirc): Pass SERVER-ALIAS before CLIENT-CERT. + (rcirc-connect): Take SERVER-ALIAS before CLIENT-CERT. + + This is necessary for the 'rcirc-reconnect' trick to work that applies + the contents of 'rcirc-connection-info' to 'rcirc-connect', otherwise + the server alias gets lost as certfp information. + + This addresses a change made in b79cb838a477ee5a5c3660e81264991ff833a82f. + +2023-05-04 Thuna (tiny change) + + Fix rcirc messages printing in the wrong place + + * lisp/net/rcirc.el (rcirc-send-message): Print the message before + sending it to the server. + (rcirc-print): Get the time with subsecond precision. + * lisp/calendar/parse-time.el (parse-time-string + parse-iso8601-time-string): Accept optional second FORM arguments, + with the same meaning as in `decode-time'. Mention as such in the + docstring. (Bug#59501) + +2023-05-04 Philip Kaludercic + + Prevent unnecessary modifications of 'package-vc-selected-packages' + + * lisp/emacs-lisp/package-vc.el (package-vc--unpack): Handle the + structure of correctly, not as an alist but a list of alists. + (package-vc--archive-spec-alist, package-vc--archive-spec-alists, + package-vc--desc->spec, package-vc--read-archive-data, + package-vc--download-and-read-archives, package-vc--unpack): Rename + 'package-vc--archive-spec-alist' to 'package-vc--archive-spec-alists'. + +2023-05-03 Dmitry Gutov + + Rename eglot-update to eglot-upgrade + + * doc/misc/eglot.texi (Getting the latest version): + Update the reference. + + * lisp/progmodes/eglot.el (eglot-upgrade): Rename from + 'eglot-update', as discussed on emacs-devel, in line with + 'package-upgrade'. + +2023-05-03 Randy Taylor + + go-ts-mode: Use iota query only if supported (Bug#63086) + + iota query support was added on January 5, 2022. To support older + versions of the tree-sitter-go grammar (like the latest tagged version, + v0.19.1, which was released on March 3, 2021), check if the query is + supported before trying to use it. + + * lisp/progmodes/go-ts-mode.el (go-ts-mode--iota-query-supported-p): New + function. + (go-ts-mode--font-lock-settings): Use it. + +2023-05-03 Dmitry Gutov + + (rng-complete-tag): Add the (ignored) argument to the :company-kind function + + * lisp/nxml/rng-nxml.el (rng-complete-tag): Add the (ignored) + argument to the :company-kind function. Fixes the "Wrong number + of arguments" error reported at + https://github.com/company-mode/company-mode/issues/1386. + +2023-05-03 Jonas Bernoulli + + Update to Transient v0.3.7-219-g3ded15b + +2023-05-03 Po Lu + + Fix inserting selection data into Mozilla programs + + * lisp/select.el (xselect-convert-to-text-uri-list): Don't + return any value when converting non-DND selections to this + drag-and-drop target. + + Reported by Tobias Bading . + +2023-05-03 Thuna (tiny change) + + Recognize defstruct slot names in various eieio functions + + * lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Set + each slot's name's 'slot-name' property so that + 'eieio--known-slot-name-p' can recognize them. (Bug#62959) + +2023-05-02 Thuna (tiny change) + + Use 'calendar-buffer' instead of fixed string + + * test/lisp/calendar/cal-julian-tests.el (with-cal-julian-test): + Use 'calendar-buffer' instead of a literal fixed name. + (Bug#61546) + +2023-05-02 Spencer Baugh + + Handle point not at EOB in minibuffer-choose-completion + + Without this change, only the minibuffer contents before point + are cleared when a completion is chosen, which results in stray + text when point is in the middle of the minibuffer. + + After this change, we heuristically decide either to clear the + whole buffer or only part of it, taking into account the + location of point. + + This is a backport for the Emacs 29 release branch of a simpler + fix in minibuffer-completion-help. + + * lisp/minibuffer.el (minibuffer-next-completion): + (minibuffer-choose-completion): + Recalculate completion-base-affixes with point. (Bug#62700) + +2023-05-02 Spencer Baugh + + Note that Emacs pauses when handling sentinel errors + + Noting this behavior and variable here makes it easier to + understand the behavior of Emacs when a sentinel has an error. + + * doc/lispref/processes.texi (Filter Functions): Note that Emacs + pauses when handling sentinel errors. + (Sentinels): Note that Emacs pauses when handling sentinel errors. + (Bug#63096) + +2023-05-01 Eli Zaretskii + + Fix vertical-motion when tab-line is displayed in a window + + * src/xdisp.c (try_window, try_window_id): Account for tab-line, + if present, when converting scroll-margin at the top of the window + to vertical pixel coordinate. (Bug#63201) + +2023-04-30 Kyle Meyer + + Update to Org 9.6.5-3-g2993f4 + +2023-04-30 Philip Kaludercic + + Prevent generating empty autoload files + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Remove + optimisation that would mistakenly discard old loaddefs in case a file + was not modified by EXTRA-DATA is non-nil. (Bug#62734) + +2023-04-30 Stefan Monnier + + * lisp/org/org-macs.el (org--inhibit-version-check): Fix docstring + + Also, add an explanation to the docstring for what the version + check is about. + +2023-04-30 Eli Zaretskii + + Fix redisplay of mode line after its format changes from nil + + * src/dispnew.c (update_window): Make sure a mode-line's row of + the current glyph matrix is disabled when the mode line is not + being displayed. (Bug#63186) + +2023-04-30 Michael Albinus + + Fix c-ts-mode--emacs-c-range-query + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--emacs-c-range-query): + Check for (treesit-available-p). + +2023-04-30 Eli Zaretskii + + Improve documentation of warnings + + * doc/lispref/control.texi (Errors): + * doc/lispref/os.texi (Startup Summary): + * doc/lispref/display.texi (Warning Basics, Warning Variables) + (Warning Options, Delayed Warnings): Improve documentation of + warnings. Document the automatic delaying of warnings during + startup. (Bug#63181) + +2023-04-29 Yuan Fu + + Fix FOR_EACH_TAIL fontification (bug#62951) + + Fix the fontification inconsistency between different FOR_EACH_TAIL's. + See the comment for more explanation. Also enable the emacs-devel + feature automatically when c-ts-mode-emacs-sources-support is on. + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--for-each-tail-regexp): Move up. + (c-ts-mode--font-lock-settings): New font-lock rule for FOR_EACH_TAIL. + (c-ts-mode--fontify-for-each-tail): New function. + (c-ts-mode): Automatically enable emacs-devel feature. + +2023-04-29 Eli Zaretskii + + Fix documentation of libxml-parse-* functions + + * doc/lispref/text.texi (Parsing HTML/XML): + * src/xml.c (Flibxml_parse_html_region, Flibxml_parse_xml_region): + Update the documentation regarding the use of BASE-URL argument. + (Bug#63125) + +2023-04-28 Theodor Thornhill + + Skip over whitespace in annotation-top-cont check (bug#63141) + + * lisp/progmodes/csharp-mode.el (csharp-guess-basic-syntax): Make sure + we skip over whitespace when looking for the next '['. + +2023-04-28 Ruijie Yu + + Update zh-CN tutorial translation + + * etc/tutorials/TUTORIAL.cn (INTRO): Additions from English + version; say "interrupt" not "quit" a partially-entered command; + fixed minor inconsistency (English says partially-entered command, + Chinese used to say partially-executed command -- they are + different); converted half-width square brackets containing + translators' notes into full-width ones for consistency. + (BASIC CURSOR CONTROL): mention that a word boundary for Chinese + can also be space; fixed incorrect terminology (keyboard vs + terminal); retain English term "terminal"; retain English term + "prefix argument"; "most commands _interpret_ prefix args as + repeat-count", not "explain"; ensure space is added on both ends + of an English word. + (WINDOWS): Clarify it is the digit 1 in C-x 1. + (INSERTING AND DELETING): Mention the term "continuation line" and + retain its English term, because this term is mentioned again + later in the tutorial; avoid saying the name of "\\"; add + description for "electric" and a rough translation; sync English + for prefix argument for DEL and C-d; ensure that translators' + notes are marked explicitly so; add indentation to the instruction + about continuation lines; additional translations such as + mentioning C--, etc. + (FILES): Re-pluralize the heading; space around English words; + describe what C-g cancels (the command) when entering file name; + replace "search for" with "find"; minor rephrasing; explicit + translator notes; fixed the write-file message to no longer + contain ellipses (see src/fileio.c:5541). + (BUFFERS): Re-pluralize the heading; mention that C-x C-b also + shows buffer name; C-x s only looks for file-visiting buffers. + (EXTENDING THE COMMAND SET): Include C-x s and C-x b in list of + learned commands. + (MODE LINE): Remove the dashes in description on the point + location. + (MULTIPLE WINDOWS): Mention the difference between frame + and window; also add translator notes pointing to end of + tutorial which contains a terminology list. + (MULTIPLE FRAMES): Change the M-x commands to keybinds C-x 5 2 and + C-x 5 0 to sync with English. + (GETTING MORE HELP): Change C-h f to C-h x, to sync with English. + (INSTALLING PACKAGES): Rephrase "available packages", used to say + lit., "existing", now says lit., "installable"; consistently + translate the term "package", and retain its English name. + (TRANSLATION): Add my name as co-maintainer of this file. + + * etc/tutorials/TUTORIAL.translators (TUTORIAL.cn): Add my name + as co-maintainer for TUTORIAL.cn. + +2023-04-28 Eli Zaretskii + + Fix eglot.texi + + * doc/misc/eglot.texi (Troubleshooting Eglot): Add missing @menu. + (Performance, Getting the latest version): Improve wording and + indexing, add cross-references. + +2023-04-27 Po Lu + + Fix two crashes upon startup + + * src/image.c (image_create_bitmap_from_data) + (image_create_bitmap_from_file): Specify a Window or a Pixmap + describing the screen, not a back buffer drawable which may not exist. + Otherwise, Emacs crashes on startup when a bitmap icon is in use. + +2023-04-27 João Távora + + Eglot: explain how to update Eglot in manual (bug#62720) + + * lisp/progmodes/eglot.el (eglot-update): New command. + + * doc/misc/eglot.texi (Troubleshooting): Rework. + +2023-04-27 João Távora + + Eglot: fix edge case when deleting inlay hint overlays + + When asked to update hints in a region (FROM TO), + eglot--update-hints-1 first deletes the existing hints. It must + however take care to delete all overlays that logically belong to the + region, even if they don't physically belong to it, e.g. inlay + overlays spanning (FROM-1 FROM) and having a 'after-string' property. + + * lisp/progmodes/eglot.el (eglot--update-hints-1): Fix edge case. + +2023-04-27 Dmitry Gutov + + package-upgrade[-all]: Expand docstrings to note the current limitation + + * lisp/emacs-lisp/package.el (package-upgrade, package-upgrade-all): + Expand docstrings to note the current limitation (bug#62720). + +2023-04-27 Dmitry Gutov + + Rename all functions called package-*-update-* to package-*-upgrade-* + + * lisp/emacs-lisp/package-vc.el (package-vc-upgrade-all): + Rename from 'package-vc-update-all'. + (package-vc-upgrade): Rename from 'package-vc-update'. + + * lisp/emacs-lisp/package.el (package-upgrade): + Rename from 'package-update' (bug#62750). + (package--upgradeable-packages): + Rename from 'package--updateable-packages'. + (package-upgrade-all): Rename from 'package-update-all'. + +2023-04-27 Yuan Fu + + Fix FOR_EACH_TAIL in c-ts-mode (bug#62951) + + * lisp/progmodes/c-ts-mode.el + (c-ts-mode--indent-styles): New indent rule. + + (c-ts-mode--for-each-tail-regexp) + (c-ts-mode--for-each-tail-body-matcher) + (c-ts-mode--emacs-c-range-query) + (c-ts-mode--for-each-tail-ranges) + (c-ts-mode--reverse-ranges) + (c-ts-mode--emacs-set-ranges): New functions and variables. + + (c-ts-mode): Create a emacs-c parser. More setup for Emacs source + support. + + * lisp/treesit.el (treesit-query-range): Ignore underscore-prefixed + capture names. + +2023-04-27 Eli Zaretskii + + * Makefile.in (distclean): Remove the 'native-lisp' directory. + +2023-04-27 Eli Zaretskii + + Improve greek-ibycus4 input method + + * lisp/leim/quail/greek.el ("greek-ibycus4"): Add another sequence + for CAPITAL LETTER RHO WITH DASIA. (Bug#63104) + +2023-04-26 F. Jason Park + + Explain ERC 5.5 regressions in new version 5.5.0.29.1 + + * doc/misc/erc.texi: Bump version to 5.5.0.29.1. + * etc/ERC-NEWS: Don't hype bugged option `erc-reconnect-display'. + * lisp/erc/erc-dcc.el (erc-dcc-do-GET-command): Add comment explaining + parsing bug in ERC 5.5 (bug#62444). + * lisp/erc/erc-networks.el (erc-networks-on-MOTD-end): Mention known + /MOTD bug in error notice so people don't waste energy reporting + it (bug#62151). + * lisp/erc/erc.el: Change Version header to 5.5.0.29.1. Don't bother + updating the `customize-package-emacs-version-alist' entry + because no option defaults are affected. + (erc-version): Change version to 5.5.0.29.1. + (erc-reconnect-display, erc-query-on-unjoined-chan-privmsg): Add + warning to doc strings and `custom-set' functions. It's believed that + these bugs degrade the user experience significantly enough to warrant + such mentions (bug#62833). + (erc-query): Fix erroneous redirect string in deprecation spec. + Do not merge to master. + +2023-04-26 F. Jason Park + + * doc/misc/erc.texi: Elaborate on upgrading via ELPA. + +2023-04-26 Robert Pluim + + Improve outline-default-state docstring + + * lisp/outline.el (outline-default-state): Explain which functions are + available to affect heading visibility. + +2023-04-26 Eli Zaretskii + + Document problems with /bin/sh on Solaris 10 + + * etc/PROBLEMS (Solaris): Document problems with '/bin/sh'. + Suggested by Paul Eggert . (Bug#63067) + +2023-04-25 Eli Zaretskii + + Followup to addition of TUTORIAL.fa + + * etc/NEWS: Announce addition of TUTORIAL.fa. + + * etc/tutorials/TUTORIAL.translators (TUTORIAL.fa): New entry. + + * lisp/language/misc-lang.el ("Persian"): Add tutorial property. + +2023-04-25 Mohsen Banan + + Add Farsi/Persian translation of the tutorial + + * etc/tutorials/TUTORIAL.fa: New file. + + * lisp/language/misc-lang.el (arabic-shaper-ZWNJ-handling): Fix + typo in doc string. + +2023-04-25 Eli Zaretskii + + Add Mongolian language environments + + * lisp/language/misc-lang.el ("Mongolian-traditional"): + * lisp/language/cyrillic.el ("Mongolian-cyrillic"): New + language environments. + + * etc/HELLO: Add Mongolian Traditional. + * etc/NEWS: Announce the new language environments. + + (Bug#63028) + +2023-04-25 Eli Zaretskii + + Document the 'end-session' event on MS-Windows + + * doc/lispref/commands.texi (Misc Events): Document the + 'end-session' event. (Bug#63058) + +2023-04-24 Kyle Meyer + + Update to Org 9.6.4-9-g8eb209 + +2023-04-24 Eli Zaretskii + + Don't support versioned grammar libraries on MS-Windows + + * src/treesit.c (treesit_load_language_push_for_each_suffix): + Don't append ".0.0" on WINDOWSNT. + +2023-04-24 Yuan Fu + + Accept versioned tree-sitter language grammar files + + By discussion on emacs-devel, titled "Versioned Tree-sitter parser + libraries". + + * src/treesit.c (Vtreesit_str_dot_0): New variable. + (treesit_load_language_push_for_each_suffix): Additionally look for + lib_base_name.0 and lib_base_name.0.0. + (syms_of_treesit): Initialize Vtreesit_str_dot_0. + +2023-04-24 Benson Chu (tiny change) + + tab-bar-new-tab: inhibit side-window checks + + Previously, calling 'tab-bar-new-tab-to' only removed the + 'window-side' property on the currently selected window, + and then a call to 'delete-other-windows' was made to + ensure that the selected window was the only window. + We can skip this check by shadowing 'window--sides-inhibit-check' + to t. + * lisp/tab-bar.el (tab-bar-new-tab-to): Inhibit side-window checks. + (Bug#62427) + +2023-04-24 Michael Albinus + + * etc/NEWS: Fix outline level. (Bug#63042) + + Fix typos. + +2023-04-23 Eli Zaretskii + + Fix rendering of Traditional Mongolian script + + * lisp/international/characters.el: Set punctuation syntax for Po + characters from the Mongolian block + * lisp/international/fontset.el (setup-default-fontset): Add + fontset setting for Traditional Mongolic. + * lisp/language/misc-lang.el (composition-function-table): Add + rules for Traditional Mongolic. (Bug#63028) + +2023-04-22 Eli Zaretskii + + Fix line-number-at-pos when POSITION is out of narrowing + + * src/fns.c (Fline_number_at_pos): Don't signal an error when + ABSOLUTE is nil and POSITION is outside of the narrowing, like the + original Lisp implementation did. Minor speedup by using the byte + position where it is available from the get-go. (Bug#62857) + +2023-04-22 Eli Zaretskii + + Fix exiting Emacs after saving a tutorial + + * lisp/tutorial.el (tutorial--starting-point): Make it + permanent-local, so that saving the tutorial to some file doesn't + kill this buffer-local variable. Otherwise, trying to exit Emacs + after saving the tutorial will signal an error, because + 'tutorial--starting-point' is void. (Bug#37326) + +2023-04-22 Eli Zaretskii + + Add indentation style setting for c-ts-mode in .dir-locals.el + + * lisp/progmodes/c-ts-mode.el (c-ts-indent-style-safep): New + predicate. + (c-ts-mode-indent-style): Use it to test the value for being safe. + + * .dir-locals.el (c-ts-mode): Set 'c-ts-mode-indent-style' to 'gnu'. + +2023-04-20 Nicolas Martyanoff + + sql: add missing postgresql types + + * lisp/progmodes/sql.el: Add multiple missing PostgreSQL types: bigserial, + smallserial, macaddr8, jsonb, jsonpath, built-in range types, object + identifier types (oid & co). + +2023-04-19 Eli Zaretskii + + Fix display of menu-bar bindings of commands in *Help* buffers + + * lisp/help-fns.el (help-fns--insert-menu-bindings): Propertize + with 'help-key-binding' face only the menu items, not the arrows + between successive items. This is because 'char-displayable-p' is + unreliable when we propertize the character with an arbitrary + face: that face could specify a font which doesn't support the + character after all, while 'char-displayable-p' assumes there are + no restrictions on fonts that can be used for displaying the + character. Also, make the code more efficient by avoiding the + call to 'char-displayable-p' inside the loop. + +2023-04-19 Spencer Baugh + + Improve Completion Example section in the Emacs manual + + This can be a useful substitute for full-on fuzzy completion, as + provided by other completion styles and completion packages. + * doc/emacs/mini.texi (Completion Example): Give an example of + completion with point not at end of minibuffer. Also, use + @kbd{@key{TAB}} when telling the user to hit TAB. (Bug#62836) + +2023-04-19 Robert Pluim + + Improve 'message-server-alist' docstring + + * lisp/gnus/message.el (message-server-alist): Fix typo and clarify + what happens if there is already an X-Message-SMTP-Method header. + +2023-04-19 Robert Pluim + + Add index entry for fallback modes + + * doc/emacs/custom.texi (Specifying File Variables): Add index for + 'fallback modes'. + +2023-04-18 Dmitry Gutov + + xref-search-program-alist: Fix searching larger file lists on MS Windows + + * lisp/progmodes/xref.el (xref-search-program-alist): + Add '-s 10000' to xargs' options when on Windows or DOS. + Apparently the xargs port doesn't currently know how to obey the + system-wide limits (https://debbugs.gnu.org/bug=61667#521). + +2023-04-18 Shynur (tiny change) + + Fix typo and inaccuracy in the ELisp Reference manual + + * doc/lispref/loading.texi (Dynamic Modules): Fix a typo. + * doc/lispref/customize.texi (Group Definitions): Faces are also + in the 'custom-group' property of a customization group. + (Bug#62887) + +2023-04-18 Eli Zaretskii + + Fix description of lexical environment's internals + + * doc/lispref/variables.texi (Lexical Binding): Update the + description of how the lexical environment is represented + internally. (Bug#62840) + +2023-04-16 Kyle Meyer + + Update to Org 9.6.4-2-g0f6ae7 + +2023-04-16 Eli Zaretskii + + Documentation copyedits for 'package-install-upgrade-built-in' etc + + * etc/NEWS: More details about the new option + 'package-install-upgrade-built-in'. + + * lisp/emacs-lisp/package.el (package-install-upgrade-built-in) + (package--active-built-in-p, package-install): Doc fixes. + (Bug#62720) + +2023-04-16 Philip Kaludercic + + Allow upgrading built-in packages with 'package-install' + + * etc/NEWS: Mention the change + * lisp/emacs-lisp/package.el (package--upgradable-built-in-p): Add new + predicate. + (package-install-upgrade-built-in): Add new user option to enable + feature. + (package-install): Respect new user option. + +2023-04-16 Eli Zaretskii + + Minor changes in c-ts-mode.el's support of DEFUNs + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--fontify-DEFUN): Renamed + from 'c-ts-mode--fontify-defun'; all callers changed. + (c-ts-mode-emacs-sources-support): Renamed from + 'c-ts-mode-emacs-devel' and made into a defcustom; all users + changed. + (c-ts-mode--emacs-defun-p, c-ts-mode--emacs-defun-at-point) + (c-ts-mode--emacs-current-defun-name): Doc fixes. (Bug#62825) + +2023-04-16 Eli Zaretskii + + Fix strike-through attribute support on TTY frames + + * src/term.c (init_tty): Fix setting the strike-through capability + with "smxx". (Bug#62265) + +2023-04-16 Eli Zaretskii + + Avoid crashes in 'describe-keymap' due to shadowing + + * src/keymap.c (describe_vector): Handle shadowing by something + other than a symbol. (Bug#62867) + +2023-04-15 Andreas Schwab + + Make image-map bindings available on image links + + * lisp/net/shr.el (shr-map): Move shr-browse-image to "M-i". + * lisp/net/eww.el (eww-image-link-keymap): Use shr-image-map. + +2023-04-15 Alan Mackenzie + + * CONTRIBUTE: Fix a typo + +2023-04-15 Jostein Kjønigsen + + Add to Eglot support for additional language-servers. + + * lisp/progmodes/eglot.el (eglot-server-programs): Add + 'vscode-markdown-language-server' for Markdown and + 'dot-language-server' for GraphViz. (Bug#62844) + +2023-04-14 Yuan Fu + + Partial support for DEFUN in c-ts-mode (bug#62825) + + The DEFUN is hard to incorporate because it's made of two nodes rather + than one, and most tree-sitter functionalities assume a defun is one + node. I fixed the indent-defun and add-log functionality, but + beginning/end-of-defun and imenu still don't recognize DEFUN. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode-emacs-devel): New variable. + (c-ts-mode--defun-name): Support DEFUN. + (c-ts-mode--defun-valid-p): Support DEFUN. + (c-ts-mode--emacs-defun-p) + (c-ts-mode--emacs-defun-at-point): New functions. + (c-ts-mode-indent-defun): Use c-ts-mode--emacs-defun-at-point. + (c-ts-mode--emacs-current-defun-name): New function. + (c-ts-mode, c++-ts-mode): Optionally setup custom defun-name function. + +2023-04-14 Eli Zaretskii + + Fix style and unwinding code in treesit.c + + This was supposed to be a cherry-pick from master, but + isn't, due to the unnecessary rush to fix master without + cleaning up the mess first and without separating changes + that can and cannot be backported. + * src/treesit.c (treesit_traverse_cleanup_cursor): Fix indentation + style. + (Ftreesit_search_subtree, Ftreesit_search_forward) + (Ftreesit_induce_sparse_tree): Fix specpdl unwinding. (Bug#62823) + Do not merge to master. + +2023-04-14 Yuan Fu + + Catch signals produced by PRED in tree-sitter search functions + + Earlier we switched to using cursors rather than nodes to traverse the + parse tree. Because cursors need cleanup, we have to catch signals + thrown by the predicate functions and free the cursor. Failing to do + this will result in leaking the cursor whenever the predicate function + signals in a search function. This change fixes the leak. + * src/treesit.c (treesit_traverse_cleanup_cursor): New function. + (Ftreesit_search_subtree) + (Ftreesit_search_forward) + (Ftreesit_induce_sparse_tree): Catch signals. (Bug#62823) + + (cherry picked from commit a5eb9f6ad4e6f5a2819b540a477f1e889f6ef355) + +2023-04-13 Eli Zaretskii + + Fix compilation of w32.c with old MinGW system headers + + * src/w32.c (CONSOLE_FONT_INFO): Make sure the definition is not + visible for MinGW versions whose w32api's version is before 5.2.0. + (Bug#52792) + +2023-04-12 Dmitry Gutov + + ruby-add-log-current-method: Reduce the use of 'nreverse' + + * lisp/progmodes/ruby-mode.el (ruby-add-log-current-method): + Reduce the use of 'nreverse' (bug#62761). + + * test/lisp/progmodes/ruby-mode-tests.el + (ruby-add-log-current-method-singleton-referencing-outer): + New test. + +2023-04-12 Visuwesh + + Fix detection of WebP images by their signature + + * lisp/image.el (image-type-header-regexps): The 4 characters + between "RIFF" and "WEBP" in WebP images can also be newlines. + (Bug#62790) + +2023-04-12 Earl Hyatt + + Add more documentation for the keys of `package-vc-selected-packages`. + + * doc/emacs/package.texi (Specifying Package Sources): List the + accepted keys in a new subsection of Fetching Package Sources. + + * lisp/emacs-lisp/package-vc.el (package-vc-selected-packages): + Mention the `:doc` key. Add the `:doc` key to the Customize form, + mention the new Info node, correct "TexInfo" to "Texinfo", avoid + Git-specific terms for the description of `:branch`, mention guessing + `:vc-backend` based on the URL. + +2023-04-11 Dmitry Gutov + + vc-checkout: Try to use the vc-dir's backend first + + * lisp/vc/vc.el (vc-checkout): Try to use the vc-dir's backend + before looking for the file's one. The latter doesn't work when + the file doesn't exist on disk yet (bug#62674). + +2023-04-11 Eli Zaretskii + + Improve documentation related to 'ispell-complete-word' + + * lisp/textmodes/ispell.el (ispell-alternate-dictionary) + (ispell-complete-word-dict, ispell-complete-word): Doc fixes. + (Bug#62775) + +2023-04-11 Po Lu + + * configure.ac: Add -lbsd on Haiku. + +2023-04-11 Eli Zaretskii + + Add menu to 'c-ts-mode' and 'c++-ts-mode' + + * lisp/progmodes/c-ts-mode.el (c-ts-mode-menu): New menu. + +2023-04-11 Mattias Engdegård + + Update manual about `sort` + + * doc/lispref/sequences.texi (Sequence Functions): + Remove inaccurate and over-specific claims about how `sort` works for + lists: there is no guarantee that it doesn't modify the `car` fields + of the input list (which is precisely what it does at this time). + + (cherry picked from commit c753a9592345e2084d69e9e2cc458c16db2e4141) + +2023-04-11 Eli Zaretskii + + Fix wallpaper-tests on MS-Windows + + * test/lisp/image/wallpaper-tests.el (wallpaper--find-setter) + (wallpaper--find-setter/call-predicate) + (wallpaper--find-setter/set-current-setter) + (wallpaper-set/calls-init-action) + (wallpaper-set/calls-wallpaper-set-function) + (wallpaper-set/runs-command, wallpaper-set/runs-command/detach): + Skip these tests if native functions are used for changing + wallpaper. These tests are irrelevant in that case. + +2023-04-11 Basil L. Contovounesios + + Fix a couple of eglot-tests + + * test/lisp/progmodes/eglot-tests.el + (eglot-test-rust-analyzer-watches-files): Bump timeout. + (eglot-test-json-basic): Check for yas-minor-mode before using it, + like other tests do (bug#61637). + +2023-04-10 Eli Zaretskii + + Fix visiting RPM files + + We cannot call 'sh-set-shell' inside 'sh-base-mode', since various + settings of 'sh-mode', in particular the syntax table, is not yet + set. Likewise with various hooks: since 'sh-base-mode' is not a + mode any file should be visited with, it makes no sense to set up + stuff like 'hack-local-variables-hook' in 'sh-base-mode'; it + should be set in the descendant modes instead. + * lisp/progmodes/sh-script.el (sh-base-mode): Move the call to + 'sh-set-shell' from here... + (sh-mode): ...to here... + (bash-ts-mode): ...with a copy here. (Bug#62748) + +2023-04-10 Basil L. Contovounesios + + Fix ff-quiet-mode doc + + * lisp/find-file.el (ff-quiet-mode, ff-find-other-file): Say that + ff-quiet-mode disables tracing, not the inverse. + +2023-04-01 Gregory Heytings + + Another final fix to last changes + + * src/xdisp.c (get_small_narrowing_begv): Refine the value of 'bol_pos'. + +2023-04-01 Gregory Heytings + + Three final fixes to last changes + + * src/xdisp.c (get_nearby_bol_pos): Initialize 'bol' to BEGV - 1 + instead of 0 (which fixes cursor motion commands in the presence + of a narrowing), adapt the return condition accordingly, and do + not restart the loop when BEGV has been reached. + (get_small_narrowing_begv): Use correct type. + +2023-04-01 Gregory Heytings + + Two further fixes to last changes + + * src/xdisp.c (get_narrowed_width): Use FRAME_WINDOW_P instead of + Fterminal_live_p. Also take WINDOW_LEFT_FRINGE_WIDTH into + account. + +2023-04-01 Gregory Heytings + + Improve and fix last changes + + * src/xdisp.c (get_narrowed_width): Use WINDOW_RIGHT_FRINGE_WIDTH, + which works both for character-only terminals and for GUI frames + without fringes. + (get_nearby_bol_pos): Instead of searching for BOL in + [pos-500000..pos], gradually extend the region, starting with + [pos-500..pos]. This is much faster in buffers with some long + lines in the middle of lots of short lines. + +2023-03-29 Gregory Heytings + + Fix cursor motion in character-only terminals + + * src/xdisp.c (get_narrowed_width): Subtract 1 from + window_body_width to account for the '\' line wrapping indication. + +2023-03-28 Gregory Heytings + + Make get_medium_narrowing_begv/zv static + + * src/xdisp.c (get_medium_narrowing_begv): + (get_medium_narrowing_zv): Make these two functions static, they + are only used in xdisp.c. + + * src/dispextern.h: Remove the prototypes. + +2023-03-28 Gregory Heytings + + Improve accuracy of cursor motion commands in long lines + + * src/xdisp.c (get_nearby_bol_pos): New function. + (get_small_narrowing_begv): Use it. This makes cursor motion + commands much more accurate in the first 500K characters of each + long line. + +2023-03-28 Gregory Heytings + + Remove labeled restrictions before calling Fwiden + + * src/editfns.c (labeled_restrictions_remove_in_current_buffer): + New function. + + * src/lisp.h: Make it externally visible. + + * src/xdisp.c (display_count_lines_logically): + * src/lread.c (readevalloop): + * src/indent.c (line_number_display_width): + * src/fileio.c (write_region): + * src/callproc.c (Fcall_process_region): + * src/buffer.c (Ferase_buffer): Use it. + +2023-03-28 Gregory Heytings + + Code cleanup for long line optimizations + + This commit does not change any code, it merely renames functions + and clarifies the documentation, to make the code hopefully easier + to grasp. + + * src/dispextern.h (struct it): Rename the 'narrowed_begv', + 'narrowed_zv', 'locked_narrowing_begv', 'locked_narrowing_zv' to + 'medium_narrowing_begv', 'medium_narrowing_zv', + 'large_narrowing_begv', 'large_narrowing_zv'. Clarify the + comments. + Update the prototypes of the functions renamed in xdisp.c. + + * src/lisp.h: Update the prototypes of the functions renamed in + editfns.c. Remove the prototype of + 'safe_run_hooks_maybe_narrowed', which is used only in keyboard.c. + + * src/xdisp.c + (get_small_narrowing_begv): Renamed from + 'get_closer_narrowed_begv'. + (get_medium_narrowing_begv): Renamed from 'get_narrowed_begv'. + (get_medium_narrowing_zv): Renamed from 'get_narrowed_zv'. + (get_large_narrowing_begv): Renamed from 'get_locked_narrowing_begv'. + (get_large_narrowing_zv): Renamed from 'get_locked_narrowing_zv'. + (SET_WITH_NARROWED_BEGV): Use the new field names. + (handle_fontified_prop): Use the new function and new field names. + (back_to_previous_line_start): Use the new field name. + (back_to_previous_visible_line_start): Use the new field name. + (reseat): Use the new function and new field names. + (get_visually_first_element): Use the new field name. + (move_it_vertically_backward): Use the new function name. + (redisplay_internal): Use the new function name. + Also add a large comment to explain how Emacs deals with long lines. + + * src/keyboard.c: + (safe_run_hooks_maybe_narrowed): Use the new function names from + xdisp.c and editfns.c. Make the function static, and add a + prototype. + + * src/editfns.c: + (labeled_restrictions): Renamed from 'narrowing_locks'. + (labeled_restrictions_add): Renamed from 'narrowing_locks_add'. + (labeled_restrictions_remove): Renamed from + 'narrowing_locks_remove'. + (labeled_restrictions_get_bound): Renamed from + 'narrowing_lock_get_bound'. + (labeled_restrictions_peek_label): Renamed from + 'narrowing_lock_peek_tag'. + (labeled_restrictions_push): Renamed from 'narrowing_lock_push'. + (labeled_restrictions_pop): Renamed from 'narrowing_lock_pop'. + (unwind_reset_outermost_restriction): Renamed from + 'unwind_reset_outermost_narrowing'. + (reset_outermost_restrictions): Renamed from + 'reset_outermost_narrowings'. + (labeled_restrictions_save): Renamed from 'narrowing_locks_save'. + (labeled_restrictions_restore): Renamed from + 'narrowing_locks_restore'. + (unwind_labeled_narrow_to_region): Renamed from + 'unwind_narrow_to_region_locked'. + (labeled_narrow_to_region): Renamed from + 'narrow_to_region_locked'. + (Finternal__label_restriction): Renamed from + 'Finternal__lock_narrowing'. + (Finternal__unlabel_restriction): Renamed from + 'Finternal__unlock_narrowing'. + (Fwiden): Use the new function names. + (Fnarrow_to_region): Use the new function names. + (save_restriction_save): Use the new function names. + (syms_of_editfns): Use the new function names. + : Renamed from 'outermost-narrowing'. + + * lisp/subr.el (internal--with-restriction): Use the new internal + function name. + (internal--without-restriction): Use the new internal function + name. + + * src/composite.c (composition_compute_stop_pos): + (find_automatic_composition): Use the new function name. + + * doc/lispref/positions.texi (Narrowing): Add index entry. + 2023-04-10 Eli Zaretskii * lisp/ldefs-boot.el: Regenerate. @@ -114322,7 +115654,7 @@ This file records repository revisions from commit f2ae39829812098d8269eafbc0fcb98959ee5bb7 (exclusive) to -commit 5e039d5a6e99d8380044f410673b8ee51dbc1711 (inclusive). +commit ce7d18cbc07886b0d62110a6d26e25271017cd2a (inclusive). See ChangeLog.3 for earlier changes. ;; Local Variables: diff --git a/etc/AUTHORS b/etc/AUTHORS index 3bffc9355e4..05c6ac03bac 100644 --- a/etc/AUTHORS +++ b/etc/AUTHORS @@ -114,7 +114,7 @@ and co-wrote cc-align.el cc-cmds.el cc-defs.el cc-engine.el cc-fonts.el and changed cc-mode.texi bytecomp.el minibuf.c window.c edebug.el follow.el lisp.h display.texi eval.c keyboard.c subr.el frame.c lread.c syntax.texi xdisp.c progmodes/compile.el programs.texi font-lock.el - modes.texi window.el windows.texi and 189 other files + modes.texi window.el windows.texi and 190 other files Alan Modra: changed unexelf.c @@ -389,7 +389,7 @@ and changed nnir.el gnus-sum.el nnimap.el gnus-group.el gnus.texi gnus-msg.el gnus-int.el gnus-search.el auth-source.el gnus-art.el gnus-cache.el gnus.el nnheader.el nnspool.el deps.mk dns.el fns-tests.el fns.c gnus-agent.el gnus-cloud.el gnus-registry.el - and 13 other files + and 14 other files Andrew Hall: changed paren.el @@ -580,7 +580,7 @@ Basil L. Contovounesios: changed simple.el subr.el message.el eww.el custom.el bibtex.el text.texi gnus-sum.el modes.texi customize.texi files.texi gnus-group.el gnus-win.el gravatar.el internals.texi json.el map.el shr.el subr-tests.el window.c battery-tests.el - and 322 other files + and 324 other files Bastian Beischer: changed semantic/complete.el calc-yank.el include.el mru-bookmark.el refs.el senator.el @@ -634,7 +634,7 @@ Ben Menasha: changed nnmh.el Ben North: changed outline.el buffer.c fill.el isearch.el lisp-mode.el paren.el w32term.c xfaces.c -Benson Chu: changed font-lock.el +Benson Chu: changed font-lock.el tab-bar.el Bernhard Herzog: changed vc-hg.el menu.c xsmfns.c @@ -1078,6 +1078,8 @@ Craig McDaniel: changed sheap.c Craig Tanis: changed ox-latex.el +Cyril Arnould: changed vhdl-mode.el + Daiki Ueno: wrote epa-dired.el epa-file.el epa-hook.el epa-mail.el epa.el epg-config.el epg.el pgg-def.el pgg-gpg.el pgg-parse.el pgg-pgp.el pgg-pgp5.el pgg.el plstore.el sasl.el starttls.el @@ -1557,10 +1559,10 @@ Dmitry Gorbik: changed org.el Dmitry Gutov: wrote elisp-mode-tests.el jit-lock-tests.el json-tests.el vc-hg-tests.el xref-tests.el and changed xref.el ruby-mode.el project.el vc-git.el ruby-ts-mode.el - elisp-mode.el etags.el ruby-mode-tests.el js.el vc.el vc-hg.el - package.el symref/grep.el dired-aux.el ruby-ts-mode-tests.el simple.el + elisp-mode.el etags.el ruby-mode-tests.el js.el vc.el package.el + vc-hg.el symref/grep.el dired-aux.el ruby-ts-mode-tests.el simple.el progmodes/python.el treesit.el log-edit.el ruby-ts.rb rust-ts-mode.el - and 155 other files + and 157 other files Dmitry Kurochkin: changed isearch.el @@ -1601,8 +1603,8 @@ Duncan Findlay: changed frame.el keyboard.c xterm.el Earl Hyatt: changed autotype.texi ffap.el seq-tests.el sequences.texi windows.texi control.texi cus-edit.el eshell.texi hi-lock.el misc.texi - pcase-tests.el pcase.el replace.el search.texi seq.el tab-bar.el - texinfo.el + package-vc.el package.texi pcase-tests.el pcase.el replace.el + search.texi seq.el tab-bar.el texinfo.el E. Choroba: changed cperl-mode.el simple.el @@ -1658,10 +1660,10 @@ Eli Zaretskii: wrote [bidirectional display in xdisp.c] [tty menus in term.c] abbrev-tests.el bidi.c biditest.el cham.el chartab-tests.el coding-tests.el etags-tests.el rxvt.el tty-colors.el and co-wrote help-tests.el -and changed xdisp.c display.texi w32.c msdos.c w32fns.c simple.el +and changed xdisp.c display.texi w32.c msdos.c simple.el w32fns.c files.el fileio.c keyboard.c emacs.c text.texi w32term.c dispnew.c configure.ac frames.texi w32proc.c files.texi xfaces.c window.c - dispextern.h lisp.h and 1324 other files + dispextern.h lisp.h and 1327 other files Eliza Velasquez: changed server.el @@ -1917,7 +1919,7 @@ Filipp Gunbin: changed ldap.el compilation.txt progmodes/compile.el eudc.texi and 19 other files F. Jason Park: changed erc.el erc-backend.el erc-tests.el foonet.eld - erc.texi erc-networks.el erc-compat.el erc-dcc.el erc-sasl.el + erc.texi erc-networks.el erc-dcc.el erc-compat.el erc-sasl.el barnet.eld erc-scenarios-misc.el erc-services.el erc-common.el erc-networks-tests.el erc-scenarios-base-reconnect.el erc-scenarios-common.el socks-tests.el auth-source-pass-tests.el @@ -2026,7 +2028,7 @@ Gabriel Do Nascimento Ribeiro: changed remember.el mb-depth.el repeat.el tab-bar.el tab-line.el bookmark.el cmuscheme.el comint.el dired-tests.el dired.el esh-mode.el etags.el faces.el gnus-sum.el goto-addr.el hl-line.el ibuf-ext.el idlwave.el inf-lisp.el mh-gnus.el - mh-letter.el and 16 other files + mh-letter.el and 17 other files Gaby Launay: changed auth-source-pass.el @@ -2171,8 +2173,8 @@ Gregory Chernov: changed nnslashdot.el Gregory Heytings: changed xdisp.c editfns.c keyboard.c buffer.c subr.el dispextern.h lisp.h buffer.h display.texi efaq.texi files.el isearch.el - minibuffer.el Makefile.in bytecode.c bytecomp.el composite.c emake - positions.texi help-fns.el mailcap.el and 76 other files + minibuffer.el Makefile.in bytecode.c composite.c positions.texi + bytecomp.el emake help-fns.el lread.c and 78 other files Grégory Mounié: changed display.texi hi-lock.el man.el xfns.c @@ -2810,7 +2812,7 @@ João Távora: wrote eglot-tests.el eglot.el elec-pair.el electric-tests.el flymake-cc.el jsonrpc-tests.el jsonrpc.el message-tests.el shorthands.el and changed flymake.el icomplete.el README.md eldoc.el minibuffer.el - flymake-proc.el elisp-mode.el flymake.texi EGLOT-NEWS flymake-tests.el + flymake-proc.el EGLOT-NEWS elisp-mode.el flymake.texi flymake-tests.el eglot.texi flymake-elisp.el electric.el elisp-mode-tests.el lread.c Makefile flymake-ui.el progmodes/python.el text.texi xref.el json-tests.el and 64 other files @@ -3038,6 +3040,8 @@ and changed xterm.c xfns.c keyboard.c screen.c dispnew.c xdisp.c window.c Joseph M. Kelsey: changed fileio.c skeleton.el +Joseph Turner: changed package-vc.el + Josh Elsasser: changed eglot.el README.md configure.ac Josh Feinstein: changed erc-join.el erc.el @@ -3053,7 +3057,7 @@ Joshua Datko: changed fortune.el Joshua Varner: changed intro.texi Jostein Kjønigsen: changed csharp-mode.el typescript-ts-mode.el js.el - progmodes/compile.el eglot.el json-ts-mode.el nxml-mode.el treesit.el + eglot.el progmodes/compile.el json-ts-mode.el nxml-mode.el treesit.el Jouni K. Seppänen: changed gnus.texi nnimap.el mm-url.el @@ -4004,7 +4008,7 @@ and changed tramp.texi tramp-adb.el trampver.el trampver.texi dbusbind.c files.el ange-ftp.el files.texi file-notify-tests.el dbus.texi gitlab-ci.yml autorevert.el tramp-fish.el kqueue.c os.texi Dockerfile.emba tramp-gw.el test/Makefile.in README shell.el - tramp-imap.el and 307 other files + tramp-imap.el and 308 other files Michael Ben-Gershon: changed acorn.h configure.ac riscix1-1.h riscix1-2.h unexec.c @@ -4242,7 +4246,7 @@ Miyashita Hisashi: changed ccl.c coding.c coding.h mule-cmds.el Miyoshi Masanori: changed mouse.el smtpmail.el xdisp.c Mohsen Banan: wrote persian.el -and changed loadup.el +and changed TUTORIAL.fa loadup.el misc-lang.el Mohsin Kaleem: changed eglot.el @@ -4267,11 +4271,11 @@ Muchenxuan Tong: changed org-agenda.el org-mobile.el org-timer.el Murata Shuuichirou: changed coding.c -M Visuwesh: changed dired-aux.el ind-util.el quail/indian.el delsel.el - eww.el find-dired.el image.el mailcap.el mouse.el arc-mode.el comint.el - doc-view.el emacsbug.el gnus-group.el gnus-srvr.el gnus-sum.el gnus.el - help-fns.el image-crop.el language/indian.el mark.texi - and 9 other files +M Visuwesh: changed dired-aux.el image.el ind-util.el quail/indian.el + delsel.el eww.el find-dired.el mailcap.el mouse.el arc-mode.el + comint.el doc-view.el emacsbug.el gnus-group.el gnus-srvr.el + gnus-sum.el gnus.el help-fns.el image-crop.el language/indian.el + mark.texi and 9 other files Myles English: changed org-clock.el @@ -4340,7 +4344,7 @@ Nicholas Maniscalco: changed term.el Nicholas Strauss: changed lunar.el -Nicholas Vollmer: changed emacs.1.in +Nicholas Vollmer: changed emacs.1.in easy-mmode.el Nick Alcock: changed control.texi customize.texi display.texi files.el frames.texi gnus.el keymaps.texi modes.texi nonascii.texi syntax.texi @@ -4390,7 +4394,7 @@ and changed org-list.el org.el ox-html.el org-footnote.el ox-texinfo.el Nicolas Graner: changed eww.el message.el -Nicolas Martyanoff: changed em-cmpl.el lisp-mode.el +Nicolas Martyanoff: changed em-cmpl.el lisp-mode.el sql.el Nicolas Petton: wrote map-tests.el map.el seq-tests.el seq.el thunk-tests.el thunk.el url-handlers-tests.el @@ -4761,9 +4765,9 @@ and changed org-irc.el Philip Kaludercic: wrote epa-ks.el package-vc.el and changed rcirc.el package.el rcirc.texi vc-git.el vc.el package.texi - project.el message.el simple.el subr.el vc-hg.el .dir-locals.el - custom.el gravatar.el outline.el vc-svn.el vc/vc-bzr.el windmove.el - window.el bytecomp.el custom.texi and 65 other files + project.el message.el loaddefs-gen.el simple.el subr.el vc-hg.el + .dir-locals.el custom.el gravatar.el outline.el vc-svn.el vc/vc-bzr.el + windmove.el window.el bytecomp.el and 65 other files Philipp Edelmann: changed eglot.el @@ -4853,7 +4857,7 @@ Po Lu: changed xterm.c haikuterm.c haiku_support.cc xfns.c xterm.h xwidget.c haiku_support.h haikufns.c nsterm.m pgtkterm.c pixel-scroll.el gtkutil.c haiku-win.el x-dnd.el frames.texi haikuselect.c xselect.c xwidget.el keyboard.c haikuterm.h xmenu.c - and 199 other files + and 200 other files Pontus Michael: changed simple.el @@ -4933,7 +4937,7 @@ Randall Smith: changed dired.el Randal Schwartz: wrote pp.el Randy Taylor: changed build.sh eglot.el batch.sh rust-ts-mode.el - dockerfile-ts-mode.el c-ts-mode.el go-ts-mode.el cmake-ts-mode.el + dockerfile-ts-mode.el go-ts-mode.el c-ts-mode.el cmake-ts-mode.el cus-theme.el font-lock.el java-ts-mode.el js.el json-ts-mode.el modes.texi progmodes/python.el project.el sh-script.el typescript-ts-mode.el yaml-ts-mode.el @@ -5083,7 +5087,7 @@ and changed configure.ac process.c blocks.awk keymap.el font.c network-stream-tests.el processes.texi custom.texi ftfont.c gtkutil.c process-tests.el vc-git.el emoji-zwj.awk terminal.c unicode char-fold.el gnutls.el keymaps.texi network-stream.el nsm.el nsterm.m - and 187 other files + and 188 other files Robert Thorpe: changed cus-start.el indent.el rmail.texi @@ -5163,6 +5167,8 @@ and changed files.el scheme.el Rudolf Schlatte: changed README.md eglot.el +Ruijie Yu: changed TUTORIAL.cn + Rui-Tao Dong: changed nnweb.el Rune Kleveland: changed xfns.c @@ -5478,7 +5484,8 @@ Skip Collins: changed w32fns.c w32term.c w32term.h Sławomir Nowaczyk: changed emacs.py progmodes/python.el TUTORIAL.pl flyspell.el ls-lisp.el w32proc.c -Spencer Baugh: changed data-tests.el alloc.c autorevert.el +Spencer Baugh: changed data-tests.el alloc.c autorevert.el mini.texi + minibuffer.el processes.texi Spencer Thomas: changed dabbrev.el emacsclient.c gnus.texi server.el unexcoff.c @@ -5521,7 +5528,7 @@ Stefan Monnier: wrote bibtex-style.el bytecomp-tests.el smie.el subword-tests.el vc-mtn.el and co-wrote font-lock.el gitmerge.el pcvs.el and changed subr.el simple.el keyboard.c bytecomp.el cl-macs.el files.el - lisp.h vc.el xdisp.c eval.c alloc.c buffer.c sh-script.el + lisp.h vc.el xdisp.c alloc.c eval.c buffer.c sh-script.el progmodes/compile.el tex-mode.el keymap.c window.c help-fns.el lread.c lisp-mode.el newcomment.el and 1660 other files @@ -5769,7 +5776,7 @@ Thamer Mahmoud: changed arabic.el Theodore Jump: changed makefile.nt makefile.def w32-win.el w32faces.c Theodor Thornhill: changed typescript-ts-mode.el java-ts-mode.el - c-ts-mode.el eglot.el js.el css-mode.el project.el csharp-mode.el + c-ts-mode.el eglot.el js.el csharp-mode.el css-mode.el project.el json-ts-mode.el treesit.el c-ts-common.el eglot-tests.el EGLOT-NEWS README.md c-ts-mode-tests.el compile-tests.el indent-bsd.erts indent.erts maintaining.texi mwheel.el ruby-ts-mode.el From c665ca79ff47f7c2c0b0625069f4caa69162f1db Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sun, 14 May 2023 16:11:44 +0300 Subject: [PATCH 10/24] ; * admin/make-tarball.txt: Minor copyedits. --- admin/make-tarball.txt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/admin/make-tarball.txt b/admin/make-tarball.txt index 00516a0edd7..1cc97c883af 100644 --- a/admin/make-tarball.txt +++ b/admin/make-tarball.txt @@ -75,9 +75,10 @@ General steps (for each step, check for possible errors): For the first pretest of a new major release, consider starting a new top-level ChangeLog.N file if the last versioned ChangeLog.N file is too large. A good point to start a new ChangeLog.N file - is when the last one gets larger than 1.5 MiB. If so, start a new - one by bumping N, and also update the line in top-level - Makefile.in which says + is when the last one gets larger than 5 MiB, or when you make the + first pretest of a new major release, whichever happens later. If + so, start a new ChangeLog.N file by bumping N, and also update the + line in top-level Makefile.in which says CHANGELOG_HISTORY_INDEX_MAX = N From 95a724abaaca40e3fbad69593cb9fab39a249742 Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Sun, 14 May 2023 21:04:37 -0400 Subject: [PATCH 11/24] Update to Org 9.6.6 --- etc/refcards/orgcard.tex | 2 +- lisp/org/org-clock.el | 103 ++++++++++++++++++++------------------- lisp/org/org-version.el | 4 +- lisp/org/org.el | 2 +- 4 files changed, 56 insertions(+), 55 deletions(-) diff --git a/etc/refcards/orgcard.tex b/etc/refcards/orgcard.tex index 6ee77758e06..07463ee6a33 100644 --- a/etc/refcards/orgcard.tex +++ b/etc/refcards/orgcard.tex @@ -1,5 +1,5 @@ % Reference Card for Org Mode -\def\orgversionnumber{9.6.5} +\def\orgversionnumber{9.6.6} \def\versionyear{2023} % latest update \input emacsver.tex diff --git a/lisp/org/org-clock.el b/lisp/org/org-clock.el index f9daf3f14d8..d7fe14cd5e1 100644 --- a/lisp/org/org-clock.el +++ b/lisp/org/org-clock.el @@ -3062,57 +3062,58 @@ PROPERTIES: The list properties specified in the `:properties' parameter Otherwise, return nil." (interactive) (let ((origin (point))) ;; `save-excursion' may not work when deleting. - (save-excursion - (beginning-of-line 1) - (skip-chars-forward " \t") - (when (looking-at org-clock-string) - (let ((re (concat "[ \t]*" org-clock-string - " *[[<]\\([^]>]+\\)[]>]\\(-+[[<]\\([^]>]+\\)[]>]" - "\\([ \t]*=>.*\\)?\\)?")) - ts te h m s neg) - (cond - ((not (looking-at re)) - nil) - ((not (match-end 2)) - (when (and (equal (marker-buffer org-clock-marker) (current-buffer)) - (> org-clock-marker (point)) - (<= org-clock-marker (line-end-position))) - ;; The clock is running here - (setq org-clock-start-time - (org-time-string-to-time (match-string 1))) - (org-clock-update-mode-line))) - (t - ;; Prevent recursive call from `org-timestamp-change'. - (cl-letf (((symbol-function 'org-clock-update-time-maybe) #'ignore)) - ;; Update timestamps. - (save-excursion - (goto-char (match-beginning 1)) ; opening timestamp - (save-match-data (org-timestamp-change 0 'day))) - ;; Refresh match data. - (looking-at re) - (save-excursion - (goto-char (match-beginning 3)) ; closing timestamp - (save-match-data (org-timestamp-change 0 'day)))) - ;; Refresh match data. - (looking-at re) - (and (match-end 4) (delete-region (match-beginning 4) (match-end 4))) - (end-of-line 1) - (setq ts (match-string 1) - te (match-string 3)) - (setq s (- (org-time-string-to-seconds te) - (org-time-string-to-seconds ts)) - neg (< s 0) - s (abs s) - h (floor (/ s 3600)) - s (- s (* 3600 h)) - m (floor (/ s 60)) - s (- s (* 60 s))) - (insert " => " (format (if neg "-%d:%02d" "%2d:%02d") h m)) - t))))) - ;; Move back to initial position, but never beyond updated - ;; clock. - (unless (< (point) origin) - (goto-char origin)))) + (prog1 + (save-excursion + (beginning-of-line 1) + (skip-chars-forward " \t") + (when (looking-at org-clock-string) + (let ((re (concat "[ \t]*" org-clock-string + " *[[<]\\([^]>]+\\)[]>]\\(-+[[<]\\([^]>]+\\)[]>]" + "\\([ \t]*=>.*\\)?\\)?")) + ts te h m s neg) + (cond + ((not (looking-at re)) + nil) + ((not (match-end 2)) + (when (and (equal (marker-buffer org-clock-marker) (current-buffer)) + (> org-clock-marker (point)) + (<= org-clock-marker (line-end-position))) + ;; The clock is running here + (setq org-clock-start-time + (org-time-string-to-time (match-string 1))) + (org-clock-update-mode-line))) + (t + ;; Prevent recursive call from `org-timestamp-change'. + (cl-letf (((symbol-function 'org-clock-update-time-maybe) #'ignore)) + ;; Update timestamps. + (save-excursion + (goto-char (match-beginning 1)) ; opening timestamp + (save-match-data (org-timestamp-change 0 'day))) + ;; Refresh match data. + (looking-at re) + (save-excursion + (goto-char (match-beginning 3)) ; closing timestamp + (save-match-data (org-timestamp-change 0 'day)))) + ;; Refresh match data. + (looking-at re) + (and (match-end 4) (delete-region (match-beginning 4) (match-end 4))) + (end-of-line 1) + (setq ts (match-string 1) + te (match-string 3)) + (setq s (- (org-time-string-to-seconds te) + (org-time-string-to-seconds ts)) + neg (< s 0) + s (abs s) + h (floor (/ s 3600)) + s (- s (* 3600 h)) + m (floor (/ s 60)) + s (- s (* 60 s))) + (insert " => " (format (if neg "-%d:%02d" "%2d:%02d") h m)) + t))))) + ;; Move back to initial position, but never beyond updated + ;; clock. + (unless (< (point) origin) + (goto-char origin))))) (defun org-clock-save () "Persist various clock-related data to disk. diff --git a/lisp/org/org-version.el b/lisp/org/org-version.el index ef61dc9cbd6..8d93af2c20d 100644 --- a/lisp/org/org-version.el +++ b/lisp/org/org-version.el @@ -5,13 +5,13 @@ (defun org-release () "The release version of Org. Inserted by installing Org mode or when a release is made." - (let ((org-release "9.6.5")) + (let ((org-release "9.6.6")) org-release)) ;;;###autoload (defun org-git-version () "The Git version of Org mode. Inserted by installing Org or when a release is made." - (let ((org-git-version "release_9.6.5-3-g2993f4")) + (let ((org-git-version "release_9.6.6")) org-git-version)) (provide 'org-version) diff --git a/lisp/org/org.el b/lisp/org/org.el index f4aa28cc486..d3e14fecec3 100644 --- a/lisp/org/org.el +++ b/lisp/org/org.el @@ -9,7 +9,7 @@ ;; URL: https://orgmode.org ;; Package-Requires: ((emacs "26.1")) -;; Version: 9.6.5 +;; Version: 9.6.6 ;; This file is part of GNU Emacs. ;; From 33485fe8f74af0df458453c89afe4846ccd8e7e5 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Mon, 15 May 2023 18:39:49 +0300 Subject: [PATCH 12/24] ; Better warning message when loading tree-sitter fails * lisp/treesit.el (treesit-ready-p): Improve diagnostics on MS-Windows when the tree-sitter library cannot be loaded at run time. --- lisp/treesit.el | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lisp/treesit.el b/lisp/treesit.el index 147b052d287..d7502560fea 100644 --- a/lisp/treesit.el +++ b/lisp/treesit.el @@ -2300,7 +2300,10 @@ instead of emitting a warning." ;; Check for each condition and set MSG. (catch 'term (when (not (treesit-available-p)) - (setq msg "tree-sitter library is not compiled with Emacs") + (setq msg (if (fboundp 'treesit-node-p) + ;; Windows loads tree-sitter dynakically. + "tree-sitter library is not available or failed to load" + "Emacs is not compiled with tree-sitter library")) (throw 'term nil)) (when (> (position-bytes (max (point-min) (1- (point-max)))) treesit-max-buffer-size) From c18f9f155f6a7522bb4052a6b227b8a06ce38764 Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Mon, 15 May 2023 20:32:04 +0300 Subject: [PATCH 13/24] * lisp/tab-bar.el (tab-bar-new-tab-to): Set 'window-side' to nil (bug#62427). This is still needed for the case when tab-bar-new-tab-choice is 'window'. --- lisp/tab-bar.el | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lisp/tab-bar.el b/lisp/tab-bar.el index c7983146bf9..ab428b81631 100644 --- a/lisp/tab-bar.el +++ b/lisp/tab-bar.el @@ -1563,7 +1563,9 @@ After the tab is created, the hooks in (delete-other-windows) (if (eq tab-bar-new-tab-choice 'window) ;; Create new unique window from remaining window - (window-state-put (window-state-get)) + (progn + (set-window-parameter nil 'window-side nil) + (window-state-put (window-state-get))) ;; Create a new window to get rid of old window parameters ;; (e.g. prev/next buffers) of old window. (split-window) (delete-window)))) From b5bfd808c6b40f47fdef8eb9986bc3127ca63c12 Mon Sep 17 00:00:00 2001 From: Philip Kaludercic Date: Sun, 14 May 2023 21:22:59 +0200 Subject: [PATCH 14/24] Avoid duplicate VC packages in 'package-selected-packages' * lisp/emacs-lisp/package-vc.el (package-vc--unpack-1): Check if 'package-selected-packages' already contains the package name. (bug#63338) --- lisp/emacs-lisp/package-vc.el | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lisp/emacs-lisp/package-vc.el b/lisp/emacs-lisp/package-vc.el index 1fcc30595da..17e93c430c9 100644 --- a/lisp/emacs-lisp/package-vc.el +++ b/lisp/emacs-lisp/package-vc.el @@ -506,9 +506,11 @@ documentation and marking the package as installed." (package--reload-previously-loaded new-desc))) ;; Mark package as selected - (package--save-selected-packages - (cons (package-desc-name pkg-desc) - package-selected-packages)) + (let ((name (package-desc-name pkg-desc))) + (unless (memq name package-selected-packages) + (package--save-selected-packages + (cons name package-selected-packages)))) + (package--quickstart-maybe-refresh) ;; Confirm that the installation was successful From 1e57b2b4c79ada7592c0a7e3f700e7c30dd76a4b Mon Sep 17 00:00:00 2001 From: Andrea Corallo Date: Wed, 10 May 2023 13:50:51 +0200 Subject: [PATCH 15/24] * Account for `byte-compile-warnings' during native compilation (bug#63302). * lisp/emacs-lisp/comp.el (comp-final, comp-run-async-workers): Forward `byte-compile-warnings' to child processes. --- lisp/emacs-lisp/comp.el | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el index e97832455b9..8f40f2f40a0 100644 --- a/lisp/emacs-lisp/comp.el +++ b/lisp/emacs-lisp/comp.el @@ -3724,6 +3724,7 @@ Prepare every function for final compilation and drive the C back-end." ',native-comp-compiler-options native-comp-driver-options ',native-comp-driver-options + byte-compile-warnings ',byte-compile-warnings load-path ',load-path) ,native-comp-async-env-modifier-form (message "Compiling %s..." ',output) @@ -3996,6 +3997,7 @@ display a message." native-comp-driver-options load-path backtrace-line-length + byte-compile-warnings ;; package-load-list ;; package-user-dir ;; package-directory-list From d879847cd4daaeef792384475dd31a3dcfc14184 Mon Sep 17 00:00:00 2001 From: "Basil L. Contovounesios" Date: Wed, 17 May 2023 13:48:09 +0100 Subject: [PATCH 16/24] Fix M-x completion-predicate under python-ts-mode * lisp/progmodes/python.el (python--completion-predicate) (python-shell--completion-predicate): Filter M-x completion based on python-base-mode instead of python-mode. This allows for python-ts-mode as well (bug#63552). --- lisp/progmodes/python.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index bbabce80b4d..f810f1e2164 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -4967,7 +4967,7 @@ the if condition." (defun python--completion-predicate (_ buffer) (provided-mode-derived-p (buffer-local-value 'major-mode buffer) - 'python-mode)) + 'python-base-mode)) (defmacro python-skeleton-define (name doc &rest skel) "Define a `python-mode' skeleton using NAME DOC and SKEL. @@ -6791,7 +6791,7 @@ implementations: `python-mode' and `python-ts-mode'." (defun python-shell--completion-predicate (_ buffer) (provided-mode-derived-p (buffer-local-value 'major-mode buffer) - 'python-mode 'inferior-python-mode)) + 'python-base-mode 'inferior-python-mode)) ;; Commands that only make sense in the Python shell or when editing ;; Python code. From 5df9d2311bf225d75e8a130203eb2203520ed1ae Mon Sep 17 00:00:00 2001 From: "F. Jason Park" Date: Wed, 17 May 2023 05:27:13 -0700 Subject: [PATCH 17/24] ; * lisp/erc/erc.el (erc-accidental-paste-threshold-seconds): Doc fix. --- lisp/erc/erc.el | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el index a104d7ad542..495e25212ce 100644 --- a/lisp/erc/erc.el +++ b/lisp/erc/erc.el @@ -6157,26 +6157,28 @@ If that function has never been called, the value is 0.") "Minimum time, in seconds, before sending new lines via IRC. If the value is a number, `erc-send-current-line' signals an error if its previous invocation was fewer than this many seconds ago. -This is useful so that if you accidentally enter large amounts of text -into the ERC buffer, that text is not sent to the IRC server. - -This option only concerns the rapid submission of successive -lines of prompt input from an \"external\" source, such as GNU -screen or a desktop-automation script. For example, typing - - \\[kmacro-start-macro-or-insert-counter] \ -one \\`RET' two \\`RET' three \\`RET' - \\[kmacro-end-or-call-macro] in the \"*scratch*\" buffer, \ -followed by a - \\[kmacro-end-or-call-macro] again in a channel buffer, - -will send \"one\" to the server, leave \"two\" at the prompt, and -insert \"three\" in an \"overflow\" buffer. For suppression -involving input yanked from the clipboard or the kill ring, see -`erc-inhibit-multiline-input' and `erc-warn-about-blank-lines'. - If the value is nil, `erc-send-current-line' always considers any -submitted line to be intentional." +submitted line to be intentional. + +This option mainly prevents text accidentally entered into Emacs +from being sent to the server. Offending sources include +terminal multiplexers, desktop-automation scripts, and anything +capable of rapidly submitting successive lines of prompt input. +For example, entering \"one\\ntwo\\nthree\\n\" will send \"one\" +to the server, leave \"two\" at the prompt, and insert \"three\" +into an \"overflow\" buffer. See `erc-inhibit-multiline-input' +and `erc-warn-about-blank-lines' for suppression involving input +yanked from the clipboard or the kill ring, which is a related +but separate concern. + +Users of terminal multiplexers, in particular, should look into +support for \"bracketed pasting\", provided on the Emacs side by +libraries like `xterm' (and usually enabled by default). When +everything's working smoothly, Emacs transparently arranges for +pasted text to appear on the kill ring, regardless of any +read-only warnings you may encounter. And when point is in the +prompt area, ERC automatically yanks that text for previewing but +holds off on submitting it, for obvious reasons." :group 'erc :version "26.1" :type '(choice number (other :tag "disabled" nil))) From af3b0dc53ff6a5ddc891873a689a4ba0fb8872c3 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Thu, 18 May 2023 09:41:59 +0300 Subject: [PATCH 18/24] Improve documentation of package-menu commands * doc/emacs/package.texi (Package Menu): Document that some package-menu filters accept lists of values interactively. * lisp/emacs-lisp/package.el (package-menu-execute) (package-menu-hide-package, package-menu-describe-package) (package-menu-mark-delete, package-menu-mark-install) (package-menu-mark-unmark, package-menu-backup-unmark) (package-menu-quick-help, package-menu-get-status) (package-menu--find-upgrades, package-menu-mark-upgrades) (package-menu-filter-by-archive) (package-menu-filter-by-description) (package-menu-filter-by-keyword) (package-menu-filter-by-name-or-description) (package-menu-filter-by-name, package-menu-filter-by-status) (package-menu-filter-by-version, package-menu-filter-marked) (package-menu-describe-package): Doc fixes. --- doc/emacs/package.texi | 19 ++++--- lisp/emacs-lisp/package.el | 110 ++++++++++++++++++++----------------- 2 files changed, 71 insertions(+), 58 deletions(-) diff --git a/doc/emacs/package.texi b/doc/emacs/package.texi index 6722185cb20..0be60b2b70b 100644 --- a/doc/emacs/package.texi +++ b/doc/emacs/package.texi @@ -207,7 +207,8 @@ from lower-priority archives (@code{package-menu-toggle-hiding}). @findex package-menu-filter-by-archive Filter package list by archive (@code{package-menu-filter-by-archive}). This prompts for a package archive (e.g., @samp{gnu}), then shows only -packages from that archive. +packages from that archive. You can specify several archives by +typing their names separated by commas. @item / d @kindex / d @r{(Package Menu)} @@ -222,7 +223,8 @@ matching that regexp. @findex package-menu-filter-by-keyword Filter package list by keyword (@code{package-menu-filter-by-keyword}). This prompts for a keyword (e.g., @samp{games}), then shows only -packages with that keyword. +packages with that keyword. You can specify several keywords by +typing them separated by commas. @item / N @kindex / N @r{(Package Menu)} @@ -243,16 +245,19 @@ with names matching that regexp. @kindex / s @r{(Package Menu)} @findex package-menu-filter-by-status Filter package list by status (@code{package-menu-filter-by-status}). -This prompts for one or more statuses (e.g., @samp{available}), then -shows only packages with matching status. +This prompts for one or more statuses (e.g., @samp{available}, +@pxref{Package Statuses}), then shows only packages with matching +status. You can specify several status values by typing them +separated by commas. @item / v @kindex / v @r{(Package Menu)} @findex package-menu-filter-by-version Filter package list by version (@code{package-menu-filter-by-version}). -This prompts first for one of the qualifiers @samp{<}, @samp{>} or -@samp{=}, and then a package version, and shows packages that has a -lower, equal or higher version than the one specified. +This prompts first for one of the comparison symbols @samp{<}, +@samp{>} or @samp{=} and for a version string, and then shows packages +whose versions are correspondingly lower, equal or higher than the +version you typed. @item / m @kindex / m @r{(Package Menu)} diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index c684840ab7e..293c1c39ca1 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -3588,7 +3588,8 @@ The regexp is added to the list in the user option `package-hidden-regexps' and saved for future sessions. To unhide a package, type -`\\[customize-variable] RET package-hidden-regexps'. +`\\[customize-variable] RET package-hidden-regexps', and then modify +the regexp such that it no longer matches the package's name. Type \\[package-menu-toggle-hiding] to toggle package hiding." (declare (interactive-only "change `package-hidden-regexps' instead.")) @@ -3615,7 +3616,9 @@ Type \\[package-menu-toggle-hiding] to toggle package hiding." (defun package-menu-describe-package (&optional button) "Describe the current package. -If optional arg BUTTON is non-nil, describe its associated package." +The current package is the package at point. +If optional arg BUTTON is non-nil, describe its associated +package(s); this is always nil in interactive invocations." (interactive nil package-menu-mode) (let ((pkg-desc (if button (button-get button 'package-desc) (tabulated-list-get-id)))) @@ -3625,7 +3628,8 @@ If optional arg BUTTON is non-nil, describe its associated package." ;; fixme numeric argument (defun package-menu-mark-delete (&optional _num) - "Mark a package for deletion and move to the next line." + "Mark the current package for deletion and move to the next line. +The current package is the package at point." (interactive "p" package-menu-mode) (package--ensure-package-menu-mode) (if (member (package-menu-get-status) @@ -3634,7 +3638,8 @@ If optional arg BUTTON is non-nil, describe its associated package." (forward-line))) (defun package-menu-mark-install (&optional _num) - "Mark a package for installation and move to the next line." + "Mark the current package for installation and move to the next line. +The current package is the package at point." (interactive "p" package-menu-mode) (package--ensure-package-menu-mode) (if (member (package-menu-get-status) '("available" "avail-obso" "new" "dependency")) @@ -3642,13 +3647,14 @@ If optional arg BUTTON is non-nil, describe its associated package." (forward-line))) (defun package-menu-mark-unmark (&optional _num) - "Clear any marks on a package and move to the next line." + "Clear any marks on the current package and move to the next line. +The current package is the package at point." (interactive "p" package-menu-mode) (package--ensure-package-menu-mode) (tabulated-list-put-tag " " t)) (defun package-menu-backup-unmark () - "Back up one line and clear any marks on that package." + "Back up one line and clear any marks on that line's package." (interactive nil package-menu-mode) (package--ensure-package-menu-mode) (forward-line -1) @@ -3686,15 +3692,15 @@ If optional arg BUTTON is non-nil, describe its associated package." (package--prettify-quick-help-key (cons desc 0)))) (defun package-menu-quick-help () - "Show short key binding help for `package-menu-mode'. -The full list of keys can be viewed with \\[describe-mode]." + "Show short help for key bindings in `package-menu-mode'. +You can view the full list of keys with \\[describe-mode]." (interactive nil package-menu-mode) (package--ensure-package-menu-mode) (message (mapconcat #'package--prettify-quick-help-key package--quick-help-keys "\n"))) (defun package-menu-get-status () - "Return status text of package at point in Package Menu." + "Return status description of package at point in Package Menu." (package--ensure-package-menu-mode) (let* ((id (tabulated-list-get-id)) (entry (and id (assoc id tabulated-list-entries)))) @@ -3723,8 +3729,8 @@ consideration." (defun package-menu--find-upgrades () "In Package Menu, return an alist of packages that can be upgraded. The alist has the same form as `package-alist', namely a list -of (PKG . DESCS), but where DESCS is the `package-desc' object -corresponding to the newer version." +of elements of the form (PKG . DESCS), but where DESCS is the `package-desc' +object corresponding to the newer version." (let (installed available upgrades) ;; Build list of installed/available packages in this buffer. (dolist (entry tabulated-list-entries) @@ -3775,10 +3781,10 @@ Implementation of `package-menu-mark-upgrades'." (defun package-menu-mark-upgrades () "Mark all upgradable packages in the Package Menu. -For each installed package with a newer version available, place -an (I)nstall flag on the available version and a (D)elete flag on -the installed version. A subsequent \\[package-menu-execute] -call will upgrade the package. +For each installed package for which a newer version is available, +place an (I)nstall flag on the available version and a (D)elete flag +on the installed version. A subsequent \\[package-menu-execute] command will upgrade +the marked packages. If there's an async refresh operation in progress, the flags will be placed as part of `package-menu--post-refresh' instead of @@ -3897,17 +3903,19 @@ packages list, respectively." (package--save-selected-packages package-selected-packages))) (defun package-menu-execute (&optional noquery) - "Perform marked Package Menu actions. + "Perform Package Menu actions on marked packages. Packages marked for installation are downloaded and installed, packages marked for deletion are removed, and packages marked for upgrading are downloaded and upgraded. If no packages are marked, the action taken depends on the state -of the package under point. If it's not already installed, this -command will install the package, and if it's installed, it will -delete the package. +of the current package, the one at point. If it's not already +installed, this command will install the package; if it's installed, +the command will delete the package. -Optional argument NOQUERY non-nil means do not ask the user to confirm." +Optional argument NOQUERY non-nil means do not ask the user to +confirm the installations/deletions; this is always nil in interactive +invocations." (interactive nil package-menu-mode) (package--ensure-package-menu-mode) (let (install-list delete-list cmd pkg-desc) @@ -4158,13 +4166,12 @@ the header line of the first column." (defun package-menu-filter-by-archive (archive) "Filter the \"*Packages*\" buffer by ARCHIVE. Display only packages from package archive ARCHIVE. +ARCHIVE can be the name of a single archive (a string), or +a list of archive names. If ARCHIVE is nil or an empty +string, show all packages. -When called interactively, prompt for ARCHIVE, which can be a -comma-separated string. If ARCHIVE is empty, show all packages. - -When called from Lisp, ARCHIVE can be a string or a list of -strings. If ARCHIVE is nil or the empty string, show all -packages." +When called interactively, prompt for ARCHIVE. To specify +several archives, type their names separated by commas." (interactive (list (completing-read-multiple "Filter by archive (comma separated): " (mapcar #'car package-archives))) @@ -4180,9 +4187,9 @@ packages." (concat "archive:" (string-join archives ","))))) (defun package-menu-filter-by-description (description) - "Filter the \"*Packages*\" buffer by DESCRIPTION regexp. -Display only packages with a description that matches regexp -DESCRIPTION. + "Filter the \"*Packages*\" buffer by the regexp DESCRIPTION. +Display only packages whose description matches the regexp +given as DESCRIPTION. When called interactively, prompt for DESCRIPTION. @@ -4199,14 +4206,16 @@ If DESCRIPTION is nil or the empty string, show all packages." (defun package-menu-filter-by-keyword (keyword) "Filter the \"*Packages*\" buffer by KEYWORD. -Display only packages with specified KEYWORD. +Display only packages whose keywords match the specified KEYWORD. +KEYWORD can be a string or a list of strings. If KEYWORD is nil +or the empty string, show all packages. -When called interactively, prompt for KEYWORD, which can be a -comma-separated string. If KEYWORD is empty, show all packages. +In addition to package keywords, KEYWORD can include the name(s) +of archive(s) and the package status, such as \"available\" +or \"built-in\" or \"obsolete\". -When called from Lisp, KEYWORD can be a string or a list of -strings. If KEYWORD is nil or the empty string, show all -packages." +When called interactively, prompt for KEYWORD. To specify several +keywords, type them separated by commas." (interactive (list (completing-read-multiple "Keywords (comma separated): " (package-all-keywords))) @@ -4224,8 +4233,8 @@ packages." 'package-menu-filter #'package-menu-filter-by-keyword "27.1") (defun package-menu-filter-by-name-or-description (name-or-description) - "Filter the \"*Packages*\" buffer by NAME-OR-DESCRIPTION regexp. -Display only packages with a name-or-description that matches regexp + "Filter the \"*Packages*\" buffer by the regexp NAME-OR-DESCRIPTION. +Display only packages whose name or description matches the regexp NAME-OR-DESCRIPTION. When called interactively, prompt for NAME-OR-DESCRIPTION. @@ -4246,8 +4255,8 @@ packages." (format "name-or-desc:%s" name-or-description)))) (defun package-menu-filter-by-name (name) - "Filter the \"*Packages*\" buffer by NAME regexp. -Display only packages with name that matches regexp NAME. + "Filter the \"*Packages*\" buffer by the regexp NAME. +Display only packages whose name matches the regexp NAME. When called interactively, prompt for NAME. @@ -4265,13 +4274,11 @@ If NAME is nil or the empty string, show all packages." (defun package-menu-filter-by-status (status) "Filter the \"*Packages*\" buffer by STATUS. Display only packages with specified STATUS. +STATUS can be a single status, a string, or a list of strings. +If STATUS is nil or the empty string, show all packages. -When called interactively, prompt for STATUS, which can be a -comma-separated string. If STATUS is empty, show all packages. - -When called from Lisp, STATUS can be a string or a list of -strings. If STATUS is nil or the empty string, show all -packages." +When called interactively, prompt for STATUS. To specify +several possible status values, type them seperated by commas." (interactive (list (completing-read "Filter by status: " '("avail-obso" "available" @@ -4300,12 +4307,12 @@ packages." (defun package-menu-filter-by-version (version predicate) "Filter the \"*Packages*\" buffer by VERSION and PREDICATE. -Display only packages with a matching version. +Display only packages whose version satisfies the condition +defined by VERSION and PREDICATE. -When called interactively, prompt for one of the qualifiers `<', -`>' or `=', and a package version. Show only packages that has a -lower (`<'), equal (`=') or higher (`>') version than the -specified one. +When called interactively, prompt for one of the comparison operators +`<', `>' or `=', and for a version. Show only packages whose version +is lower (`<'), equal (`=') or higher (`>') than the specified VERSION. When called from Lisp, VERSION should be a version string and PREDICATE should be the symbol `=', `<' or `>'. @@ -4343,7 +4350,8 @@ If VERSION is nil or the empty string, show all packages." (format "versions:%s%s" predicate version))))) (defun package-menu-filter-marked () - "Filter \"*Packages*\" buffer by non-empty upgrade mark. + "Filter \"*Packages*\" buffer by non-empty mark. +Show only the packages that have been marked for installation or deletion. Unlike other filters, this leaves the marks intact." (interactive nil package-menu-mode) (package--ensure-package-menu-mode) From 0b722a74a56d24710cceab33287d1e2040eeb19f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Engdeg=C3=A5rd?= Date: Thu, 18 May 2023 09:49:53 +0200 Subject: [PATCH 19/24] * lisp/erc/erc-fill.el (erc-fill-spaced-commands): Fix typing errors The type (set integer symbol) matches a list of at most one integer and one symbol, not multiple distinct symbols. --- lisp/erc/erc-fill.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lisp/erc/erc-fill.el b/lisp/erc/erc-fill.el index 074e789f719..718e51a058c 100644 --- a/lisp/erc/erc-fill.el +++ b/lisp/erc/erc-fill.el @@ -125,10 +125,10 @@ configured. Its value should be larger than that of the variable :type '(choice (const nil) number)) (defcustom erc-fill-spaced-commands '(PRIVMSG NOTICE) - "Types of mesages to add space between on graphical displays. + "Types of messages to add space between on graphical displays. Only considered when `erc-fill-line-spacing' is non-nil." :package-version '(ERC . "5.6") ; FIXME sync on release - :type '(set integer symbol)) + :type '(repeat (choice integer symbol))) (defvar-local erc-fill--function nil "Internal copy of `erc-fill-function'. From dc1a437d460d5e100563eb7dde3e0fdc0e8e53d9 Mon Sep 17 00:00:00 2001 From: Jens Schmidt Date: Tue, 16 May 2023 23:31:19 +0200 Subject: [PATCH 20/24] Clarify misleading comment in isearch.el Clarify a misleading comment in isearch.el as to whether frame events should exit an isearch or not (Bug#62032, Bug#41338 for background information). * lisp/isearch.el (isearch-mode-map): Replace the misleading comment. (Bug#62032) Copyright-paperwork-exempt: yes --- lisp/isearch.el | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lisp/isearch.el b/lisp/isearch.el index 094e02d605e..3d2bbda4975 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el @@ -633,9 +633,9 @@ This is like `describe-bindings', but displays only Isearch keys." (define-key map "\M-\t" 'isearch-complete) - ;; Pass frame events transparently so they won't exit the search. - ;; In particular, if we have more than one display open, then a - ;; switch-frame might be generated by someone typing at another keyboard. + ;; Frame events should exit the search, because such frame events + ;; as `switch-frame’ and `delete-frame’ change the current buffer. + ;; See Bug#41338 for details. (define-key map [switch-frame] nil) (define-key map [delete-frame] nil) (define-key map [iconify-frame] nil) From 4daa6f70497f90fa2640ab9d10b29ad2ace1991b Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Thu, 18 May 2023 14:03:10 +0300 Subject: [PATCH 21/24] ; * lisp/simple.el (async-shell-command): Add commentary about 3rd arg. --- lisp/simple.el | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lisp/simple.el b/lisp/simple.el index 0138556787b..3f88fcb8d03 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -4454,6 +4454,10 @@ whose `car' is BUFFER." '(nil (inhibit-switch-frame . t))))) (set-window-point win pos))))))))) +;; Implementation note: the next function intentionally tries to use +;; the same signature as 'shell-command', although the 3rd arg is +;; currently ignored, to allow us to implement support for specifying +;; ERROR-BUFFER in the future. (defun async-shell-command (command &optional output-buffer error-buffer) "Execute string COMMAND asynchronously in background. From f8d9e40d2c1d127a125adc097d985a0b6964a86c Mon Sep 17 00:00:00 2001 From: Aaron Jensen Date: Thu, 18 May 2023 14:20:18 +0300 Subject: [PATCH 22/24] Attempt to fix redisplay problems on macOS * src/nsterm.m (ns_scroll_run): Attempt to fix redisplay artifacts. (Bug#63187) --- src/nsterm.m | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/nsterm.m b/src/nsterm.m index c26528e0154..c809c0b824a 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -2704,11 +2704,12 @@ ns_scroll_run (struct window *w, struct run *run) { NSRect srcRect = NSMakeRect (x, from_y, width, height); NSPoint dest = NSMakePoint (x, to_y); + NSRect destRect = NSMakeRect (x, from_y, width, height); EmacsView *view = FRAME_NS_VIEW (f); [view copyRect:srcRect to:dest]; #ifdef NS_IMPL_COCOA - [view setNeedsDisplayInRect:srcRect]; + [view setNeedsDisplayInRect:destRect]; #endif } From d1404d3a11999a41b1147698479e858b1a3b6353 Mon Sep 17 00:00:00 2001 From: "Basil L. Contovounesios" Date: Wed, 17 May 2023 13:53:09 +0100 Subject: [PATCH 23/24] Simplify python.el completion-predicate * lisp/progmodes/python.el: (python-skeleton-define): Use command-modes as a shorthand for completion-predicate (bug#63552). (python--completion-predicate, python-shell--completion-predicate): Remove accordingly; no longer used. (python-define-auxiliary-skeleton): Prefer function-put over put. --- lisp/progmodes/python.el | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 0ddce92b21e..4f57eda3cfc 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -5029,11 +5029,6 @@ the if condition." (not (python-syntax-comment-or-string-p)) python-skeleton-autoinsert))) -(defun python--completion-predicate (_ buffer) - (provided-mode-derived-p - (buffer-local-value 'major-mode buffer) - 'python-base-mode)) - (defmacro python-skeleton-define (name doc &rest skel) "Define a `python-mode' skeleton using NAME DOC and SKEL. The skeleton will be bound to python-skeleton-NAME and will @@ -5042,7 +5037,7 @@ be added to `python-mode-skeleton-abbrev-table'." (let* ((name (symbol-name name)) (function-name (intern (concat "python-skeleton-" name)))) `(progn - (put ',function-name 'completion-predicate #'python--completion-predicate) + (function-put ',function-name 'command-modes '(python-base-mode)) (define-abbrev python-mode-skeleton-abbrev-table ,name "" ',function-name :system t) (setq python-skeleton-available @@ -5069,7 +5064,7 @@ The skeleton will be bound to python-skeleton-NAME." `(< ,(format "%s:" name) \n \n > _ \n))) `(progn - (put ',function-name 'completion-predicate #'ignore) + (function-put ',function-name 'completion-predicate #'ignore) (define-skeleton ,function-name ,(or doc (format "Auxiliary skeleton for %s statement." name)) @@ -6817,7 +6812,7 @@ implementations: `python-mode' and `python-ts-mode'." (add-to-list 'interpreter-mode-alist '("python[0-9.]*" . python-ts-mode)))) ;;; Completion predicates for M-x -;; Commands that only make sense when editing Python code +;; Commands that only make sense when editing Python code. (dolist (sym '(python-add-import python-check python-fill-paragraph @@ -6851,12 +6846,7 @@ implementations: `python-mode' and `python-ts-mode'." python-shell-send-defun python-shell-send-statement python-sort-imports)) - (put sym 'completion-predicate #'python--completion-predicate)) - -(defun python-shell--completion-predicate (_ buffer) - (provided-mode-derived-p - (buffer-local-value 'major-mode buffer) - 'python-base-mode 'inferior-python-mode)) + (function-put sym 'command-modes '(python-base-mode))) ;; Commands that only make sense in the Python shell or when editing ;; Python code. @@ -6871,8 +6861,8 @@ implementations: `python-mode' and `python-ts-mode'." python-shell-font-lock-turn-off python-shell-font-lock-turn-on python-shell-package-enable - python-shell-completion-complete-or-indent )) - (put sym 'completion-predicate #'python-shell--completion-predicate)) + python-shell-completion-complete-or-indent)) + (function-put sym 'command-modes '(python-base-mode inferior-python-mode))) (provide 'python) From 8c9377b6c4e907e65712fbf0ba0cf90f51da5ef6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Engdeg=C3=A5rd?= Date: Thu, 18 May 2023 17:22:41 +0200 Subject: [PATCH 24/24] Try declaring `delq` and `delete` important-return-value (bug#61730) * lisp/emacs-lisp/bytecomp.el (important-return-value-fns): Add (uncomment) `delq` and `delete`. --- lisp/emacs-lisp/bytecomp.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index a192d599d1d..deda4573229 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -3569,7 +3569,7 @@ lambda-expression." ;; Adding these functions causes many warnings; ;; evaluate how many of them are false first. - ;;delq delete + delq delete ;;nconc plist-put ))) (dolist (fn important-return-value-fns)