From 502285e84aaac4b6939d5f4e27351dd0e01498ed Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sun, 18 Aug 2024 07:56:57 +0300 Subject: [PATCH 01/12] ; * admin/make-tarball.txt: Some clarifications. --- admin/make-tarball.txt | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/admin/make-tarball.txt b/admin/make-tarball.txt index 15342319829..1b6d9744ecc 100644 --- a/admin/make-tarball.txt +++ b/admin/make-tarball.txt @@ -95,11 +95,14 @@ General steps (for each step, check for possible errors): CHANGELOG_HISTORY_INDEX_MAX = N by incrementing the value of N by 1; then regenerate Makefile. - After bumping N, you need to actually create and commit - ChangeLog.N with the updated N, otherwise "M-x authors" below will - fail. The easiest way of creating the new ChangeLog.N is to - rename the file ChangeLog (without the .N suffix) left over from - the last major release (it is usually unversioned) and commit it. + After bumping N, you need to actually create and commit ChangeLog.N + with the updated N, otherwise "M-x authors" below will fail. The + easiest way of creating the new ChangeLog.N is to rename the file + ChangeLog (without the .N suffix) left over from the last release + (it is usually unversioned) and commit it, together with the + modified Makefile.in. If you don't have the unversioned ChangeLog + file from the last release, you can take it from the release + tarball. Now: From 4d9d3fec1b93698cc6dc014246fa6d3f5b4bb717 Mon Sep 17 00:00:00 2001 From: Andrea Corallo Date: Sat, 17 Aug 2024 18:42:43 +0200 Subject: [PATCH 02/12] * Makefile.in (CHANGELOG_HISTORY_INDEX_MAX): Bump. --- Makefile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.in b/Makefile.in index 1964fbbf8a9..7a20b0f24d7 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1303,7 +1303,7 @@ emacslog = build-aux/gitlog-to-emacslog # The ChangeLog history files are called ChangeLog.1, ChangeLog.2, ..., # ChangeLog.$(CHANGELOG_HISTORY_INDEX_MAX). $(CHANGELOG_N) stands for # the newest (highest-numbered) ChangeLog history file. -CHANGELOG_HISTORY_INDEX_MAX = 3 +CHANGELOG_HISTORY_INDEX_MAX = 4 CHANGELOG_N = ChangeLog.$(CHANGELOG_HISTORY_INDEX_MAX) # Convert git commit log to ChangeLog file. make-dist uses this. From d8e9eb73c2b5f93adf3ae29d1349ce2161e23cb4 Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Sun, 18 Aug 2024 11:18:04 +0200 Subject: [PATCH 03/12] Bump use-package version for Emacs 30.1 * lisp/use-package/use-package.el: Bump version to 2.4.6. --- lisp/use-package/use-package.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/use-package/use-package.el b/lisp/use-package/use-package.el index fc5c994a5f9..fd2496651df 100644 --- a/lisp/use-package/use-package.el +++ b/lisp/use-package/use-package.el @@ -5,7 +5,7 @@ ;; Author: John Wiegley ;; Maintainer: John Wiegley ;; Created: 17 Jun 2012 -;; Version: 2.4.5 +;; Version: 2.4.6 ;; Package-Requires: ((emacs "24.3") (bind-key "2.4")) ;; Keywords: dotemacs startup speed config package extensions ;; URL: https://github.com/jwiegley/use-package From 55337dc36a20ea3dc805116411cf436551bc3566 Mon Sep 17 00:00:00 2001 From: Michael Albinus Date: Sun, 18 Aug 2024 11:29:05 +0200 Subject: [PATCH 04/12] * test/infra/gitlab-ci.yml (.tree-sitter-template): Adapt changes. --- test/infra/gitlab-ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/infra/gitlab-ci.yml b/test/infra/gitlab-ci.yml index 24bb179af54..e16dcd54a45 100644 --- a/test/infra/gitlab-ci.yml +++ b/test/infra/gitlab-ci.yml @@ -192,10 +192,13 @@ default: - lisp/textmodes/*-ts-mode.el - src/treesit.{h,c} - test/infra/* + - test/lisp/align-resources/** - test/lisp/align-tests.el - test/lisp/progmodes/*-ts-mode-resources/** - test/lisp/progmodes/*-ts-mode-tests.el + - test/lisp/progmodes/csharp-mode-resources/** - test/lisp/progmodes/csharp-mode-tests.el + - test/lisp/progmodes/js-resources/** - test/lisp/progmodes/js-tests.el - test/lisp/progmodes/python-tests.el - test/lisp/textmodes/*-ts-mode-resources/** From acfd91bc0c73c540c76672a86a85b5b551601c06 Mon Sep 17 00:00:00 2001 From: Andrea Corallo Date: Sun, 18 Aug 2024 11:12:08 +0200 Subject: [PATCH 05/12] ; * lisp/emacs-lisp/compat.el: Fix header style. --- lisp/emacs-lisp/compat.el | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/lisp/emacs-lisp/compat.el b/lisp/emacs-lisp/compat.el index f7037dc4101..7f95702286a 100644 --- a/lisp/emacs-lisp/compat.el +++ b/lisp/emacs-lisp/compat.el @@ -2,13 +2,11 @@ ;; Copyright (C) 2021-2024 Free Software Foundation, Inc. -;; Author: \ -;; Philip Kaludercic , \ -;; Daniel Mendler -;; Maintainer: \ -;; Daniel Mendler , \ -;; Compat Development <~pkal/compat-devel@lists.sr.ht>, -;; emacs-devel@gnu.org +;; Author: Philip Kaludercic , +;; Daniel Mendler +;; Maintainers: Daniel Mendler , +;; Compat Development <~pkal/compat-devel@lists.sr.ht>, +;; emacs-devel@gnu.org ;; URL: https://github.com/emacs-compat/compat ;; Keywords: lisp, maint From b54e8b3741bed4d81bd8840c5f6904f605f5f9fa Mon Sep 17 00:00:00 2001 From: Jim Porter Date: Sun, 18 Aug 2024 14:33:43 -0700 Subject: [PATCH 06/12] ; * etc/NEWS: Announce 'shr-fill-text'. --- etc/NEWS | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/etc/NEWS b/etc/NEWS index 90e3a42beb1..a75d1b44b90 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1406,6 +1406,16 @@ manual "(tramp) Improving performance of asynchronous remote processes". When a direct asynchronous process is invoked, it uses 'tramp-remote-path' for setting the remote 'PATH' environment variable. +** SHR + +--- +*** New option 'shr-fill-text'. +When 'shr-fill-text' is non-nil (the default), SHR will fill text +according to the width of the window. If you customize it to nil, SHR +will leave the text as-is; in that case, EWW will automatically enable +'visual-line-mode' when displaying a page so that long lines are +visually wrapped at word boundaries. + ** EWW --- From 023d387a7bd41298a5c294ce163a49ba55b31ef5 Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Sun, 18 Aug 2024 20:54:39 -0400 Subject: [PATCH 07/12] Update to Org 9.7.10 --- etc/refcards/orgcard.tex | 2 +- lisp/org/org-persist.el | 4 +++- lisp/org/org-version.el | 4 ++-- lisp/org/org.el | 2 +- lisp/org/ox-html.el | 2 +- lisp/org/ox.el | 1 + 6 files changed, 9 insertions(+), 6 deletions(-) diff --git a/etc/refcards/orgcard.tex b/etc/refcards/orgcard.tex index b112e957d1d..65e9caa26d2 100644 --- a/etc/refcards/orgcard.tex +++ b/etc/refcards/orgcard.tex @@ -1,5 +1,5 @@ % Reference Card for Org Mode -\def\orgversionnumber{9.7.9} +\def\orgversionnumber{9.7.10} \def\versionyear{2024} % latest update \input emacsver.tex diff --git a/lisp/org/org-persist.el b/lisp/org/org-persist.el index 8b0d9b110f9..7fa836d0d7a 100644 --- a/lisp/org/org-persist.el +++ b/lisp/org/org-persist.el @@ -448,6 +448,8 @@ FORMAT and ARGS are passed to `message'." buffer-or-file (error-message-string err))) nil))))) +;; FIXME: `pp' is very slow when writing even moderately large datasets +;; We should probably drop it or find some fast formatter. (defun org-persist--write-elisp-file (file data &optional no-circular pp) "Write elisp DATA to FILE." ;; Fsync slightly reduces the chance of an incomplete filesystem @@ -898,7 +900,7 @@ Otherwise, return t." (let ((index-file (org-file-name-concat org-persist-directory org-persist-index-file))) (org-persist--merge-index-with-disk) - (org-persist--write-elisp-file index-file org-persist--index t t) + (org-persist--write-elisp-file index-file org-persist--index t) (setq org-persist--index-age (file-attribute-modification-time (file-attributes index-file))) index-file))) diff --git a/lisp/org/org-version.el b/lisp/org/org-version.el index d5a434e805d..989fadf69fa 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.7.9")) + (let ((org-release "9.7.10")) 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.7.9")) + (let ((org-git-version "release_9.7.10")) org-git-version)) (provide 'org-version) diff --git a/lisp/org/org.el b/lisp/org/org.el index 0b3566121d9..26812bbfb29 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.7.9 +;; Version: 9.7.10 ;; This file is part of GNU Emacs. ;; diff --git a/lisp/org/ox-html.el b/lisp/org/ox-html.el index d1687cf5a80..446698758c4 100644 --- a/lisp/org/ox-html.el +++ b/lisp/org/ox-html.el @@ -2351,7 +2351,7 @@ is the language used for CODE, as a string, or nil." ((not (progn (require 'htmlize nil t) (fboundp 'htmlize-region-for-paste))) ;; Emit a warning. - (warn "Cannot fontify source block (htmlize.el >= 1.34 required)") + (warn "Cannot fontify source block (htmlize.el >= 1.34 required). Falling back to plain text. (see `org-html-htmlize-output-type')") (org-html-encode-plain-text code)) (t ;; Map language diff --git a/lisp/org/ox.el b/lisp/org/ox.el index 75839e6c88a..1024bdc4bae 100644 --- a/lisp/org/ox.el +++ b/lisp/org/ox.el @@ -81,6 +81,7 @@ (require 'ol) (require 'org-element) (require 'org-macro) +(require 'org-attach) ; org-attach adds staff to `org-export-before-parsing-functions' (require 'tabulated-list) (declare-function org-src-coderef-format "org-src" (&optional element)) From 8715619d485d9da0f7bb056bf390d2f45d4d806c Mon Sep 17 00:00:00 2001 From: Michael Albinus Date: Mon, 19 Aug 2024 09:37:55 +0200 Subject: [PATCH 08/12] ; * etc/NEWS: Fix wording of last change. --- etc/NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/NEWS b/etc/NEWS index a75d1b44b90..98eca7b8061 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1409,7 +1409,7 @@ for setting the remote 'PATH' environment variable. ** SHR --- -*** New option 'shr-fill-text'. +*** New user option 'shr-fill-text'. When 'shr-fill-text' is non-nil (the default), SHR will fill text according to the width of the window. If you customize it to nil, SHR will leave the text as-is; in that case, EWW will automatically enable From 21be5cadaf1e43cf886f38cb14fa25b96d8b551d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ulrich=20M=C3=BCller?= Date: Mon, 19 Aug 2024 15:49:47 +0200 Subject: [PATCH 09/12] ; * lisp/subr.el (sha1): Fix typo in docstring. --- lisp/subr.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/subr.el b/lisp/subr.el index 31c53a6455b..a8e3df14cd3 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -4482,7 +4482,7 @@ Otherwise, return nil." OBJECT is either a string or a buffer. Optional arguments START and END are character positions specifying which portion of OBJECT for computing the hash. If BINARY is non-nil, return a 40-byte unibyte -string; otherwise returna 40-character string. +string; otherwise return a 40-character string. Note that SHA-1 is not collision resistant and should not be used for anything security-related. See `secure-hash' for From fc7581ae2ee9db1e3189b76c66be9cd13f72f004 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Mon, 19 Aug 2024 17:51:50 +0300 Subject: [PATCH 10/12] ; Fix documentation of secure-hash functions * src/fns.c (Fsecure_hash): * doc/lispref/text.texi (Checksum/Hash): * lisp/subr.el (sha1): Fix documentation wrt to the number of bytes 'secure-hash' and its variants return when BINARY is non-nil. Reported by Pip Cet . --- doc/lispref/text.texi | 14 +++++++------- lisp/subr.el | 2 +- src/fns.c | 4 +++- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi index 196fe89a092..278b53d7f65 100644 --- a/doc/lispref/text.texi +++ b/doc/lispref/text.texi @@ -4992,22 +4992,22 @@ of the returned string depends on @var{algorithm}: @itemize @item -For @code{md5}: 32 characters (32 bytes if @var{binary} is +For @code{md5}: 32 characters (16 bytes if @var{binary} is non-@code{nil}). @item -For @code{sha1}: 40 characters (40 bytes if @var{binary} is +For @code{sha1}: 40 characters (20 bytes if @var{binary} is non-@code{nil}). @item -For @code{sha224}: 56 characters (56 bytes if @var{binary} is +For @code{sha224}: 56 characters (28 bytes if @var{binary} is non-@code{nil}). @item -For @code{sha256}: 64 characters (64 bytes if @var{binary} is +For @code{sha256}: 64 characters (32 bytes if @var{binary} is non-@code{nil}). @item -For @code{sha384}: 96 characters (96 bytes if @var{binary} is +For @code{sha384}: 96 characters (48 bytes if @var{binary} is non-@code{nil}). @item -For @code{sha512}: 128 characters (128 bytes if @var{binary} is +For @code{sha512}: 128 characters (64 bytes if @var{binary} is non-@code{nil}). @end itemize @@ -5062,7 +5062,7 @@ This function is equivalent to calling @code{secure-hash} like this: @end lisp It returns a 40-character string if @var{binary} is @code{nil}, or a -40-byte unibyte string otherwise. +20-byte unibyte string otherwise. @end defun @node Suspicious Text diff --git a/lisp/subr.el b/lisp/subr.el index a8e3df14cd3..28ba30f584e 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -4481,7 +4481,7 @@ Otherwise, return nil." "Return the SHA-1 (Secure Hash Algorithm) of an OBJECT. OBJECT is either a string or a buffer. Optional arguments START and END are character positions specifying which portion of OBJECT for -computing the hash. If BINARY is non-nil, return a 40-byte unibyte +computing the hash. If BINARY is non-nil, return a 20-byte unibyte string; otherwise return a 40-character string. Note that SHA-1 is not collision resistant and should not be used diff --git a/src/fns.c b/src/fns.c index cb3e25811ea..6133c20573a 100644 --- a/src/fns.c +++ b/src/fns.c @@ -6402,7 +6402,9 @@ whole OBJECT. The full list of algorithms can be obtained with `secure-hash-algorithms'. -If BINARY is non-nil, returns a string in binary form. +If BINARY is non-nil, returns a string in binary form. In this case, +the function returns a unibyte string whose length is half the number +of characters it returns when BINARY is nil. Note that MD5 and SHA-1 are not collision resistant and should not be used for anything security-related. For these applications, use one From 45ae4de0e7ce99c88c62f940f605bca693b8e33f Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Tue, 20 Aug 2024 08:09:54 -0400 Subject: [PATCH 11/12] * lisp/help-fns.el (help-definition-prefixes): Don't delete the hashtable Fixes bug#72511. --- lisp/help-fns.el | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lisp/help-fns.el b/lisp/help-fns.el index 1ffe1b16588..c03593bcb69 100644 --- a/lisp/help-fns.el +++ b/lisp/help-fns.el @@ -85,14 +85,14 @@ current help buffer.") (defun help-definition-prefixes () "Return the up-to-date radix-tree form of `definition-prefixes'." - (when (> (hash-table-count definition-prefixes) 0) + (when (and (null help-definition-prefixes) + (> (hash-table-count definition-prefixes) 0)) (maphash (lambda (prefix files) (let ((old (radix-tree-lookup help-definition-prefixes prefix))) (setq help-definition-prefixes (radix-tree-insert help-definition-prefixes prefix (append old files))))) - definition-prefixes) - (clrhash definition-prefixes)) + definition-prefixes)) help-definition-prefixes) (defun help--loaded-p (file) From 3419e7ea522462c47a5ab4389a879d8b7c14452b Mon Sep 17 00:00:00 2001 From: Po Lu Date: Tue, 20 Aug 2024 21:56:41 +0800 Subject: [PATCH 12/12] Correct Android failure to open an old CJK font * src/sfnt.c (sfnt_read_cmap_format_2): Properly compute subtable count, and append the empty table at position 0. (sfnt_lookup_glyph_2): Update commentary. --- src/sfnt.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/sfnt.c b/src/sfnt.c index 1ed492b7506..02b8a33041c 100644 --- a/src/sfnt.c +++ b/src/sfnt.c @@ -383,15 +383,18 @@ sfnt_read_cmap_format_2 (int fd, for (i = 0; i < 256; ++i) { + /* Values in sub_header_keys are actually offsets from the end of + that array. Since the language of the spec is such as to imply + that they must be divisible by eight, divide them by the + same. */ sfnt_swap16 (&format2->sub_header_keys[i]); if (format2->sub_header_keys[i] > nsub) - nsub = format2->sub_header_keys[i]; + nsub = format2->sub_header_keys[i] / 8; } - if (!nsub) - /* If there are no subheaders, then things are finished. */ - return format2; + /* There always exists a subheader at index zero. */ + nsub ++; /* Otherwise, read the rest of the variable length data to the end of format2. */ @@ -1108,9 +1111,11 @@ sfnt_lookup_glyph_2 (sfnt_char character, && j <= ((int) subheader->first_code + (int) subheader->entry_count)) { - /* id_range_offset is actually the number of bytes past - itself containing the uint16_t ``slice''. It is possibly - unaligned. */ + /* id_range_offset is actually the number of bytes past itself + containing the uint16_t ``slice''. Whether this may be + unaligned is not stated in the specification, but I doubt + it, for that would render values meaningless if the array + were byte swapped when read. */ slice = (unsigned char *) &subheader->id_range_offset; slice += subheader->id_range_offset; slice += (j - subheader->first_code) * sizeof (uint16_t);