Merge from origin/emacs-29

4767f5eaee Better fix for bug#65156
dd1d8414b3 Fix insert-file-contents with pipes and /dev/stdin
50649a6d1a ; * etc/PROBLEMS: Fix wording.
f0dda682ff ; * etc/NEWS.28: Add deletion of levents.el.
f4acae842c Fix bug#65042
e1874c4e8b * configure.ac (HAVE_TREE_SITTER): Set NEED_DYNLIB=yes (b...
ef8838c3a5 * etc/NEWS: Mention tramp-show-ad-hoc-proxies.
495bee253f * test/lisp/net/tramp-tests.el (tramp-test42-utf8): Skip ...
de1effd73b ; Fix last change
7c7966862b * test/lisp/net/tramp-tests.el (tramp-test10-write-region...
16205e8db6 ; Improve help-echo in package.el
a95e700698 ; Filter packages available for upgrade via menu bar
adff72dd1d Fix reverting Rmail buffers
This commit is contained in:
Eli Zaretskii
2023-08-12 13:42:14 -04:00
13 changed files with 113 additions and 749 deletions

View File

@@ -4078,6 +4078,7 @@ if test "${with_tree_sitter}" != "no"; then
[HAVE_TREE_SITTER=yes], [HAVE_TREE_SITTER=no]) [HAVE_TREE_SITTER=yes], [HAVE_TREE_SITTER=no])
if test "${HAVE_TREE_SITTER}" = yes; then if test "${HAVE_TREE_SITTER}" = yes; then
AC_DEFINE(HAVE_TREE_SITTER, 1, [Define if using tree-sitter.]) AC_DEFINE(HAVE_TREE_SITTER, 1, [Define if using tree-sitter.])
NEED_DYNLIB=yes
else else
EMACS_CHECK_MODULES([TREE_SITTER], [tree-sitter >= 0.6.3], EMACS_CHECK_MODULES([TREE_SITTER], [tree-sitter >= 0.6.3],
[HAVE_TREE_SITTER=yes], [HAVE_TREE_SITTER=no]) [HAVE_TREE_SITTER=yes], [HAVE_TREE_SITTER=no])

View File

@@ -3150,7 +3150,7 @@ declared obsolete.
This was a compatibility kludge which is no longer needed. This was a compatibility kludge which is no longer needed.
** Some libraries obsolete since Emacs 23 have been removed: ** Some libraries obsolete since Emacs 23 have been removed:
ledit.el, lmenu.el, lucid.el and old-whitespace.el. ledit.el, levents.el, lmenu.el, lucid.el and old-whitespace.el.
** Some functions and variables obsolete since Emacs 23 have been removed: ** Some functions and variables obsolete since Emacs 23 have been removed:
'GOLD-map', 'advertised-xscheme-send-previous-expression', 'GOLD-map', 'advertised-xscheme-send-previous-expression',

File diff suppressed because it is too large Load Diff

View File

@@ -516,7 +516,7 @@ directory copy is ineffective.
This is due to an arbitrary limit in certain versions of awk. This is due to an arbitrary limit in certain versions of awk.
The solution is to use gawk (GNU awk). The solution is to use gawk (GNU awk).
*** Saving, via EasyPG, a file encrypted with GnuPG hangs *** Saving a file encrypted with GnuPG via EasyPG hangs
This is known to happen with GnuPG v2.4.1. The only known workaround This is known to happen with GnuPG v2.4.1. The only known workaround
is to downgrade to a version of GnuPG older than 2.4.1 (or, in the is to downgrade to a version of GnuPG older than 2.4.1 (or, in the

View File

@@ -1036,7 +1036,7 @@ exec_0 (char *name, struct exec_tracee *tracee,
} }
/* Add a directory separator if necessary. */ /* Add a directory separator if necessary. */
if (!link_size || buffer1[link_size - 1] != '/') if (!link_size || buffer1[link_size - 1] != '/')
buffer1[link_size] = '/', link_size++; buffer1[link_size] = '/', link_size++;

View File

@@ -40,4 +40,3 @@ struct mipsel_regs
}; };
#endif /* _MIPSEL_USER_H_ */ #endif /* _MIPSEL_USER_H_ */

View File

@@ -1356,7 +1356,7 @@ public final class EmacsWindow extends EmacsHandleObject
if (on) if (on)
view.showOnScreenKeyboard (); view.showOnScreenKeyboard ();
else else
view.hideOnScreenKeyboard (); view.hideOnScreenKeyboard ();
} }
}); });
} }

View File

@@ -3088,18 +3088,36 @@ either a full name or nil, and EMAIL is a valid email address."
"--" "--"
("Filter Packages" ("Filter Packages"
["Filter by Archive" package-menu-filter-by-archive :help "Filter packages by archive"] ["Filter by Archive" package-menu-filter-by-archive
["Filter by Description" package-menu-filter-by-description :help "Filter packages by description"] :help
["Filter by Keyword" package-menu-filter-by-keyword :help "Filter packages by keyword"] "Prompt for archive(s), display only packages from those archives"]
["Filter by Name" package-menu-filter-by-name :help "Filter packages by name"] ["Filter by Description" package-menu-filter-by-description
:help
"Prompt for regexp, display only packages with matching description"]
["Filter by Keyword" package-menu-filter-by-keyword
:help
"Prompt for keyword(s), display only packages with matching keywords"]
["Filter by Name" package-menu-filter-by-name
:help
"Prompt for regexp, display only packages whose names match the regexp"]
["Filter by Name or Description" package-menu-filter-by-name-or-description ["Filter by Name or Description" package-menu-filter-by-name-or-description
:help "Filter packages by name or description"] :help
["Filter by Status" package-menu-filter-by-status :help "Filter packages by status"] "Prompt for regexp, display only packages whose name or description matches"]
["Filter by Version" package-menu-filter-by-version :help "Filter packages by version"] ["Filter by Status" package-menu-filter-by-status
["Filter Marked" package-menu-filter-marked :help "Filter packages marked for upgrade"] :help
["Clear Filter" package-menu-clear-filter :help "Clear package list filter"]) "Prompt for status(es), display only packages with those statuses"]
["Filter by Upgrades available" package-menu-filter-upgradable
:help "Display only installed packages for which upgrades are available"]
["Filter by Version" package-menu-filter-by-version
:help
"Prompt for version and comparison operator, display only packages of matching versions"]
["Filter Marked" package-menu-filter-marked
:help "Display only packages marked for installation or deletion"]
["Clear Filter" package-menu-clear-filter
:help "Clear package list filtering, display the entire list again"])
["Hide by Regexp" package-menu-hide-package :help "Hide all packages matching a regexp"] ["Hide by Regexp" package-menu-hide-package
:help "Toggle visibility of obsolete and unwanted packages"]
["Display Older Versions" package-menu-toggle-hiding ["Display Older Versions" package-menu-toggle-hiding
:style toggle :selected (not package-menu--hide-packages) :style toggle :selected (not package-menu--hide-packages)
:help "Display package even if a newer version is already installed"] :help "Display package even if a newer version is already installed"]
@@ -4295,7 +4313,7 @@ STATUS can be a single status, a string, or a list of strings.
If STATUS is nil or the empty string, show all packages. If STATUS is nil or the empty string, show all packages.
When called interactively, prompt for STATUS. To specify When called interactively, prompt for STATUS. To specify
several possible status values, type them seperated by commas." several possible status values, type them separated by commas."
(interactive (list (completing-read "Filter by status: " (interactive (list (completing-read "Filter by status: "
'("avail-obso" '("avail-obso"
"available" "available"

View File

@@ -6762,7 +6762,10 @@ This function binds `revert-buffer-in-progress-p' non-nil while it operates.
This function calls the function that `revert-buffer-function' specifies This function calls the function that `revert-buffer-function' specifies
to do the work, with arguments IGNORE-AUTO and NOCONFIRM. to do the work, with arguments IGNORE-AUTO and NOCONFIRM.
The default function runs the hooks `before-revert-hook' and The default function runs the hooks `before-revert-hook' and
`after-revert-hook' `after-revert-hook'.
Return value is whatever `revert-buffer-function' returns. For historical
reasons, that return value is non-nil when `revert-buffer-function'
succeeds in its job and returns non-nil.
Reverting a buffer will try to preserve markers in the buffer, Reverting a buffer will try to preserve markers in the buffer,
but it cannot always preserve all of them. For better results, but it cannot always preserve all of them. For better results,
@@ -6779,17 +6782,20 @@ preserve markers and overlays, at the price of being slower."
(revert-buffer-preserve-modes preserve-modes) (revert-buffer-preserve-modes preserve-modes)
(state (and (boundp 'read-only-mode--state) (state (and (boundp 'read-only-mode--state)
(list read-only-mode--state)))) (list read-only-mode--state))))
(funcall (or revert-buffer-function #'revert-buffer--default) ;; Return whatever 'revert-buffer-function' returns.
ignore-auto noconfirm) (prog1 (funcall (or revert-buffer-function #'revert-buffer--default)
(when state ignore-auto noconfirm)
(setq buffer-read-only (car state)) (when state
(setq-local read-only-mode--state (car state))))) (setq buffer-read-only (car state))
(setq-local read-only-mode--state (car state))))))
(defun revert-buffer--default (ignore-auto noconfirm) (defun revert-buffer--default (ignore-auto noconfirm)
"Default function for `revert-buffer'. "Default function for `revert-buffer'.
The arguments IGNORE-AUTO and NOCONFIRM are as described for `revert-buffer'. The arguments IGNORE-AUTO and NOCONFIRM are as described for `revert-buffer'.
Runs the hooks `before-revert-hook' and `after-revert-hook' at the Runs the hooks `before-revert-hook' and `after-revert-hook' at the
start and end. start and end.
The function returns non-nil if it reverts the buffer; signals
an error if the buffer is not associated with a file.
Calls `revert-buffer-insert-file-contents-function' to reread the Calls `revert-buffer-insert-file-contents-function' to reread the
contents of the visited file, with two arguments: the first is the file contents of the visited file, with two arguments: the first is the file

View File

@@ -1328,14 +1328,17 @@ fill_background_by_face (struct frame *f, struct face *face, int x, int y,
int width, int height) int width, int height)
{ {
cairo_t *cr = pgtk_begin_cr_clip (f); cairo_t *cr = pgtk_begin_cr_clip (f);
double r, g, b, a;
cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
cairo_rectangle (cr, x, y, width, height); cairo_rectangle (cr, x, y, width, height);
cairo_clip (cr); cairo_clip (cr);
double r = ((face->background >> 16) & 0xff) / 255.0; r = ((face->background >> 16) & 0xff) / 255.0;
double g = ((face->background >> 8) & 0xff) / 255.0; g = ((face->background >> 8) & 0xff) / 255.0;
double b = ((face->background >> 0) & 0xff) / 255.0; b = ((face->background >> 0) & 0xff) / 255.0;
cairo_set_source_rgb (cr, r, g, b); a = f->alpha_background;
cairo_set_source_rgba (cr, r, g, b, a);
cairo_paint (cr); cairo_paint (cr);
if (face->stipple != 0) if (face->stipple != 0)
@@ -1343,10 +1346,10 @@ fill_background_by_face (struct frame *f, struct face *face, int x, int y,
cairo_pattern_t *mask cairo_pattern_t *mask
= FRAME_DISPLAY_INFO (f)->bitmaps[face->stipple - 1].pattern; = FRAME_DISPLAY_INFO (f)->bitmaps[face->stipple - 1].pattern;
double r = ((face->foreground >> 16) & 0xff) / 255.0; r = ((face->foreground >> 16) & 0xff) / 255.0;
double g = ((face->foreground >> 8) & 0xff) / 255.0; g = ((face->foreground >> 8) & 0xff) / 255.0;
double b = ((face->foreground >> 0) & 0xff) / 255.0; b = ((face->foreground >> 0) & 0xff) / 255.0;
cairo_set_source_rgb (cr, r, g, b); cairo_set_source_rgba (cr, r, g, b, a);
cairo_mask (cr, mask); cairo_mask (cr, mask);
} }

View File

@@ -1804,7 +1804,7 @@ sfntfont_desc_to_entity (struct sfnt_font_desc *desc, int instance)
AREF (vector, 3)); AREF (vector, 3));
FONT_SET_STYLE (entity, FONT_SLANT_INDEX, FONT_SET_STYLE (entity, FONT_SLANT_INDEX,
AREF (vector, 4)); AREF (vector, 4));
ASET (entity, FONT_ADSTYLE_INDEX, AREF (vector, 1)); ASET (entity, FONT_ADSTYLE_INDEX, AREF (vector, 1));
} }
else else
{ {
@@ -3192,7 +3192,7 @@ sfntfont_open (struct frame *f, Lisp_Object font_entity,
AREF (tem, 3)); AREF (tem, 3));
FONT_SET_STYLE (font_object, FONT_SLANT_INDEX, FONT_SET_STYLE (font_object, FONT_SLANT_INDEX,
AREF (tem, 4)); AREF (tem, 4));
ASET (font_object, FONT_ADSTYLE_INDEX, Qnil); ASET (font_object, FONT_ADSTYLE_INDEX, Qnil);
} }
} }

View File

@@ -15588,7 +15588,7 @@ redisplay_tool_bar (struct frame *f)
h = (extra + rows - 1) / rows; h = (extra + rows - 1) / rows;
extra -= h; extra -= h;
} }
display_tool_bar_line (&it, height + h); display_tool_bar_line (&it, height + h);
} }
} }

View File

@@ -2711,7 +2711,20 @@ This checks also `file-name-as-directory', `file-name-directory',
:type 'file-already-exists) :type 'file-already-exists)
(should-error (should-error
(write-region "foo" nil tmp-name nil nil nil 'excl) (write-region "foo" nil tmp-name nil nil nil 'excl)
:type 'file-already-exists)) :type 'file-already-exists)
(delete-file tmp-name)
;; Check `buffer-file-coding-system'. Bug#65022.
(with-temp-buffer
(setq buffer-file-name tmp-name)
(insert "foo")
(set-buffer-file-coding-system 'cp1251)
(let ((bfcs buffer-file-coding-system))
(should (buffer-modified-p))
(should (null (save-buffer)))
(should
(eq (coding-system-get buffer-file-coding-system :mime-charset)
(coding-system-get bfcs :mime-charset))))))
;; Cleanup. ;; Cleanup.
(ignore-errors (delete-file tmp-name)))))) (ignore-errors (delete-file tmp-name))))))
@@ -7473,14 +7486,12 @@ This requires restrictions of file name syntax."
(skip-unless (not (tramp--test-gdrive-p))) (skip-unless (not (tramp--test-gdrive-p)))
(skip-unless (not (tramp--test-crypt-p))) (skip-unless (not (tramp--test-crypt-p)))
(skip-unless (not (tramp--test-rclone-p))) (skip-unless (not (tramp--test-rclone-p)))
(skip-unless (not (or (eq system-type 'darwin) (tramp--test-macos-p))))
(let* ((utf8 (if (and (eq system-type 'darwin) (let ((coding-system-for-read 'utf-8)
(memq 'utf-8-hfs (coding-system-list))) (coding-system-for-write 'utf-8)
'utf-8-hfs 'utf-8)) (file-name-coding-system
(coding-system-for-read utf8) (coding-system-change-eol-conversion 'utf-8 'unix)))
(coding-system-for-write utf8)
(file-name-coding-system
(coding-system-change-eol-conversion utf8 'unix)))
(apply (apply
#'tramp--test-check-files #'tramp--test-check-files
(append (append